重现 OLS 预测 Python statsmodel
Reproducing OLS prediction Python statsmodel
我在 Python 中使用 statsmodels OLS 训练了一个 OLS 模型。
我用下面的代码训练了模型:
import statsmodels.api as sm
X2 = sm.add_constant(lin_x_train)
est = sm.OLS(lin_y_train, X2)
est2 = est.fit()
使用est2.params我得到以下参数:
const -0.394654
pow2 0.920915
eth_36hr -0.028754
eth_24dhr -0.068346
eth_16hr 0.064768
eth_72hr 0.001774
eth_48hr 0.001239
eth_24hr 0.026940
eth_2hr -0.163568
eth_3hr -0.042497
eth_4hr 0.033180
eth_5hr -0.029850
eth_6hr -0.040417
现在我想预测以下情况:
pow2 0
eth_36hr 2.91
eth_24dhr 1.34
eth_16hr 1.13
eth_72hr 13
eth_48hr 6.66
eth_24hr -9.89
eth_2hr -3.7
eth_3hr 2.37
eth_4hr 2.36
eth_5hr -2.28
eth_6hr -5.27
自从我训练了一个 OLS 模型后,我假设它很简单:
y = a + B1 * X1 + B2 *X2 + .... Bn*Xn
当我自己计算时,我得到的 Y 值为 0.132
但是使用:
Xnew = newcase
Xnew = sm.add_constant(Xnew)
est2.predict(Xnew)
我得到的值为 0.699
我错过了什么?
N.b。使用 sklearn 的 LinearRegression 我得到相同的值 0.699。所以我显然错过了一些东西。但我无法理解它。
我错过的确实很简单也很尴尬。
我交换了 2 个变量名称,导致手动预测错误。
所以,公式是正确的:
y = a + B1 * X1 + B2 *X2 + .... Bn*Xn
在发现它之前,我只是通过保存模型并导入它来执行预测来解决问题。
我在 Python 中使用 statsmodels OLS 训练了一个 OLS 模型。 我用下面的代码训练了模型:
import statsmodels.api as sm
X2 = sm.add_constant(lin_x_train)
est = sm.OLS(lin_y_train, X2)
est2 = est.fit()
使用est2.params我得到以下参数:
const -0.394654
pow2 0.920915
eth_36hr -0.028754
eth_24dhr -0.068346
eth_16hr 0.064768
eth_72hr 0.001774
eth_48hr 0.001239
eth_24hr 0.026940
eth_2hr -0.163568
eth_3hr -0.042497
eth_4hr 0.033180
eth_5hr -0.029850
eth_6hr -0.040417
现在我想预测以下情况:
pow2 0
eth_36hr 2.91
eth_24dhr 1.34
eth_16hr 1.13
eth_72hr 13
eth_48hr 6.66
eth_24hr -9.89
eth_2hr -3.7
eth_3hr 2.37
eth_4hr 2.36
eth_5hr -2.28
eth_6hr -5.27
自从我训练了一个 OLS 模型后,我假设它很简单:
y = a + B1 * X1 + B2 *X2 + .... Bn*Xn
当我自己计算时,我得到的 Y 值为 0.132 但是使用:
Xnew = newcase
Xnew = sm.add_constant(Xnew)
est2.predict(Xnew)
我得到的值为 0.699
我错过了什么?
N.b。使用 sklearn 的 LinearRegression 我得到相同的值 0.699。所以我显然错过了一些东西。但我无法理解它。
我错过的确实很简单也很尴尬。 我交换了 2 个变量名称,导致手动预测错误。 所以,公式是正确的:
y = a + B1 * X1 + B2 *X2 + .... Bn*Xn
在发现它之前,我只是通过保存模型并导入它来执行预测来解决问题。