混合效应logistic回归导致奇异海赛模型和R中的不良拟合模型

os8fio9y  于 2023-09-27  发布在  其他
关注(0)|答案(1)|浏览(142)

如果我错过了任何明显的东西,我道歉,但我有这个非常简单的数据集(只是为了说明我遇到的问题):15名参与者,3种条件,每名参与者经历了所有3种条件,并在每种条件下产生二元响应。我想知道这三种情况下的React是否有显著差异。
下面是一个示例数据

ID,Condition,Outcome
1,A,FALSE
1,B,TRUE
1,C,FALSE
2,A,FALSE
2,B,TRUE
2,C,FALSE
3,A,FALSE
3,B,TRUE
3,C,TRUE
4,A,FALSE
4,B,TRUE
4,C,TRUE
5,A,FALSE
5,B,TRUE
5,C,FALSE
6,A,FALSE
6,B,TRUE
6,C,TRUE
7,A,FALSE
7,B,TRUE
7,C,TRUE
8,A,FALSE
8,B,TRUE
8,C,TRUE
9,A,FALSE
9,B,TRUE
9,C,FALSE
10,A,FALSE
10,B,TRUE
10,C,FALSE
11,A,FALSE
11,B,TRUE
11,C,TRUE
12,A,FALSE
12,B,TRUE
12,C,TRUE
13,A,FALSE
13,B,TRUE
13,C,FALSE
14,A,FALSE
14,B,TRUE
14,C,TRUE
15,A,FALSE
15,B,TRUE
15,C,TRUE

你可以清楚地看到,条件A总是与False结果相关联,而条件C总是与True结果相关联,所以我们甚至在进行任何正式测试之前就知道应该存在显著差异。
因此,为了进行正式测试,我们需要对二项式数据进行重复测量方差分析,从我搜索的结果来看,最佳选择是混合效应logistic回归,条件作为固定效应,参与者ID作为随机效应。所以我用R

model <- glmer(Outcome ~ Condition + (1 | ID), data = data, family = binomial)
summary(model)

我得到了这个结果

> model <- glmer(Outcome ~ Condition + (1 | ID), data = data, family = binomial)
boundary (singular) fit: see help('isSingular')
> summary(model)
Generalized linear mixed model fit by maximum likelihood (Laplace Approximation) ['glmerMod']
 Family: binomial  ( logit )
Formula: Outcome ~ Condition + (1 | ID)
   Data: data

     AIC      BIC   logLik deviance df.resid 
    28.2     35.4    -10.1     20.2       41 

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-1.2247  0.0000  0.0000  0.0000  0.8165 

Random effects:
 Groups Name        Variance Std.Dev.
 ID     (Intercept) 0        0       
Number of obs: 45, groups:  ID, 15

Fixed effects:
              Estimate Std. Error z value Pr(>|z|)
(Intercept) -4.095e+01  2.122e+07       0        1
ConditionB   1.153e+02  2.740e+07       0        1
ConditionC   4.135e+01  2.122e+07       0        1

Correlation of Fixed Effects:
           (Intr) CndtnB
ConditionB -0.775       
ConditionC -1.000  0.775
optimizer (Nelder_Mead) convergence code: 0 (OK)
boundary (singular) fit: see help('isSingular')

Warning messages:
1: In vcov.merMod(object, use.hessian = use.hessian) :
  variance-covariance matrix computed from finite-difference Hessian is
not positive definite or contains NA values: falling back to var-cov estimated from RX
2: In vcov.merMod(object, correlation = correlation, sigm = sig) :
  variance-covariance matrix computed from finite-difference Hessian is
not positive definite or contains NA values: falling back to var-cov estimated from RX

我不太确定为什么我会得到这个或者如何解释它,但似乎海森是奇异的,模型已经收敛,但它似乎根本没有用(估计值的p值非常大,根本没有显着性)。在如此极端的条件下,我期待着一个容易实现的巨大意义。
我真的很感激任何建议,我应该如何解决这个问题,是否有更合适的测试,这种情况下,或指出我做错了什么!

nmpmafwu

nmpmafwu1#

我在评论中提出了使用贝叶斯模型的建议。您可以使用brms包中的brm()。该模型的指定方式与glmer()模型类似。加法是系数的先验,可以指定为normal(0, 2.5)。这比我们通常使用的信息量更大,但它有助于防止系数变得太大。下面是一个示例:

dat <- read.table(textConnection("ID,Condition,Outcome
1,A,FALSE
1,B,TRUE
1,C,FALSE
2,A,FALSE
2,B,TRUE
2,C,FALSE
3,A,FALSE
3,B,TRUE
3,C,TRUE
4,A,FALSE
4,B,TRUE
4,C,TRUE
5,A,FALSE
5,B,TRUE
5,C,FALSE
6,A,FALSE
6,B,TRUE
6,C,TRUE
7,A,FALSE
7,B,TRUE
7,C,TRUE
8,A,FALSE
8,B,TRUE
8,C,TRUE
9,A,FALSE
9,B,TRUE
9,C,FALSE
10,A,FALSE
10,B,TRUE
10,C,FALSE
11,A,FALSE
11,B,TRUE
11,C,TRUE
12,A,FALSE
12,B,TRUE
12,C,TRUE
13,A,FALSE
13,B,TRUE
13,C,FALSE
14,A,FALSE
14,B,TRUE
14,C,TRUE
15,A,FALSE
15,B,TRUE
15,C,TRUE"), sep=",", header=TRUE)
dat$Outcome <- as.numeric(dat$Outcome)
library(brms)
bp <- prior(normal(0, 2.5), class="b")
model <- brm(Outcome ~ Condition + (1 | ID), 
             data = dat, 
             family = bernoulli, 
             backend="cmdstanr", 
             prior=bp)
summary(model)
#>  Family: bernoulli 
#>   Links: mu = logit 
#> Formula: Outcome ~ Condition + (1 | ID) 
#>    Data: dat (Number of observations: 45) 
#>   Draws: 4 chains, each with iter = 2000; warmup = 1000; thin = 1;
#>          total post-warmup draws = 4000
#> 
#> Group-Level Effects: 
#> ~ID (Number of levels: 15) 
#>               Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
#> sd(Intercept)     0.65      0.52     0.03     1.96 1.00     2107     2275
#> 
#> Population-Level Effects: 
#>            Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
#> Intercept     -2.71      0.92    -4.78    -1.16 1.00     4155     2366
#> ConditionB     6.00      1.38     3.57     9.01 1.00     3302     2295
#> ConditionC     3.01      1.05     1.11     5.23 1.00     4759     2477
#> 
#> Draws were sampled using sample(hmc). For each parameter, Bulk_ESS
#> and Tail_ESS are effective sample size measures, and Rhat is the potential
#> scale reduction factor on split chains (at convergence, Rhat = 1).

创建于2023-09-12带有reprex v2.0.2

相关问题