tests/nobs_/compare-nobsreg5.R

library(haven)
library(data.table)
library(sdcLog)

path_dta <- list.files(
    pattern = "nobsreg5xmpl.dta", full.names = TRUE, recursive = TRUE
)
dt <- setDT(read_dta(path_dta))

# with and without global idlist
options(sdc.id_var = "id")
options(sdc.info_level = 2L)

dt[, year := as.factor(year)]
reg_1a <- lm(y ~ x + z + dum_2ids + dum_5ids + year, data = dt)
summary(reg_1a)

(res <- sdc_model(dt, reg_1a))

dt[, dum_2ids_lgl := as.logical(dum_2ids)]
reg_1b <- lm(y ~ x + z + dum_2ids_lgl + dum_5ids + year, data = dt)
summary(reg_1b)

(res <- sdc_model(dt, reg_1b))

lapply(
    c(id = "id", idtest = "idtest"),
    function(x) sdc_model(dt, reg_1, id_var = x)
)


## How to get results
## HANDLING ZEROS in sdc_model
setDT(broom::tidy(reg_1))[][!(term %in% c("z", "dum_2ids", "year2002"))]


## Variablelists
reg_2 <- lm(y ~ x + z + dum_2ids + dum_5ids + year*land, data = dt)
summary(reg_2)
(res <- sdc_model(dt, reg_2))
as.data.table(res$variables$land)
nobs(reg_2)
lapply(list(reg1 = reg_1, reg2 = reg_2), broom::tidy, .id = "reg")

dt[, CH := fifelse(land == "CH", TRUE, FALSE)]
reg_3 <- lm(y ~ x + year * CH * z, data = dt)
summary(reg_3)
(res <- sdc_model(dt, reg_3))


reg_4 <- lm(y ~ x + year:z + CH + year:CH:z, data = dt)
summary(reg_4)
sdc_model(dt, reg_4)

reg_5 <- lm(y ~ x + year:CH:z, data = dt)
summary(reg_5)
sdc_model(dt, reg_5)


dt[, lag_z := shift(z), by = c("id", "land")]
# model specification not identical to Stata
reg_6 <- lm(
    y ~ x + z + dum_2ids + dum_5ids + id1 + year + lag_z + 0,
    data = dt
)

summary(reg_6)
sdc_model(dt, reg_6)

dt[, (paste0("lag_z", 1:3)) := shift(z, n = 1:3), by = c("id", "land")]

reg_7 <- lm(
    y ~ x + z + lag_z1 + lag_z2 + lag_z3 + id1 + year,
    data = dt
)
summary(reg_7)
sdc_model(dt, reg_7)


reg_8 <- lm(
    y ~ z + dum_2ids + dum_5ids + year * x,
    data = dt
)
summary(reg_8)
options(sdc.info_level = 1L)
sdc_model(dt, reg_8)

Try the sdcLog package in your browser

Any scripts or data that you put into this service are public.

sdcLog documentation built on March 20, 2022, 1:06 a.m.