Я сейчас работаю над проектом, в котором мне нужно перевести r код в python.
Я столкнулся с проблемой полиномиальной регрессии . Есть разница между коэффициентами, которые я получил от R и Python.
Вот мои данные:
stress_immo['stress immo'] = [0.0 , -0.2 ,-0.4]
stress_immo['Choc A - EQ T1'] = [-0.021951,-0.021951,-0.021951]
Код, данный мне в R, следующий:
Reg_GF_S_cEQT1_A_a_RE <- lm(Choc.A...EQ.T1~stress.immo+ I(stress.immo^2), data=stress_immo)
Результат этого:
(Intercept) -2.195e-02 NA NA NA
stress.immo -9.014e-17 NA NA NA
I(stress.immo^2) -1.502e-16 NA NA NA
Вот мой код в Python (очень вероятно, будет неправильным):
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import PolynomialFeatures
x = (stress_immo['stress immo'].values).reshape(-1,1)
qfit = PolynomialFeatures(degree=2)
xq = qfit.fit_transform(x)
y = (stress_immo['Choc A - EQ T1'].values).reshape(-1,1)
qr = LinearRegression()
model = qr.fit(xq,y)
и вот мои результаты:
print(model.coef_)
[[0. 0. 0.]]
print(model.intercept_)
[-0.02195108]
Как видите, перехват корректен, поскольку коэффициенты всегда равны 0 (независимо от того, какие данные я выбираю), я также попытался выполнить линейную регрессию , например:
x =stress_immo['stress immo'].values
x2 = np.power(stress_immo['stress immo'].values,2)
vector_row = np.array([x,x2]).reshape(-1, 2)
y = stress_immo['Choc A - EQ T1'].values
model = LinearRegression().fit(vector_row,y)
но результат всегда один и тот же, коэффициент 0
Буду признателен, если кто-нибудь сможет помочь. Спасибо,