Я хотел бы сделать что-то похожее на "ivtobit" Статы (используя инструментальные переменные с регрессией Тобита) в R. После некоторого поиска в Google я нашел эту ссылку с исходным кодом на Github: https://rdrr.io/github/bolimorales/RegUtils/man/ivtobit.html.
Допустим, я хотел бы применить эту функцию к следующему набору данных:
panelID = c(1:50)
year= c(2001:2010)
country = c("NLD", "GRC", "GBR")
n <- 2
library(data.table)
set.seed(123)
DT <- data.table(panelID = rep(sample(panelID), each = n),
country = rep(sample(country, length(panelID), replace = T), each = n),
year = c(replicate(length(panelID), sample(year, n))),
some_NA = sample(0:5, 6),
some_NA_factor = sample(0:5, 6),
norm = round(runif(100)/10,2),
Income = round(rnorm(10,-5,5),2),
Happiness = sample(10,10),
Sex = round(rnorm(10,0.75,0.3),2),
Age = sample(100,100),
Educ = round(rnorm(10,0.75,0.3),2))
DT [, uniqueID := .I] # Creates a unique ID
DT[DT == 0] <- NA
Функция имеет следующие параметры
ivtobit <- function(formula, instruments, data, subset, na.action = NULL,
weights, offset, contrasts = NULL, model = TRUE, y = TRUE, x = FALSE,
left=0, right = Inf, method = "BHHH", ...)
Для простоты я попытался следующее:
ivtobit.result <- ivtobit (Happiness ~ Sex + Age + Educ, Educ ~ Sex + Age + Income + some_NA, data = DT, na.action = na.omit, left=1, right = 10, method = "twostep")
Но затем выдает ошибку:
Error in unique(exogenous) :
argument "exogenous" is missing, with no default
Но когда я смотрю в исходный код, я даже не могу найти unique(exogenous)
.
Может кто-нибудь помочь мне объяснить, что здесь происходит и как заставить это работать?