Устранение неполадок надежной регрессионной модели, созданной на основе модели OLS в Statsmodel.

У меня возникли проблемы с запуском надежной регрессионной модели с помощью Statsmodel в python.

Работает следующая модель OLS:

model_name = sm.ols(formula="depenent ~ var1 * var2 + var3", data=data).fit()

Я попытался запустить:

model_name= sm.RLM(formula="depenent ~ var1 * var2 + var3", data=data).fit()

но я получаю следующую ошибку типа:

TypeError: __init__() missing 2 required positional arguments: 'endog' and 'exog'

Я прочитал эту документацию: https://www.statsmodels.org/dev/rlm.html но я все еще борюсь с кодом. Я открыт для использования другого пакета, такого как Scikit

Спасибо.


person Graham Streich    schedule 06.02.2019    source источник
comment
Вы должны включить сообщение об ошибке или объяснить, что вы имеете в виду, но это не сработало.   -  person Charles Landau    schedule 06.02.2019
comment
исправлено, спасибо за напоминание   -  person Graham Streich    schedule 06.02.2019


Ответы (1)


Версия ols не должна работать, если sm является statsmodels.api. statsmodels.api имеет только OLS (заглавные буквы для имени класса)

Функции формулы написаны строчными буквами, т. е. rlm импортированы из statsmodels.formula.api. Это просто псевдоним метода класса RLM.from_formula.

RLM заглавными буквами — это имя класса, который не поддерживает формулы напрямую и требует либо массивов numpy, либо pandas DataFrames или Series.

см., например, http://www.statsmodels.org/devel/examples/notebooks/generated/formulas.html

Примечание. Объекты нижнего регистра the formula.api просто определяются как псевдонимы, например. для OLS/ols и RLM/rlm

import statsmodels.regression.linear_model as lm_
import statsmodels.robust.robust_linear_model as roblm_

ols = lm_.OLS.from_formula
rlm = roblm_.RLM.from_formula
person Josef    schedule 06.02.2019
comment
Как вы распечатываете r ^ 2, скорректированное r ^ 2 и данные f-теста? Спасибо. - person Graham Streich; 07.02.2019
comment
(Это другой вопрос.) В statsmodels RLM их нет. wald_test может использоваться для вычисления совместной проверки гипотезы для коэффициента наклона. Я никогда не смотрел на Rsquared для RLM, но я думаю, что его можно определить по аналогии с WLS, но в настоящее время он не вычисляется. - person Josef; 07.02.2019