У меня проблема с использованием функции kclass() пакета RCompAngrist, когда у меня отсутствуют значения в моем df. Это функция, которая должна вычислять оценку «ограниченного объема информации максимального правдоподобия» с зависимой переменной с левой стороны и двумя частями в правой части уравнения. Первый для эндогенных переменных и второй для инструментов. Он основан на функции ivreg() пакета AER. Ниже приведен минимальный рабочий пример, который будет воспроизводить ошибку.R: Ошибки в cbind() с функцией kclass() и отсутствующие значения в кадре данных
library(magrittr)
library(devtools)
install_github(repo = "RCompAngrist",
username = "MatthieuStigler",
subdir = "RcompAngrist")
library(RcompAngrist)
a <- runif(10, 5, 90)
b <- runif(10, 4, 10)
c <- runif(10, 0, 1)
d <- runif(10, 5, 65)
e <- runif(10, 1, 2)
f <- runif(10, 1, 100)
g <- runif(10, 80, 90)
h <- c(1,12,3,5,NA,16,17,NA,9,10)
dummy <- kclass(a ~ b + c + d | d + e + f + g + h,
model = T,
data=df)
Если запустить этот код, вы должны получить сообщение об ошибке от R:
Ошибка в cbind (x_exo, г, x_endo, у): число строк матриц должны совпадать (см arg 2)
Это связано с NA в кадре данных, но я не могу понять, что именно происходит неправильно. Он работает, если вы создаете переменную «h» без NA. Однако, если опустить Nas через
df <- data.frame(a,b,c,d,e,f,g,h) %>% na.omit()
прежде чем переоценку модели, R дает мне сообщение об ошибке:
Ошибка в R_Z [с (n_G, n_y), C (n_G, n_y)]: индекс за пределами
Я также не понимаю, почему он не опускает НС самостоятельно, поскольку глобальная опция для na.action - это na.omit. Это становится еще более странным. При удалении «данных = ДФ» из функции, а затем повторно запустить модель сообщение об ошибке переключается на
Ошибка в cbind [...]
Почему это делает никакой разницы здесь, если «data = df» находится в коде или нет? Есть ли у кого-нибудь идеи, в которых может возникнуть проблема? Я не понимаю, что здесь происходит.
попробуйте запустить с 10 раз больше данных. Я думаю, что вы нарушаете предположения об алгоритме. – pcantalupo