从Statsmodel中的OLS模型创建的稳健回归模型故障排除

时间:2019-02-06 01:07:36

标签: python statistics regression statsmodels robust

我在使用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 :(得分:1)

如果olssm,则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