首页 > 学院 > 开发设计 > 正文

多元线性回归

2019-11-06 07:42:33
字体:
来源:转载
供稿:网友
多元线性回归的基本原理和基本计算过程与一元线性回归相同,但由于自变量个数多,计算相当麻烦,一般在实际中应用时都要借助统计软件。介绍多元线性回归的一些基本问题。但由于各个自变量的单位可能不一样,比如说一个消费水平的关系式中,工资水平、受教育程度、职业、地区、家庭负担等等因素都会影响到消费水平,而这些影响因素(自变量)的单位显然是不同的,因此自变量前系数的大小并不能说明该因素的重要程度,更简单地来说,同样工资收入,如果用元为单位就比用百元为单位所得的回归系数要小,但是工资水平对消费的影响程度并没有变,所以得想办法将各个自变量化到统一的单位上来。前面学到的标准分就有这个功能,具体到这里来说,就是将所有变量包括因变量都先转化为标准分,再进行线性回归,此时得到的回归系数就能反映对应自变量的重要程度。这时的回归方程称为标准回归方程,回归系数称为标准回归系数,表示如下:

Zy= β1Z*1 + β2Z*2 + … + βkZ*k

多元线性方程,一般采用矩阵来表示,因此在求多元线性方程的最小化函数时,就需要对矩阵进行求导,这个求导过程,NG已经给出了,如下:

最终求出来的公式如下:

这个公式也叫正规方程,它需要求解矩阵,所以数据比较多时,就比较慢。下面来给出一个计算简单线性回归的矩阵求法,假如数据:

(1,6), (2,5),(3,7)和(4, 10)

计算代码如下:

import numpy as npimport matplotlib.pyplot as pltinput = np.array([    [1, 6],    [2, 5],    [3, 7],    [4, 10]])m = len(input)X = np.array([np.ones(m), input[:, 0]]).Ty = np.array(input[:, 1]).reshape(-1, 1)betaHat = np.linalg.inv(X.T.dot(X)).dot(X.T).dot(y)PRint(betaHat)plt.figure(1)xx = np.linspace(0, 5, 2)yy = np.array(betaHat[0] + betaHat[1] * xx)plt.plot(xx, yy.T, color='b')plt.scatter(input[:, 0], input[:, 1], color='r')plt.show()输出结果:

可见矩阵计算方法比较快,不需要迭代,一步就可以计算出来。

1. C++标准模板库从入门到精通 

http://edu.csdn.net/course/detail/3324

2.跟老菜鸟学C++

http://edu.csdn.net/course/detail/2901

3. 跟老菜鸟学python

http://edu.csdn.net/course/detail/2592

4. 在VC2015里学会使用tinyxml

http://edu.csdn.net/course/detail/2590

5. 在Windows下SVN的版本管理与实战 

 http://edu.csdn.net/course/detail/2579

6.Visual Studio 2015开发C++程序的基本使用 

http://edu.csdn.net/course/detail/2570

7.在VC2015里使用protobuf协议

http://edu.csdn.net/course/detail/2582

8.在VC2015里学会使用MySQL数据库

http://edu.csdn.net/course/detail/2672


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表