【发布时间】:2021-04-20 22:15:57
【问题描述】:
我希望能够在拟合模型后索引我的模型。 说我有
df <- data.frame(a = c(1,2,3),
b = c(2,3,1000),
country = c("Malawi", "USA","UK"))
然后,我运行:
fit<-lm(a~b,data=df)
我生成的 fit$model 不再具有“国家”变量,因此很难做类似的事情
- 运行回归,然后删除某些国家作为稳健性 测试。
- 运行回归,然后找出哪些国家 异常值。
我知道这方面存在“黑客”,例如使用行索引,但我经常发现自己进一步对原始数据集进行子集化,而且我害怕跟踪行索引。
例如从上面的示例中,我看到英国是一个异常值。
所以,我有两个选择:
lm(a~b,data=fit$model[-3,])
lm(a~b,data=df[df$country!="UK",])
第二个选项对我来说更清楚,但是因为 R 中的汇总统计和测试(例如厨师距离)只给我行 index,我最终不得不做第一个选项比我想要的还要多。在我试图测试对异常值或杠杆数据的稳健性并且还想知道这些数据是哪些国家(或其他变量)的大型面板数据集中,这变得特别乏味。
理想情况下,我想要一个选项来做类似的事情
lm(a~b,data=fit$model[fit$model$country!="UK",])
请帮忙,非常感谢!
【问题讨论】:
-
听起来您正在尝试做很多事情,例如调查预测和更新模型。您可以使用
broom::augment(model, your_data)向您的数据集添加预测,也可以使用update更新您的模型 -
我从没听说过扫帚。谢谢!如果人们遇到另一种解决方案,我将保持未回答的问题,但粗略的一看似乎它解决了我的所有问题!
标签: r dataframe linear-regression