Регрессия Python: Сохраняйте все уровни в журналах категорий

#python #regression

Вопрос:

Я использую statsmodels.formula.api для запуска регрессии GEE. У меня есть категориальные и непрерывные независимые переменные в регрессии, и я хотел бы, чтобы базовые уровни в категориальной не снижались. statsmodels.formula.api похоже, что по умолчанию снижается определенный/базовый уровень.

Когда я смотрю на пример «Удаление переменных» в документации по моделям состояний, я вижу, что ссылочные уровни также включены, когда формула имеет формат ниже:

 res = smf.ols(formula='Lottery ~ Literacy   Wealth   C(Region) -1 ', data=df).fit()

print(res.params)

Output:
C(Region)[C]    38.651655
C(Region)[E]    23.223870
C(Region)[N]    28.634694
C(Region)[S]    34.103399
C(Region)[W]    28.560379
 

Однако, когда я запускаю регрессию GEE, как показано ниже, в том же формате, что и приведенные выше OLS (включая -1), базовые уровни по-прежнему автоматически удаляются с State :

 import statsmodels.formula.api as smf
import statsmodels.api as sm

fam = sm.families.Binomial()
mod = smf.gee(formula='indicator ~ Income   Unemployment   Debt   C(State)   C(History) -1 ', 'Employee id', data=train_set, family = fam, cov_struct = sm.cov_struct.Exchangeable())
 

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

Комментарии:

1. Является ли один из других регрессоров в модели gee также категоричным? Работает -1 только для одной категориальной переменной, и, АФАИК, мы не можем выбрать, для какой из них.

2. @Josef Да, это так. Я отредактировал вопрос, чтобы отразить это. Учитывая это, если я все еще хочу использовать statsmodels , могу ли я просто использовать statsmodels.api напрямую и напрямую предоставлять exog , со всеми включенными ссылочными уровнями и без перехвата?

3. Вы можете напрямую использовать модели (api) с массивами Dataframe или numpy. Тем не менее, вы все равно должны убедиться, что у вас есть неособый exog . Если вы не отбросите какие-либо базовые уровни с несколькими категориальными переменными, то матрица проектирования будет единственной. (Это то, что Пэтси и формулы пытаются предотвратить в данном случае.)

4. Ответ в этой ссылке вводит в заблуждение. Каждый полный набор фиктивных переменных суммируется до 1 строки подряд. Если существует более 1 категориальной переменной, то каждая добавляет одну неявную константу.

5. OLS, WLS, IRL в statsmodels по умолчанию используют обобщенный обратный. Это создает регуляризованное решение, если экзог единичен. Однако cov_params имеет более низкий ранг и является единственным. Большинство других моделей вызовут исключение, если матрица проектирования является единственной.