在R语言中是否有与Stata的PSACALC等价的代码?

2j4z5cfb  于 11个月前  发布在  R语言
关注(0)|答案(2)|浏览(140)

在一个类中,我们一直在利用PSACALC在Stata的奥斯特的边界,以了解在回归省略变量偏差的程度。我想知道在R中是否有其他人知道的替代方案。

lvjbypge

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)
vulvrdjw

vulvrdjw2#

您可以使用Sergei Schaub提供的robomit包。

相关问题