如何表明模型中不需要随机因素?

机器算法验证 r 混合模式 广义线性模型 lme4-nlme 随机效应模型
2022-04-09 12:25:58

我从一个实验中收集了数据,在该实验中,我向一个人展示了四个视频之一conditionprediction我要求每个人在观看完 25%、50%、75% 和 100% 的视频后做出预测 ( completed)。我总共收集了 330 个回复。

从更技术的角度来看,我有一个包含两个自变量和一个因变量的数据集。condition是分类的,在主题之间测量了 4 个级别;completion是具有 4 个级别的序数(尽管基础结构是连续的 - 我应该将其建模为连续变量吗?)并在受试者内测量。因变量prediction具有 3 个级别的分类变量。我可以把它变成二分法,因为我对正确的预测有基本事实,所以我可以把它编码为correct/incorrect.

我的假设是,随着时间的推移,正确预测的斜率在条件之间存在显着差异,即,对于某些视频,与其他视频相比,人们更早做出更好的预测。

由于这是使用分类因变量的重复测量实验,因此我使用广义线性混合效应模型(glmer在 R 中)来拟合我的数据。以下是我目前正在拟合的模型:

interaction <- glmer("prediction ~ condition*completion + (1|id)", data=data, family="binomial")
main_effects <- glmer("prediction ~ condition + completion + (1|id)", data=data, family="binomial")
baseline <- glmer("prediction ~ completion + (1|id)", data=data, family="binomial")

然后比较main_effects使用. 我真的像这样测试我的假设吗?(我仍然很容易与线性模型混淆)baselineinteractionmain_effectsanova()

但是,我的主要问题是:我收到错误:boundary (singular) fit: see ?isSingular, formain_effectsinteraction我是否将其正确解释为:数据不支持参与者作为随机因素,而我应该适合glm

1个回答

mixed_model我已经使用包中的函数为您的数据拟合了一个模型,GLMMadaptive而没有收到任何错误或警告,并将输出与glmer(使用奇异拟合)产生的输出进行了比较:

(数据可在此处获得)

> library(lme4)
> library(GLMMadaptive)

> dt <- read.csv("PilotDataStacked-results.csv")

> dt$id <- as.factor(dt$id)
> m0_glmer <- glmer(isCorrect ~ condition + completion + (1|id), data = dt, nAGQ = 20, family="binomial"(link = logit))

> m0_GLMMadaptive <- mixed_model(fixed = isCorrect ~ condition + completion, random = ~ 1 | id, data = dt,
               family = binomial())
> summary(m0_glmer)

Random effects:
 Groups Name        Variance Std.Dev.
 id     (Intercept) 0        0       
Number of obs: 1160, groups:  id, 290

Fixed effects:
                 Estimate Std. Error z value Pr(>|z|)    
(Intercept)      2.171244   0.233476   9.300  < 2e-16 ***
conditiongreen  -0.831986   0.222863  -3.733 0.000189 ***
conditiongreen2 -1.139616   0.224589  -5.074 3.89e-07 ***
conditionred    -0.753830   0.215395  -3.500 0.000466 ***
completion      -0.050959   0.003675 -13.867  < 2e-16 ***

> summary(m0_GLMMadaptive) 

Random effects covariance matrix:
               StdDev
(Intercept) 0.1508784

Fixed effects:
                Estimate Std.Err  z-value    p-value
(Intercept)       2.1786  0.2349   9.2745    < 1e-04
conditiongreen   -0.8342  0.2248  -3.7110 0.00020646
conditiongreen2  -1.1428  0.2265  -5.0454    < 1e-04
conditionred     -0.7560  0.2173  -3.4792 0.00050283
completion       -0.0512  0.0037 -13.8441    < 1e-04

如您所见,结果基本相同。为什么会glmer得到一个奇异的拟合是一个谜。mixed_model_ _ _ Ben Bolker 是作者之一,所以如果我在评论中 ping 他,他可能会看到这条消息,我会这样做,但如果不是,您可能想向邮件列表中 的专家lme4征求意见: https://stat。 ethz.ch/mailman/listinfo/r-sig-mixed-modelslme4R-sig-ME

Dimitris Rizopoulos(作者GLMMAdaptive)也可能有一些意见。我也会ping他。

编辑:至于您的其他问题:

完成是具有 4 个级别的序数(尽管基础结构是连续的 - 我应该将其建模为连续变量吗?)

是的,通过将其建模为序数,您正在丢失信息。

我真的像这样测试我的假设吗?(我仍然很容易与线性模型混淆)

completion由于您的假设是不同水平的变化斜率是否condition应该集中在它们之间的相互作用上。如果您切换到 Continuous ,这将更容易解释completion