如何强制所有治疗在 lme4 中具有相同的截距?

How to force all treatments to have same intercept in lme4?

这是我第一次在这里发帖,所以我希望我的问题不是愚蠢的,虽然我担心它没有答案。

我 运行 一项喂养试验,我喂食五种不同藻类中的一种蜗牛,然后随时间测量个体长度。我使用 R 的 lme4:

构建了一个 LMM
model<-lmer(log(length)~treatment*day+(1+day|individual), data=real, REML=F)

在我的模型中,其中一种处理的截距与其他处理的截距截然不同:

Plot of my model, showing the treatment with outlier intercept, and other treatments with roughly matching intercepts.

我在 61 天内测量了 4 次长度(第 7、20、42、61 天),但不幸的是我没有在第 0 天测量它。所有蜗牛都来自同一批次,所以每次处理都有第 0 天的平均长度相同。有什么方法可以告诉 R 这是真的,即使我不知道第 0 天的平均长度是多少?理论上,我可以调整截距使它们匹配,但如果模型考虑了这些信息,直线的斜率似乎也会改变。

我知道这个模型是这样写的,所以所有的人都有 运行dom 截距。但是,用(0+day|individual)这个词写模型,让个体有固定的截距并不能解决问题,因为个体的截距只在处理内部相同,而在处理之间是不同的。可能是我要求 R 做不可能或不道德的事情,即伪造数据。

提前感谢您的任何建议!

编辑一个可重现的例子: 如果使用 R "ChickWeights" 数据集(这些数据不是完美的线性趋势,但作为示例足够好)也会出现同样的问题

model.chix<-lmer(weight~Diet*Time+(Time|Chick), data=ChickWeight, REML=FALSE)

> summary(model.chix)
Linear mixed model fit by maximum likelihood  ['lmerMod']
Formula: weight ~ Diet * Time + (Time | Chick)
   Data: ChickWeight

     AIC      BIC   logLik deviance df.resid 
  4824.2   4876.5  -2400.1   4800.2      566 

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-2.7508 -0.5693 -0.0401  0.4694  3.5415 

Random effects:
 Groups   Name        Variance Std.Dev. Corr 
 Chick    (Intercept) 103.61   10.179        
          Time         10.01    3.165   -0.99
 Residual             163.36   12.781        
Number of obs: 578, groups:  Chick, 50

Fixed effects:
            Estimate Std. Error t value
(Intercept)  33.6541     2.8023  12.009
Diet2        -5.0205     4.8072  -1.044
Diet3       -15.4038     4.8072  -3.204
Diet4        -1.7475     4.8145  -0.363
Time          6.2799     0.7304   8.598
Diet2:Time    2.3293     1.2508   1.862
Diet3:Time    5.1430     1.2508   4.112
Diet4:Time    3.2528     1.2515   2.599

Correlation of Fixed Effects:
           (Intr) Diet2  Diet3  Diet4  Time   Dt2:Tm Dt3:Tm
Diet2      -0.583                                          
Diet3      -0.583  0.340                                   
Diet4      -0.582  0.339  0.339                            
Time       -0.881  0.513  0.513  0.513                     
Diet2:Time  0.514 -0.882 -0.300 -0.299 -0.584              
Diet3:Time  0.514 -0.300 -0.882 -0.299 -0.584  0.341       
Diet4:Time  0.514 -0.300 -0.300 -0.882 -0.584  0.341  0.341

截距估计值预测第 0 天的小鸡体重。预计采用饮食 1 的小鸡体重为 33.7 克,而采用饮食 3 的小鸡预计比其轻 15.4 克。如果在第 0 天强制所有雏鸡体重相同以符合实际情况,该模型是否更合适?

你能提供一个可重现的例子来更好地理解这一点吗?

我得到的是你想要移除随机效果,对吗?那么就是

library(lme4)
library(ggplot2)

model <- lmer(log(hwy) ~ -1 + displ + (displ || year), data=mpg, REML=F)

我发现我可以通过包含没有主效应项的交互项来获得匹配的截距:

model.chix<-lmer(weight~Diet:Time+(Time|Chick), data=ChickWeight, REML=FALSE)

但是,要包括交互作用,您还必须包括主效应项,否则您的统计数据是错误的。所以,我选择了上面写的模型,并将证明它最适合现有数据,如果不是截距的话。