【发布时间】:2018-12-30 06:05:59
【问题描述】:
我无法在 Pinhiero 和 Bates S 和 S-Plus 中的混合效应模型中绘制标准残差与协变量图匹配。绘制的模型是非线性混合效应模型的一般公式,包含在 nlme 包中
library(nlme)
options(contrasts = c("contr.helmert", "contr.poly"))
fm1Dial.gnls <- gnls(rate ~ SSasympOff(pressure, Asym, lrc, c0),
data = Dialyzer,
params = list(Asym + lrc ~ QB, c0 ~ 1),
start = c(53.6, 8.6, 0.51, -0.26, 0.225))
当我们在该模型中绘制标准化残差与跨膜压力时
plot(fm1Dial.gnls, resid(.) ~ pressure, abline = 0)
结果图显示了不同压力下的异方差性证据。因此,我们拟合了一个具有幂方差函数的新模型来解决这个问题。
fm2Dial.gnls <- update(fm1Dial.gnls, weights = varPower(form = ~ pressure))
明显优于第一个模型
anova(fm1Dial.gnls, fm2Dial.gnls)
但是,当我们绘制新改进模型的标准化残差与跨膜压力时
plot(fm2Dial.gnls, resid(.) ~ pressure, abline = 0)
与第一个图相比,该图看起来没有太大改进,残差的垂直分布在较高压力下似乎仍然要高得多。
不过,Pinhiero 和 Bates 中的第二个改进模型的情节。显示了在所有压力水平下残差的类似垂直分布,考虑到在这个改进的模型中明确考虑了异方差性,这是有道理的。
我做错了什么?
【问题讨论】:
-
我怀疑您会在stats.stackexchange.com 获得更好的帮助如果您在这里没有得到答案,请考虑将问题迁移到那里
-
感谢@dww,但这似乎更像是软件语法问题,而不是纯粹的统计问题。
-
如果通过
plot(fm2Dial.gnls, resid(., type = "n) ~ pressure, abline = 0)指定归一化残差,这些图表似乎更符合本书,但本书特别提到了“标准化残差”。所以我仍然不确定我的示例中的第二个图出了什么问题,以及为什么尽管在模型中引入了方差函数,标准化残差与压力图似乎并没有改变。 -
其实
plot(fm2Dial.gnls, resid(., type = "p") ~ pressure, abline = 0)也会产生与书相匹配的情节。plot.lme中的type = "p"参数表示 pearson 的标准化残差。这引出了一个问题,如果不是标准化残差,默认是什么? -
回复您的评论 ^^;如果您查看
nlme:::residuals.gnls的代码,如果未指定type,则match.arg获取第一个值,因此默认值为原始残差。 (这并不是说这本书在写作时也是如此)。 (ps:来自?nlme:::residuals.gnlsPearson == 标准化)