手动更改sm.OLS系数

2024-03-29 09:29:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我在statsmodels中运行多元回归。然而,我想在预测之前手动改变一个自变量的系数之一。我该怎么做呢

例如,假设我在4年前开始的2年时间段内训练数据。我返回风、雨和太阳的系数

现在,假设我对最近两年的数据进行训练,再次得到回归输出中的系数

如果我想使用第一次回归输出的wind系数和第二次回归输出的rain系数和sun系数,我如何在使用predict之前手动更改wind

编辑:

回归代码/参数:

model = sm.OLS(y[:train],X[:train]).fit()
predictions = model.predict(X[-test:])

其中X[['rain','sun','wind']],而y['growth']


Tags: 数据代码编辑参数modeltrain手动predict
0条回答
网友
1楼 · 发布于 2024-03-29 09:29:13

OLS中的预测只是解释变量的线性函数,x dot params

my_params = results.params.copy()
my_params[2] = -99999
my_predict = x.dot(my_params)

我建议不要直接更改模型中的任何数字,因为这样一来,任何推断结果对于更改后的模型都是无效的

如果您有已知参数,则可以估计受限模型,例如使用GLM.fit_constrained,或将它们添加到GLM中的偏移量

相关问题 更多 >