回归拟合(二)

在《回归拟合(一)》中,完成了一次回归。如果做高次回归呢?其实可以将高次回归转化为一次回归。思路如下:

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'打印拟合出的参数'
print result.params
print u'打印全部摘要'
print result.summary()

执行结果:

QQ截图20171102223605.png

将模拟的散点和拟合的函数曲线绘制在图像中:

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

目测拟合效果相当好。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容