多元线性回归

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

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

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



最终求出来的公式如下:


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

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

计算代码如下:

import numpy as np
import matplotlib.pyplot as plt
input = np.array([
    [1, 6],
    [2, 5],
    [3, 7],
    [4, 10]
])
m = len(input)
X = np.array([np.ones(m), input[:, 0]]).T
y = 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++标准模板库从入门到精通 

2.跟老菜鸟学C++

3. 跟老菜鸟学python

4. 在VC2015里学会使用tinyxml库

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

 http://edu.youkuaiyun.com/course/detail/2579

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

http://edu.youkuaiyun.com/course/detail/2570

7.在VC2015里使用protobuf协议

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

caimouse

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值