在《回歸擬合(一)》中肃弟,完成了一次回歸免姿。如果做高次回歸呢胎撤?其實可以將高次回歸轉(zhuǎn)化為一次回歸瘩蚪。思路如下:
1307525-1509632092.jpg
按照這個思路身坐,撰寫代碼:
import numpy as np
import statsmodels.api as sm
# 先自己模擬一些散點分布在 y=1+0.1x+10x*x 周圍
nsample=100
x=np.linspace(0,10,nsample)
X=np.column_stack((x,x**2))
X=sm.add_constant(X)
beta=np.array([1,0.1,10])
e=np.random.normal(size=nsample)
y=np.dot(X,beta)+e
# 將模擬的散點擬合成回歸模型
model=sm.OLS(y,X)
result=model.fit()
print u'打印擬合出的參數(shù)'
print result.params
print u'打印全部摘要'
print result.summary()
執(zhí)行結(jié)果:
QQ截圖20171102223605.png
將模擬的散點和擬合的函數(shù)曲線繪制在圖像中:
import matplotlib.pyplot as plt
import matplotlib as mpl
y_fitted=result.fittedvalues
mpl.rcParams['figure.figsize']=(640/72,320/72)
plt.plot(x,y,'o',label='data')
plt.plot(x,y_fitted,'r--.',label='OLS')
plt.legend(loc='best')
plt.savefig('ols.jpg')
ols.jpg
目測擬合效果相當(dāng)好金吗。