SPML: ошибка в lag.listw(listw, u, zero.policy = zero.policy): длина объекта отличается

У меня есть данные панели и мне нужно применить spml, но я продолжаю получать одну и ту же ошибку, и, несмотря на попытки, мне не удается ее преодолеть.

В принципе, у меня есть сбалансированная панель из 36 единиц и 261 дней наблюдений. Я создал data.frame (с именем aaa) с 6 столбцами

Банк, Дата, CDS, X1, X2, X3

и 9396 строк (9397, если учитывать метки столбцов).

Здесь: * Units и Date - мои индексы * CDS - зависимая переменная * X1, X2 и X3 - независимые переменные.

  • Банк является фактором с 36 уровнями,
  • Дата является целочисленным вектором int [1: 9396],
  • CDS, X1, X2 и X3 представляют собой числовые векторы num [1:9396].

Я также создал объект listw (с именем W2) класса "matrix" и структуры num [1:9396, 1:9396].

Я получил свой объект listw, применив Kronecker к исходной матрице W со следующим кодом:

(Kronecker (diag(261), W)

Затем я выразил "формулу" следующим образом:

fm <- (Cds) ~ (X1) + (X2) + (X3)

И, впоследствии, применил сплм:

spmltest<-spml(fm, data = aaa, index = c("Bank","Date"), listw = w2)

Вот ошибка, которую я получаю:

Ошибка в lag.listw(listw, u, zero.policy = zero.policy): длина объекта отличается.

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

Есть идеи, где я ошибаюсь? Любая помощь или предложение будет высоко ценится. Спасибо.

(PS: я знаю, что должен указать модель (если она фиксированная или случайная), но я не думаю, что это решит эту конкретную проблему. Если я ошибаюсь, пожалуйста, дайте мне знать)

(Pss: Я также обнаружил, что кто-то уже спрашивал об этой же проблеме и решил ее следующим образом: "Авторы пакета" splm "указали на ошибку в настройке идентификаторов панели. Пространственные единицы должны быть медленнее (1,1,1,.....; 2,2,2...;....;77,77,77,....) и идентификатор времени должен быть быстрее (1,2,3,....,31;....; 1,2,3...31) из двух. После соответствующей настройки данных я смог получить результаты ". Я просто не могу понять, что это такое подразумевается медленнее и быстрее. Если это означает, что данные должны быть отсортированы по пространственным единицам, а не по времени, мои данные уже отсортированы таким образом).

2 ответа

У меня была такая же проблема в моей модели.

Я решил (особая благодарность Милло Джованни), установив первые два столбца моей базы данных по "id" и "time". Вам также не нужно продолжать произведение Кронекера, R автоматически расширяет пространственную матрицу W.

И не забудьте идентифицировать данные в том же порядке "id" и "time" по index = c("id", "time").

Вот мой код:

SEM <- spml (формула = gdp ~ oivrev, data = data, index = c ("id", "year"), listw = W, model = "inside", lag = F,atial.error = "b")

Я надеюсь, что это поможет вам.

Мой опыт показывает, что я получил ту же ошибку, когда я использовал панель, содержащую значения NA. Когда я удаляю данные с помощью NA, код работал правильно. Удачи!

Вам нужно установить index=Null, так как вы делаете продукт Kronecker

Другие вопросы по тегам