我用python和R做三阶多项式回归,但是得到的系数不一样,不知道是什么原因,代码好像是对的。
Python代码:
def poly_three(n):
polynomial_features= PolynomialFeatures(degree=3)
data =polynomial_features.fit_transform(np.array(boston[n]).reshape(-1,1))
model = sm.OLS(boston['CRIM'], data).fit()
return model.summary()
ZN, INDUS, CHAS, NOX, RM, AGE, DIS, RAD, TAX, PTRATIO, B, LSTAT, Y = boston.keys()[1:14]
poly_three('ZN')
代码:
fit.zn2 <- lm(crim ~ poly(zn, 3))
summary(fit.zn2)
蟒蛇结果:
系数:4.8461;-0.3322; 0.0065; -3.776e-05
R结果:
系数:3.6135;-38.7498 ; 23.9398 ; -10.0719