Использование категориальной переменной в моделях spreg

Я хотел бы использовать модель пространственной регрессии, используя пакет spreg в Python. Мои данные состоят из числовых переменных, но у меня также есть категориальная переменная земельного покрова (с 7 классами), которую мне нужно включить в модель. Это отлично работает с использованием statsmodels , но я не смог понять, как это сделать в spreg .

Я пробовал создавать фиктивные переменные вручную (используя ), но это приводит к сообщению об ошибке для моей модели spreg.OLS:

RuntimeWarning: в sqrt обнаружено недопустимое значение se_result=np.sqrt(отклонение)

RuntimeWarning: в sqrt обнаружено недопустимое значение tStat = betas [list(range(0, len(vm)))]. Reshape(len(vm),) / np.sqrt(variance)

Все фиктивные переменные также имеют значения nan в разделах результатов Std.Error, t-Statistic и Probability (см. Отрывок ниже).

              Variable     Coefficient       Std.Error     t-Statistic     Probability

        CONSTANT    -142.9375000             nan             nan             nan
     temperature       0.0136240       0.0001169     116.4984154       0.0000000
   precipitation       0.0000003       0.0000000     153.7448775       0.0000000
         cover_1     141.9375000             nan             nan             nan
         cover_2     142.0625000             nan             nan             nan
         cover_3     141.6875000             nan             nan             nan
         cover_4     142.0625000             nan             nan             nan
         cover_5     141.9375000             nan             nan             nan
         cover_6     141.6875000             nan             nan             nan
         cover_7     141.8125000             nan             nan             nan

При использовании статистических моделей с теми же данными / переменными результат модели OLS был следующим:

                                  coef    std err          t      P>|t|
     temperature         -0.0004   2.72e-05    -15.115      0.000
   precipitation       -1.62e-08   4.12e-10    -39.294      0.000
         cover_1          0.0706      0.001    119.653      0.000
         cover_2          0.0290      0.001     29.431      0.000
         cover_3          0.0100      0.001      7.120      0.000 
         cover_4          0.0491      0.000    122.972      0.000
         cover_5          0.0327      0.000     79.698      0.000 
         cover_6          0.0140      0.000     35.541      0.000 
         cover_7         -0.0026      0.001     -4.223      0.000 

Как я могу включить свои категориальные данные в модели spreg (например, spreg.GM_Lag)?

1 ответ

Я предполагаю, что вы попали в «ловушку фиктивной переменной».

У вас нет константы в версии statsmodels, но она включена в версию spreg.

Если вы не опустите контрольный уровень в своей категориальной переменной, то он будет идеально коллинеарен константе. Матрица плана будет сингулярной, а стандартная матрица продукта x'x не обратима.

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