gpt4 book ai didi

python - 使用 statsmodels.formula.api 的多项式回归

转载 作者:行者123 更新时间:2023-12-04 11:51:58 26 4
gpt4 key购买 nike

请原谅我的无知。我想要做的就是在我的回归中添加一个平方项,而无需在我的数据框中定义新列。我正在使用 statsmodels.formula.api(作为 stats),因为格式类似于我更熟悉的 R。

hours_model = stats.ols(formula='act_hours ~ h_hours + C(month) + trend', data = df).fit()

以上按预期工作。
hours_model = stats.ols(formula='act_hours ~ h_hours + h_hours**2 + C(month) + trend', data = df).fit()

这省略了 h_hours**2 并返回与上一行相同的输出。

我也试过:h_hours^2、math.pow(h_hours,2) 和 poly(h_hours,2)
都抛出错误。

任何帮助,将不胜感激。

最佳答案

您可以尝试使用 I()就像在 R 中:

import statsmodels.formula.api as smf

np.random.seed(0)

df = pd.DataFrame({'act_hours':np.random.uniform(1,4,100),'h_hours':np.random.uniform(1,4,100),
'month':np.random.randint(0,3,100),'trend':np.random.uniform(0,2,100)})

model = 'act_hours ~ h_hours + I(h_hours**2)'
hours_model = smf.ols(formula = model, data = df)

hours_model.exog[:5,]

array([[ 1. , 3.03344961, 9.20181654],
[ 1. , 1.81002392, 3.27618659],
[ 1. , 3.20558207, 10.27575638],
[ 1. , 3.88656564, 15.10539244],
[ 1. , 1.74625943, 3.049422 ]])

关于python - 使用 statsmodels.formula.api 的多项式回归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61899474/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com