解决从 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
谢谢。
如果 sm
是 statsmodels.api
,则 ols
版本应该不起作用。 statsmodels.api
只有 OLS
(class 名字的大写字母)
公式函数是小写的,即 rlm
从 statsmodels.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
我在 运行 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
谢谢。
如果 sm
是 statsmodels.api
,则 ols
版本应该不起作用。 statsmodels.api
只有 OLS
(class 名字的大写字母)
公式函数是小写的,即 rlm
从 statsmodels.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