Я обучил модель OLS на Python, используя statsmodels 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
Чего мне не хватает?
Nb с помощью LinearRegression от sklearn Я получаю то же значение 0,699.Так что я явно что-то упускаю.Но я не могу разобраться с этим.