Почему в PLM model.matrix отображается столбец со всеми нулями? Как решить?

Я использую файлы с фиксированными эффектами на индивидуальном уровне, используя функцию plm. В соответствующей модели я регрессирую независимую переменную с 2 уровнями, которая варьируется между субъектами (лечение между субъектами), и другую независимую переменную с двумя уровнями, которая варьируется внутри субъектов (в рамках лечения субъекта).

Сводка plm не отображает коэффициент для независимой переменной, которая изменяется в пределах предмета. Изучая model.matrix, я заметил, что интересующий столбец состоит из нулей.

Есть ли способ решить проблему? Может быть, прибегнуть к другому типу контраста? Или по замыслу невозможно оценить эффект внутрисубъектной переменной в такой модели с фиксированным эффектом?

Любая помощь приветствуется.

#Reproducible example (unrelated with my actual dataset)

structure(list(DOILN = c(4.3207, 4.1675, 4.0718, 3.8239, 3.6247, 
2.044, 1.3759, 1.4596, 1.486, 4.3136), ROSLN = c(-2.0178, -2.2647, 
-4.0632, -3.9933, -3.441, -3.6077, -2.8291, -2.6271, -2.4051, 
-1.7239), IRATE = c(-0.0295, -0.1228, 0.00288, 0.03388, -0.0295, 
0.00288, 0.03849, 0.03388, 0.07165, 0.04809), GDPGROW = c(0.11731, 
0.07891, 0.05072, 0.05745, 0.11731, 0.05072, 0.02142, 0.05745, 
0.06645, -0.01765), ISOCode = structure(c(4L, 4L, 4L, 4L, 4L, 
4L, 4L, 4L, 4L, 3L), .Label = c("BRA", "CHN", "IND", "RUS"), class = "factor"), 
    ISOCodeBRA = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0), ISOCodeRUS = c(1, 
    1, 1, 1, 1, 1, 1, 1, 1, 0), ISOCodeIND = c(0, 0, 0, 0, 0, 
    0, 0, 0, 0, 1), ISOCodeCHN = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0)), .Names = c("DOILN", "ROSLN", "IRATE", "GDPGROW", "ISOCode", 
"ISOCodeBRA", "ISOCodeRUS", "ISOCodeIND", "ISOCodeCHN"), row.names = c("120453-2010", 
"120453-2011", "120453-2012", "120453-2014", "133431-2010", "133431-2012", 
"133431-2013", "133431-2014", "133431-2015", "200448-2009"), class = c("pdata.frame", 
"data.frame"), index = structure(list(GCKey = structure(c(1L, 
1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 3L), .Label = c("120453", "133431", 
"200448"), class = "factor"), FiscalY = structure(c(2L, 3L, 4L, 
6L, 2L, 4L, 5L, 6L, 7L, 1L), .Label = c("2009", "2010", "2011", 
"2012", "2013", "2014", "2015"), class = "factor")), .Names = c("GCKey", 
"FiscalY"), row.names = c(915L, 647L, 35L, 41L, 83L, 68L, 220L, 
330L, 497L, 1219L), class = c("pindex", "data.frame")))

mod <-plm(ROSLN ~ DOILN + GDPGROW + IRATE + factor(ISOCode), 
                         data = dat, model = "within")
model.matrix(mod)

summary(mod)

person another_newbie    schedule 08.09.2020    source источник


Ответы (1)


Я думаю, проблема в том, что вы используете внутреннюю модель, и нет вариации на ISOCode внутри GCKey, который является индексом.

> table(index(dat)$GCKey, dat$ISOCode)
        
         BRA CHN IND RUS
  120453   0   0   0   4
  133431   0   0   0   5
  200448   0   0   1   0

Таким образом, применение внутреннего преобразования к ISOCode фиктивным регрессорам дает вектор всех нулей. Например, если вы использовали model='pooling', вы увидите матрицу модели, которая больше соответствует вашим ожиданиям.

person DaveArmstrong    schedule 08.09.2020
comment
На самом деле мне нужно несколько перехватов от разных людей, чтобы учесть ненаблюдаемую неоднородность, затем я выбрал случайные эффекты, и это сработало. В конце концов, данные были собраны экспериментальным путем (на основе случайного выбора и случайного распределения), поэтому предположение о случайных эффектах должно оставаться в силе. Однако я решил провести тест Хаусмана, чтобы сравнить модели фиксированных эффектов и случайных эффектов. Удивительно, но я получил p = 1. Как вы думаете, это может быть разумно? Или должно быть что-то не так? Спасибо! - person another_newbie; 10.09.2020
comment
Имеет смысл, что вам нужно несколько перехватов. Проблема заключалась в том, что использование множественных перехватов через фиксированные эффекты сделало так, что некоторые переменные, которые являются постоянными внутри страны, не могут быть оценены их эффекты. Есть интересная статья здесь и еще одна здесь говорят о выборе между FE и RE. - person DaveArmstrong; 10.09.2020