首页 > 编程知识 正文

用最小二乘法求解一元线性回归参数,python线性回归分析

时间:2023-05-03 07:54:38 阅读:171233 作者:1105

在监督学习中,当预测的变量是离散的时,将其称为分类,例如决策树、支持向量机等,当预测的变量是连续的时,将其称为回归。 如果回归分析只包含一个自变量和一个因变量,且两者之间的关系用直线近似表示,则此回归分析称为一元线性回归分析。 如果回归分析包含两个或多个自变量,并且变量与自变量之间存在线性关系,则称为多元线性回归分析。 关于二维空间的线性是直线,三维空间的线性是平面,多维空间的线性是超平面……现在谈谈最简单的一元线性回归模型。

1 .一元线性回归模型

模型如下。

整体回归函数中y和x的关系是线性的,也是非线性的。 线性回归模型的“线性”有两种解释。

)1)变量是线性的,y的条件平均是x的线性函数

)2)参数是线性的,y的条件平均是参数的线性函数

线性回归模型主要是指相对于参数呈“线性”。 因为如果相对于参数是线性的,则可以用同样的方法估计参数。

2 .参数估计——最小zrdxm乘法

对于一元线性回归模型,假设从总体获得了n组观察值(X1,Y1 ),(X2,Y2 ),(Xn,Yn )。 可以用无数条曲线拟合平面上的这n个点。 要求样本回归函数尽可能好地拟合该值。 总的来看,这条直线位于样本数据中心是最合理的。 用于选择最佳拟合曲线的准则可以确定为总拟合误差最小,也就是说,总残差最小。 可以从以下三个标准中选择。

)1)用“残差和最小”确定直线位置是一种方法。 但是,很快就发现“残差和”的计算存在相互抵消的问题。

)2)用“残差的绝对值和最小”来确定直线的位置也是一种方法。 但是,绝对值的计算很麻烦。

)3)最小zrdxm乘法的原则是用“残差平方和最小”确定直线位置。 如果用最zrdxm进行乘法运算的话,除了容易计算之外,得到的推算量也具有优良的特性。 该方法对异常值非常敏感。

最常用的是普通的最zrdxm乘法(Ordinary Least Square,OLS )。 选择的回归模型应确保所有观察值的残差平方和最小。 (q为残差平方和) )。

样本回归模型:

残差平方和:

把这条直线用q确定为最小,即确定,当成变量,把它们看作q的函数,就变成了求极值的问题,可以通过求导数得到。 求出对q2个评价对象参数的偏导数:

解得:

3 .实现最zrdxm乘法python #---coding : utf-8---#作者:kempimport numpy as np #惯例import scipy as sp #惯例from scipy.optimimin 最乘以zrdxm的函数import pylab as plm=9 #多项式的阶数defreal_func(x ) :returnNP.sin )2*NP.pi*x ) sin )2pix )使用deffake 多项式分布的函数return f(x ) x ) #残差函数defresiduals(p,y,x ) :returny-fake_func(p,x ) #随机选择9 ) #绘制图时所需的“连续” 1000 ) y0=real_func(x ) x )加入正态分布噪波的yy1=[np.random.normal(0 0.1 ) y for y in y0]# ) #多项式分布的参数P0=NP.random . x ) (print ) ) fiduals,p0,args=) y1 plsq[0]输出拟合参数pl.plot(x(x_show,real_func ) x_show ),lar

fitting parameters:[ 4.28790975 e03-1.61487431 e 042.44112227 e 04-1.89400574 e04 ]

8.01662042 e03-1.80367008 e 031.75692385 e 02.10072187 e 00

-1.41404201e-02]

的图像如下。

而且很明显,绿线拟合得太多了。 有心的读者应该早就注意到了。 上述示例是patternreconnitionandmachinelearning上的示例。 读过这本书的人应该还记得,接下来应该会添加penalty term来控制拟合的状况。 错误函数应如下所示:

此时,只要改变残差函数就可以了。

defresiduals(p,y,x ) : ret=y - fake_func(p ) p,x ) ret=NP.append(ret,NP.sqrt ) regularization ) p

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。