手动更改 sm.OLS 系数

manually alter a sm.OLS coefficient

我是 运行 统计模型中的多元回归。但是,我想在预测之前手动更改自变量的其中一个系数。我该怎么做?

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

现在假设我在最近 2 年的数据上训练我的数据,并再次获得回归输出中的系数。

如果我想将第一个回归输出的 wind 系数与第二个回归输出的 rainsun 系数一起使用,我该如何手动更改 wind 在使用 predict?

之前

编辑:

回归code/parameters:

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

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

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

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

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

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