我必须重现http://scholar.harvard.edu/files/mankiw/files/permanent_income.pdf使用的代码.我理解线性回归和工具变量的概念,在编写脚本时我无法找到错误.
该代码首先分析一组数据并识别数据中的内生性,因此实现了工具变量方法.
现在我正在尝试重现表2 [p.272]但是无法通过简单的OLS.然而,我卡住了复制OLS.
我会一步一步解释我的程序,希望你们能找到我的错误.
1.-首先给出表1,在第268页(第3.1节)中,作者声明他将使用特定样本.因此,我将我的数据集限制为该样本.我刚刚在开头留下了一个额外的步骤.
#Load data and modification
EF <- read.delim("Z:/EF.txt", dec=",")
View(EF)
EF<-EF[-c(1:23), ]
View(EF)
Run Code Online (Sandbox Code Playgroud)
2.-在第267页的最后一段中,他指出,对于表2,他将Y和C除以Y的滞后值.
#Dividing by one lag of Y
Table2Y<-mat.or.vec(dim(EF)[1]-1,1)
Table2C<-mat.or.vec(dim(EF)[1]-1,1)
for (i in 2:dim(EF)[1] ) {
Table2Y[i-1] = EF$Income[i]/EF$Income[i-1]
Table2C[i-1] = EF$Consumption[i]/EF$Income[i-1]
}
Run Code Online (Sandbox Code Playgroud)
3.-在第2节第2段的第266页中,他将Delta变量定义为第一个差异.
#Making First Differences
Table2Y<- diff(Table2Y,1) #This is called dY in the text
Table2C<- diff(Table2C,1) #This is called dC in the text
Run Code Online (Sandbox Code Playgroud)
3.-然后,在第272页的表2的注释中,清楚地表明回归是dC = a + b*dY
lm(Table2C~Table2Y)
summary(lm(Table2C~Table2Y))
Run Code Online (Sandbox Code Playgroud)
我对b的结果是.493,标准差为0.0325.正确的结果应分别为.296和.044.
任何人都可以提供我的问题的任何见解?