因此,在我看来,lm 中的 weights 函数赋予观察更多的权重,相关观察的“权重”值越大,而 lme 中的 lme 函数恰恰相反。这可以通过简单的模拟来验证。
#make 3 vectors- c is used as an uninformative random effect for the lme model
a<-c(1:10)
b<-c(2,4,6,8,10,100,14,16,18,20)
c<-c(1,1,1,1,1,1,1,1,1,1)
如果您现在要运行一个模型,在该模型中根据 lm 中因变量的倒数对观察结果进行加权,那么您只能在 nlme 中生成完全相同的结果,前提是您仅按因变量加权,而不采用倒数。
summary(lm(b~a,weights=1/b))
summary(lme(b~a,random=~1|c,weights=~b))
您可以翻转它并看到反之亦然——在 lm 中指定 weights=b 需要 weights=1/b 才能获得匹配的 lme 结果。
所以,我明白这一点,我只想对一件事进行验证并就另一件事提出问题。
- 如果我想根据因变量的倒数对数据进行加权,是否可以在 lme 中仅编码 weights=~(因变量)?
- 为什么写 lme 来处理权重与 lm 完全不同?除了制造混乱之外,这样做的目的是什么?
任何见解将不胜感激!