知识的领域是无限的,我们的学习也是无限期的。这篇文章主要讲述numpy基础(part15)--线性模型相关的知识,希望能为你提供帮助。
学习笔记,这个笔记以例子为主。
开发工具:Spyder
线性模型若有一组观测值:
[x11, x12, y1], [x21, x22, y2], [x31, x32, y3],
...
[xn1, xn2, yn]
则总体回归模型为:
列成矩阵形式:
【numpy基础(part15)--线性模型】
在给出总体中的一组样本,则估计的样本回归函数为:
若要求出偏回归系数????1, ????2,和截距项 ????0,则有相关函数:
B = np.linalg.lstsq(X, Y)
b1 = B[0][0]
b2 = B[0][1]
b0 = B[0][2]
若有k个自变量,则相关函数的写法以此类推。
举个例子(对模拟的数据进行多元回归分析)代码:
import numpy as np
X = np.array([range(1, 11),
np.random.randint(1, 20, 10),
np.ones(10)]).T
Y = 2*X[:, 0] - X[:, 1] + 5*X[:, 2] + \\
np.array(np.random.normal(0, 1, 10))
B = np.linalg.lstsq(X, Y)
print(B)
b1 = B[0][0]
b2 = B[0][1]
b0 = B[0][2]
print(b1:, b1, b2:, b2, b0:, b0)
结果:
(array([ 1.91143292, -1.13716838,6.97656854]), array([ 5.11734472]), 3, array([ 47.9682451 ,11.92711516,0.88959877]))
b1: 1.91143292471 b2: -1.13716837881 b0: 6.97656854129
则由该样本估计的回归方程为:
若有点集[[1, 2], [3, 4], [5, 6]]则带入回归方程中,求出预测值:
import numpy as np
X = np.array([range(1, 11),
np.random.randint(1, 20, 10),
np.ones(10)]).T
Y = 2*X[:, 0] - X[:, 1] + 5*X[:, 2] + \\
np.array(np.random.normal(0, 1, 10))
B = np.linalg.lstsq(X, Y)
Xpre = np.array([[1, 2, 1], [3, 4, 1], [5, 6, 1]])
Ypre = Xpre.dot(B[0])
print(Ypre)
结果:
[ 4.004970566.188243328.37151608]
推荐阅读
- 《犯罪心理学》读书笔记(part1)--蔑视社会秩序的最明显最极端的表现就是犯罪
- 防火墙基础之IPSec VPN实验详解#导入Word文档图片#
- pandas基础(part4)--排序/分组/合并
- MySQL数据库(21)(连接查询 join)
- kubernetes Pod的详细总结
- 《乌合之众》读书笔记(part1)--对群体而言,最不公正的也许却是最好的
- 我常用的cmd命令
- 走近分形与混沌(part16)--三与自组织
- centos7上查看kafka-常见命令