假设我有以下数据,我有兴趣研究一些反事实。特别是,我想研究一下,如果收入发生变化,预计收入是否会发生变化。我能想到的最好的方法是编写一个循环来运行这个回归1:n。但是,如何在循环运行时对数据框进行调整。我真的希望有一个基本的R函数或某个包可以指向我的东西。
df = data.frame(year=c(2000,2001,2002,2003,2004,2005,2006,2007,2009,2010),
income=c(100,50,70,80,50,40,60,100,90,80),
age=c(26,30,35,30,28,29,31,34,20,35),
gpa=c(2.8,3.5,3.9,4.0,2.1,2.65,2.9,3.2,3.3,3.1))
df
mod = lm(income ~ age + gpa, data=df)
summary(mod)
在查看年龄,gpa和收入之间的关系时,以下是一些值得考虑的反事实。
# What is everyone in the class had a lower/higher gpa?
df$gpa2 = df$gpa + 0.55
# what if one person had a lower/higher gpa?
df$gpa2[3] = 1.6
# what if the most recent employee/person had a lower/higher gpa?
df[10,4] = 4.0
无论有没有循环,最好的方法是“模拟”大量(1000+)个回归模型,以便检查各种反事实,然后将这些结果保存在某些数据结构中?是否有一个“反事实”分析包可以为我节省一些工作?