刘海龙
侠客
侠客
  • UID366
  • 粉丝0
  • 关注0
  • 发帖数4
阅读:5663回复:1

python 2次方程线性回归示例

楼主#
更多 发布于:2019-04-25 23:03
内容:用最小二乘法求解出关于样本数据2次回归方程的参数
工具:pycharm
库:numpy,matplotlib.pyplot,statsmodels.api
一:导入库
import numpy as np # NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。 import matplotlib.pyplot as plt # Matplotlib 是 Python 的绘图库。 它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案。 它也可以和图形工具包一起使用,如 PyQt 和 wxPython。 import statsmodels.api as sm


二:准备样本数据



#参数个数 方程:Y = 5 + 2x + 3x^2 nsample = 50;
x = np.linspace(0, 10, nsample) # 添加x平方项 X = np.column_stack((x, x**2)) #添加常数列 X = sm.add_constant(X) #方程系数 5 2 3 beta = np.array([5, 2, 3]) #误差项e,生成nsample个数值,数值符合正态分布 e = np.random.normal(size = nsample) # 生成实际样本值y, X与beta点乘 ,再加上一个误差项, y = np.dot(X, beta) + e # 用最小二乘法定义出 model model = sm.OLS(y, X) # 拟合 results = model.fit()
pams = results.params

三:拟合数据

#拟合估计值y_fitted y_fitted = results.fittedvalues

四:绘制线性回归图 #画图 fig, ax = plt.subplots(figsize = (8, 6)) #原始数据x 与 y ax.plot(x, y, 'o', label = 'data') #拟合数据 ax.plot(x, y_fitted, 'r--.', label = 'OLS')
ax.legend(loc='best')
plt.show()
拟合效果如下:



描述:拟合效果

图片:a.png

拟合效果
何光强
侠客
侠客
  • UID262
  • 粉丝2
  • 关注0
  • 发帖数3
  • 社区居民
沙发#
发布于:2019-05-15 16:52
运用场景和实例?
游客

返回顶部