手动更改 sm.OLS 系数
manually alter a sm.OLS coefficient
我是 运行 统计模型中的多元回归。但是,我想在预测之前手动更改自变量的其中一个系数。我该怎么做?
例如,假设我在从 4 年前开始的 2 年时间段内训练我的数据。我 return 风、雨和太阳的系数。
现在假设我在最近 2 年的数据上训练我的数据,并再次获得回归输出中的系数。
如果我想将第一个回归输出的 wind
系数与第二个回归输出的 rain
和 sun
系数一起使用,我该如何手动更改 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 中的偏移量。
我是 运行 统计模型中的多元回归。但是,我想在预测之前手动更改自变量的其中一个系数。我该怎么做?
例如,假设我在从 4 年前开始的 2 年时间段内训练我的数据。我 return 风、雨和太阳的系数。
现在假设我在最近 2 年的数据上训练我的数据,并再次获得回归输出中的系数。
如果我想将第一个回归输出的 wind
系数与第二个回归输出的 rain
和 sun
系数一起使用,我该如何手动更改 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 中的偏移量。