【问题标题】:How to fit a model I built to another data set and get residuals?如何将我建立的模型拟合到另一个数据集并获得残差?
【发布时间】:2013-03-04 23:41:07
【问题描述】:

我将混合模型拟合到数据 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)

【问题讨论】:

  • 你试过predict(model,data_B) - data_B$Y或类似的东西吗?
  • 还没有,因为我不知道。谢谢!
  • 您应该谨慎使用预测。模型的微小变化可能会导致不同的结果。

标签: r statistics


【解决方案1】:

您在第二次尝试使用 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

【讨论】:

    【解决方案2】:

    你是模特:

    模型

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

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

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

    missed = function(values,prediction){sum(((prediction > 0.5)*1) != 值)/长度(值)}

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-28
      • 1970-01-01
      • 2021-11-16
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      • 2021-02-14
      相关资源
      最近更新 更多