0

我在 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

谢谢你。

4

1 回答 1

1

如果是,则该ols版本不应该工作。只有(类名的大写字母)smstatsmodels.apistatsmodels.apiOLS

公式函数是小写的,即rlmstatsmodels.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
于 2019-02-06T02:36:46.797 回答