plm: использование fixef () для ручного расчета подгоночных значений для модели с фиксированными эффектами

Обратите внимание: я пытаюсь получить код для работы си то и другое время & индивидуальные фиксированные эффекты инесбалансированный набор данных. Пример кода ниже работает со сбалансированным набором данных.

Смотрите также редактирование ниже, пожалуйста

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

Отplm виньетка (стр.2), лежащая в основе модель: y

_it =альфа +бета_transposed * x_it + (му_i +лямбда_t +эпсилон_Это)

где mu_i - это отдельная составляющая элемента ошибки (a.k.a. "индивидуальный эффект »), и lambda_t является "эффект времени ".

Фиксированные эффекты могут быть извлечены с помощьюfixef() и я подумал, что мог бы использовать их (вместе с независимыми переменными) для вычисления подгоночных значений для модели, используя (с двумя независимыми переменными) таким образом:

поместиться_it =альфа +бета_1 *х1 +бета_2 *х2 +му_i +лямбда_t

Вот где я терплю неудачу - значения, которые я получаю, нигде не соответствуют подогнанным значениям (которые я получаю как разницу между фактическими значениями и остатками в модельном объекте). Для одного я не вижуalpha в любом месте. Я пытался играть с фиксированными эффектами, показанными как отличия от первого, среднего и т. Д., Но безуспешно.

Чего мне не хватает? Боюсь, это может быть неправильное понимание модели или ошибка в коде ... Заранее спасибо.

PS: один из связанных вопросов подсказывает, чтоpmodel.response() должны быть связаны с моей проблемой (и причина не существуетplm.fit функции), но ее страница справки не помогает мне понять, что на самом деле делает эта функция, и я не могу найти примеров того, как интерпретировать результат, который она дает.

Спасибо!

Пример кода того, что я сделал:

library(data.table); library(plm)

set.seed(100)
DT 

Ответы на вопрос(4)

Ваш ответ на вопрос