一、说明
回归和差值是常用的数学工具。
回归分析是一种数学模型。回归,指研究一组随机变量(Y1 ,Y2 ,…,Yi)和另一组(X1,X2,…,Xk)变量之间关系的统计分析方法,又称多重回归分析。通常Y1,Y2,…,Yi是因变量,X1、X2,…,Xk是自变量。
在离散数据的基础上补插连续函数,使得这条连续曲线通过全部给定的离散数据点。插值是离散函数逼近的重要方法,利用它可通过函数在有限个点处的取值状况,估算出函数在其他点处的近似值。插值:用来填充图像变换时像素之间的空隙。
二、定义示例函数
f(x)=sin(x)+0.5x
import numpy as np
import matplotlib.pylab as plt
#定义示例函数
def f(x):
return np.sin(x)+0.5*x
#生成x的模拟数据
x=np.linspace(-2*np.pi,2*np.pi,50)
plt.plot(x,f(x),'b')
plt.grid(True)
plt.xlabel('x')
plt.ylabel('f(x)')
plt.show()
三、回归
回归是在给定一组“基函数的”下,找出最优参数来拟合观测值。
numpy中的ployfit可以确定最优参数,polyval可以以一组输入值求取近似值。
1次单项式拟合
#参数 x 表示 x 坐标(自变量的值)
#参数 y 表示 y 坐标(因变量的值)
#deg 拟合多项式的次数
#full 如果是true,那么会返回调试信息
#w应用于y坐标的权重
#cov如果true,返回协方差矩阵
reg=np.polyfit(x,f(x),deg=1)
#开始拟合
ry=np.polyval(reg,x)
#画图
plt.plot(x,f(x),'b',label='f(x)')
plt.plot(x,ry,'r.',label='regression')
plt.legend(loc=0)
plt.grid(True)
plt.xlabel('x')
plt.ylabel('f(x)')
plt.show()
5次单项式作为基函数的拟合结果
这种拟合不是很合适,我们增加拟合次数到5次 deg=5
reg=np.polyfit(x,f(x),deg=5)
#开始拟合
ry=np.polyval(reg,x)
#画图
plt.plot(x,f(x),'b',label='f(x)')
plt.plot(x,ry,'r.',label='regression')
plt.legend(loc=0)
plt.grid(True)
plt