Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从lmer模型中提取贝叶斯p值_R_Bayesian_Lme4_P Value - Fatal编程技术网

从lmer模型中提取贝叶斯p值

从lmer模型中提取贝叶斯p值,r,bayesian,lme4,p-value,R,Bayesian,Lme4,P Value,我试图从我建立的lmer模型中提取贝叶斯p值(即,如果点估计为负,则估计值的比例>0;如果点估计为正,则估计值的比例

我试图从我建立的
lmer
模型中提取贝叶斯p值(即,如果点估计为负,则估计值的比例>0;如果点估计为正,则估计值的比例<0))。我理解“p值”本质上是频繁出现的,但我需要贝叶斯p值来安抚评论者()

为了再现性的目的,我使用R的数据集来说明我的问题。数据集:

library(datasets)
data(ChickWeight) #importing data from base R
summary(ChickWeight)

 weight           Time           Chick         Diet   
 Min.   : 35.0   Min.   : 0.00   13     : 12   1:220  
 1st Qu.: 63.0   1st Qu.: 4.00   9      : 12   2:120  
 Median :103.0   Median :10.00   20     : 12   3:120  
 Mean   :121.8   Mean   :10.72   10     : 12   4:118  
 3rd Qu.:163.8   3rd Qu.:16.00   17     : 12          
 Max.   :373.0   Max.   :21.00   19     : 12          
                                 (Other):506          
我的真实数据既有连续的预测变量,也有离散的预测变量,而且对个体身份有随机影响

创建
lmer
模型:

install.packages("lme4", dependencies=TRUE)
library(lme4)

m1<-lmer(weight ~ Time + Diet+ (1|Chick), data=ChickWeight)
summary(m1)

Linear mixed model fit by REML ['lmerMod']
Formula: weight ~ Time + Diet + (1 | Chick)
    Data: ChickWeight

REML criterion at convergence: 5584

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-3.0591 -0.5779 -0.1182  0.4962  3.4515 

Random effects:
 Groups   Name        Variance Std.Dev.
 Chick    (Intercept) 525.4    22.92   
 Residual             799.4    28.27   
Number of obs: 578, groups:  Chick, 50

Fixed effects:
            Estimate Std. Error t value
(Intercept)  11.2438     5.7887   1.942
Time          8.7172     0.1755  49.684
Diet2        16.2100     9.4643   1.713
Diet3        36.5433     9.4643   3.861
Diet4        30.0129     9.4708   3.169

Correlation of Fixed Effects:
      (Intr) Time   Diet2  Diet3 
Time  -0.307                     
Diet2 -0.550 -0.015              
Diet3 -0.550 -0.015  0.339       
Diet4 -0.550 -0.011  0.339  0.339
现在我想得到贝叶斯p值:

install.packages("conting", dependencies=TRUE)
library(conting)
bayespval(object=sm1, n.burnin = 0, thin = 1, statistic = "X2") 
#this last line is the line I am having trouble with

Error: $ operator not defined for this S4 class
关于我如何设置模型
m1
,提取每个估算值的贝叶斯p值的正确格式是什么?

有一个发布的示例,但我的模型并不像他们的模型那个样设置


我不需要使用这个软件包,我很乐意从1000个模拟中计算出来。在这种情况下,我需要知道如何计算有多少估算值低于/高于零。该数字/1000(估计总数)将是贝叶斯p值。

提取贝叶斯p值(即,如果点估计为负,则大于0的估计比例;如果点估计为正,则小于0的估计比例)可以提取每个模拟的点估计值,然后除以模拟数

要使用
ChickWeight
数据集和上述模型执行此操作,您需要:

library(datasets)
data(ChickWeight)

m1<-lmer(weight ~ Time + Diet+ (1|Chick), data=ChickWeight)

sm1<-sim(m1,1000)
smfixef=sm1@fixef
smfixef=as.mcmc(smfixef) #this has the 1000 simulations in it for the fixed effects 

as.mcmc(smfixef)
Markov Chain Monte Carlo (MCMC) output:
Start = 1 
End = 1000 
Thinning interval = 1 
        (Intercept)     Time        Diet2     Diet3      Diet4
   [1,] 17.52609243 8.381517   7.47169881 46.442343 19.7164997 #simulation 1
   [2,] 16.52854430 8.859378   8.83279931 29.017547 25.4610474 #simulation 2
   [3,]  4.00702870 8.830302  29.68309621 47.459395 35.1939344 #simulation 3
   [4,] 16.44162722 8.599929  15.87393285 31.946265 33.7513144 #simulation 4
   [5,] 21.07173579 8.596701   1.81909415 28.934133 19.0499998 #simulation 5
etc.
由于
时间
变量的点估计值为正,因此您需要计算该变量的估计值低于零的次数:

p_Time=if_else(smfixef[,2]>0, 1,0) #Time variable (i.e., 2nd column)
sum_p_Time=sum(p_Time<1)
> sum_p_Time
0 
sum\u p\u Time=sum(p\u Time sum\u p\u Time
0
在这种情况下,它表示所有估计值都在零以上,因此贝叶斯p值<0.001。这支持了我们在仅查看点估计值和95%可信区间时所看到的情况(即,
时间
估计值为8.80,95%可信区间为(8.38,9.06).在这两种情况下,我们都看到人们强烈支持时间对体重产生影响

sum_p_Time=sum(p_Time<1)
> sum_p_Time
0