Устранение неисправностей - надежная модель регрессии, созданная на основе модели OLS в Statsmodel - PullRequest
0 голосов
/ 06 февраля 2019

У меня проблемы с запуском надежной регрессионной модели с 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

Спасибо.

1 Ответ

0 голосов
/ 06 февраля 2019

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

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

RLM заглавными буквами - это имя класса, который не поддерживает формулы напрямую и требует либо пустых массивов, либо панд 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...