在一个类中,我们一直在利用PSACALC在Stata的奥斯特的边界,以了解在回归省略变量偏差的程度。我想知道在R中是否有其他人知道的替代方案。
lvjbypge1#
大约两年前,我改编了PSACALC的代码,并制作了一个R包。我从来没有抽出时间把它放在CRAN上(不知道如何),但你可以从我的GitHub安装它。下面是一个简短的例子,再现了奥斯特(2019)的表5
#install.packages("devtools") library(devtools) #devtools::install_github("siverskog/oster") library(oster) data(nunn) # FORMULA FOR INTERMEDIATE (TILDE) REGRESSION f01c <- trust_relatives ~ ln_export_area + age + age2 + male + urban_dum + as.factor(education) + as.factor(occupation) + as.factor(religion) + as.factor(living_conditions) + district_ethnic_frac + frac_ethnicity_in_district + as.factor(isocode) + malaria_ecology + total_missions_area + explorer_contact + railway_contact + cities_1400_dum + as.factor(v30) + v33_alt + ln_init_pop_density # FORMULA FOR SHORT (O) REGRESSION f01u <- trust_relatives ~ ln_export_area + as.factor(isocode) # FITS fit01c <- lm(f01c, data = nunn) nunn$infit01c <- is.element(rownames(nunn), names(fit01c$residuals)) fit01u <- lm(f01u, data = nunn, subset = infit01c) # USE ONLY OBS. IN TILDE FIT # CALCULATE BETA/DELTA/RMAX WITH oster() TO # REPRODUCE ROW 1 OF TABLE 5 IN OSTER (2019) z <- oster(fit01u, fit01c, "ln_export_area") b13 <- oster(fit01u, fit01c, "ln_export_area", rm = 1.3)$beta round(c(z$input$beta_o, z$input$beta_tilde, z$beta, b13, z$rmax), 3)
vulvrdjw2#
您可以使用Sergei Schaub提供的robomit包。
2条答案
按热度按时间lvjbypge1#
大约两年前,我改编了PSACALC的代码,并制作了一个R包。我从来没有抽出时间把它放在CRAN上(不知道如何),但你可以从我的GitHub安装它。下面是一个简短的例子,再现了奥斯特(2019)的表5
vulvrdjw2#
您可以使用Sergei Schaub提供的robomit包。