我在数据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)
答案 0 :(得分: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
。
答案 1 :(得分:2)
你建模:
model&lt; - lme(Y~1 + X1 + X2 + X3,random = ~1 | Class,method =“ML”,data = A)
基于您的模型的2个预测:
PRED1 =预测(模式,newdata = A,类型= '响应')
pred2 = predict(model,newdata = B,type ='response')
miss:一个计算误报百分比的函数,截止值设置为0.5。
(预测为真,但实际上这些观察结果不是正面的)
错过=函数(值,预测){sum(((预测> 0.5)* 1)!= 值)/长度(值)}
错过了(A,pred1)
错过(B,PRED2)