首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >lme4中非工作对象时间的随机斜率

lme4中非工作对象时间的随机斜率
EN

Stack Overflow用户
提问于 2014-10-20 12:01:05
回答 1查看 7.8K关注 0票数 3

我不能用lme4(1.1-7)在这个模型中插入一个随机斜率:

代码语言:javascript
复制
> difJS<-lmer(JS~Tempo+(Tempo|id),dat,na.action=na.omit)
Error: number of observations (=274) <= number of random effects (=278) for term 
(Tempo | id); the random-effects parameters and the residual variance (or scale
parameter) are probably unidentifiable

对我来说,它是起作用的:

代码语言:javascript
复制
    > JSprova<-lme(JS~Tempo,random=~1+Tempo|id,data=dat,na.action=na.omit)
    > summary(JSprova)
Linear mixed-effects model fit by REML Data: dat
AIC      BIC    logLik
769.6847 791.3196 -378.8424

Random effects:
Formula: ~1 + Tempo | id
Structure: General positive-definite, Log-Cholesky parametrization
            StdDev    Corr
(Intercept) 1.1981593 (Intr)
Tempo       0.5409468 -0.692
Residual    0.5597984       

Fixed effects: JS ~ Tempo 
                Value  Std.Error  DF   t-value p-value
(Intercept)  4.116867 0.14789184 138 27.837013  0.0000
Tempo       -0.207240 0.08227474 134 -2.518874  0.0129
Correlation: 
      (Intr)
Tempo -0.837

Standardized Within-Group Residuals:
        Min          Q1         Med          Q3         Max 
-2.79269550 -0.39879115  0.09688881  0.41525770  2.32111142

Number of Observations: 274
Number of Groups: 139

我认为这是一个丢失数据的问题,因为我很少有这样的情况,在时间上有一个丢失的数据,两个DV,但是对于na.action=na.omit,这两个包不应该以相同的方式运行吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-20 12:37:44

这是与lme“工作”,但我99%肯定,你的随机斜率确实是混乱的残余变化。问题是,每个对象只有两个测量值(或者在4个情况下,每个主体只有一个测量值--但这在这里并不重要),因此一个随机斜率加上每个个体的随机截距对每个观察都会产生一个随机效应。

如果您尝试intervals()在您的lme适合,它将给您一个错误,说方差协方差矩阵是不可识别的。

您可以通过禁用一些可识别性检查来强制lmer执行此操作(请参见下面)。

代码语言:javascript
复制
library("lme4")
library("nlme")
library("plyr")

将数据限制在每个人的两个点上:

代码语言:javascript
复制
sleepstudy0 <- ddply(sleepstudy,"Subject",
      function(x) x[1:2,])
m1 <- lme(Reaction~Days,random=~Days|Subject,data=sleepstudy0)
intervals(m1)
## Error ... cannot get confidence intervals on var-cov components

lmer(Reaction~Days+(Days|Subject),data=sleepstudy0)
## error

如果您想要强制lmer适应这个模型:

代码语言:javascript
复制
m2B <- lmer(Reaction~Days+(Days|Subject),data=sleepstudy0,
        control=lmerControl(check.nobs.vs.nRE="ignore"))
## warning messages

估计的差异不同于lme估计的差异,但这并不令人惊讶,因为其中一些参数是不可识别的。

如果您只对固定效果的推断感兴趣,可以忽略这些问题,但我不推荐它。

明智的做法是认识到,斜坡之间的变化是不可识别的;在不同的斜坡之间可能会有个别的变化,但你不能用这个模型来估计它。不要尝试;拟合一个随机截距模型,并让隐式/缺省随机误差项考虑斜率之间的变化。

这里有一个关于CrossValidated的最新相关问题;在这里我还提到了另一个例子

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26465215

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档