4

我将混合模型拟合到数据 A,如下所示:

model <- lme(Y~1+X1+X2+X3, random=~1|Class, method="ML", data=A)

接下来,我想看看模型如何拟合数据 B 并获得估计的残差。R中是否有我可以用来执行此操作的函数?

(我尝试了以下方法,但得到了所有新系数。)

model <- lme(Y~1+X1+X2+X3, random=~1|Class, method="ML", data=B)
4

2 回答 2

8

您在第二次尝试中获得新系数的原因data=B是该函数lme使用您提供的公式返回适合您的数据集的模型,并将该模型存储在model您选择的变量中。

要获取有关模型的更多信息,您可以键入summary(model_name). 该nlme库包含一个名为的方法predict.lme,该方法允许您根据拟合模型进行预测。您可以键入predict(my_model)以使用原始数据集获取预测,或predict(my_model, some_other_data)如上所述键入以使用该模型但使用不同的数据集生成预测。

在您的情况下,要获得残差,您只需从观察值中减去预测值。所以使用predict(my_model,some_other_data) - some_other_data$dependent_var,或在你的情况下predict(model,B) - B$Y

于 2013-03-05T00:39:49.373 回答
2

您的模型:

模型 <- lme(Y~1+X1+X2+X3, random=~1|Class, method="ML", data=A)

基于您的模型的 2 个预测:

pred1=predict(model,newdata=A,type='response')
pred2=predict(model,newdata=B,type='response')

错过:计算误报百分比的函数,截止设置为 0.5。
(预测为真,但实际上这些观察结果并不积极)

错过=函数(值,预测){sum(((预测> 0.5)* 1)!=值)/长度(值)}

错过(A,pred1)
错过(B,pred2)

于 2013-03-05T00:55:09.003 回答