解决从 Statsmodel 中的 OLS 模型创建的稳健回归模型的问题

Trouble shooting robust regression model created from a OLS model in Statsmodel

我在 运行 python 中使用 Statsmodel 的稳健回归模型时遇到问题。

以下 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

谢谢。

如果 smstatsmodels.api,则 ols 版本应该不起作用。 statsmodels.api 只有 OLS(class 名字的大写字母)

公式函数是小写的,即 rlmstatsmodels.formula.api 导入。这只是 class 方法 RLM.from_formula 的别名。

大写字母的 RLM 是 class 的名称,它不直接支持公式,需要 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