我一直在尝试手动重现Sargan测试在R中给出的结果,遗憾的是没有用。
当我运行ivreg()
并输出Sargan检验统计量时:
eitc <- read.dta13('education_earnings_v2.dta')
eitc$ln.wage <- log(eitc$wage)
TSLS <- ivreg(data = eitc, ln.wage ~ educ + exper + south + nonwhite
| nearc4 + nearc2 + exper + south + nonwhite)
summary(TSLS, diagnostics=TRUE)
字符串
我得到的Sargan统计量为1.63。然而,当我尝试手动执行测试时:
surp_IV1 <- lm(educ ~ nearc2 + nearc4 + exper + south + nonwhite, data=eitc)
surp_IV_fit <- surp_IV1$fitted.values
surp_IV2 <- lm(ln.wage ~ surp_IV_fit + exper + south + nonwhite, data=eitc)
surp_resid <- resid(surp_IV2)
test_surplus <- lm(surp_resid ~ nearc2 + nearc4 + exper + south + nonwhite,
data = eitc)
summary(test_surplus)
型
在3,010个观测值上的R平方= 0.0008032,我得到的检验统计量为2.42。
差异的原因是什么?
1条答案
按热度按时间9rnv2umw1#
我想有些步骤是不必要的。
该程序摘自(Wooldridge,2019,第7版)中的 *15- 5 b测试过度识别限制 *。
字符串
创建于2023-12-15使用reprex v2.0.2