版权声明:本文为博主原创文章,未经允许,不得转载!欢迎留言附带链接转载! https://blog.csdn.net/qq_15698613/article/details/86425055
目录
2 使用python实现上述过程,并预测,x1=102,x2=6时的结果
扫描二维码关注公众号,回复:
4987525 查看本文章
1 多元线性回归基本理论
1.1 multiple regression
多个自变量x
1.2 多元回归模型
1.3 多元回归方程
1.4 估计多元回归方程
1.5 估计流程(与简单线性回归类似)
1.6 估计方法
1.7 例子
x1 | x2 | y | |
1 | 100 | 4 | 9.3 |
2 | 50 | 3 | 4.8 |
3 | 100 | 4 | 8.9 |
4 | 100 | 2 | 6.5 |
5 | 50 | 2 | 4.2 |
6 | 80 | 2 | 6.2 |
7 | 75 | 3 | 7.4 |
8 | 65 | 4 | 6.0 |
9 | 90 | 3 | 7.6 |
10 | 90 | 2 | 6.1 |
假设计算出来的b0=-0.869 , b1 = 0.0611 , b2 = 0.923,理解,x1加1,则y变化0.0611
2 使用python实现上述过程,并预测,x1=102,x2=6时的结果
from numpy import genfromtxt
import numpy as np
from sklearn import datasets, linear_model
dataPath = r"F:/python/实验/diliver.csv"
data =genfromtxt(dataPath,delimiter=',')
print("数据:")
print(data)
x = data[:, :-1]
y = data[:, -1]
print(x)
print(y)
regr = linear_model.LinearRegression()
regr.fit(x, y)
print("从b1开始输出参数预测")
print(regr.coef_)
print("b0的结果,截面:")
print(regr.intercept_)
#假如x1=102,x2=6,预测新值
xp = [[102, 6]]
print(xp)
yp = regr.predict(xp)
print("预测出来的值:")
print(yp)
运行结果:
3 进阶:如果自变量x中有不同种类怎么解决?
x1 | x2 | 分类 | y | |
1 | 100 | 4 | 1 | 9.3 |
2 | 50 | 3 | 0 | 4.8 |
3 | 100 | 4 | 1 | 8.9 |
4 | 100 | 2 | 2 | 6.5 |
5 | 50 | 2 | 2 | 4.2 |
6 | 80 | 2 | 1 | 6.2 |
7 | 75 | 3 | 1 | 7.4 |
8 | 65 | 4 | 2 | 6.0 |
9 | 90 | 3 | 2 | 7.6 |
分类型变量不能直接将分类作为一个参数直接加入,因为1,2,0都没有实际意义,只是用来区分种类
将上述表格的分类进行变换,将种类个数变为列数,如果属于哪一类就为1,其它为0
x1 | x2 | 0 | 1 | 2 | y | |
1 | 100 | 4 | 0 | 1 | 0 | 9.3 |
2 | 50 | 3 | 1 | 0 | 0 | 4.8 |
3 | 100 | 4 | 0 | 1 | 0 | 8.9 |
4 | 100 | 2 | 0 | 0 | 1 | 6.5 |
5 | 50 | 2 | 0 | 0 | 1 | 4.2 |
6 | 80 | 2 | 0 | 1 | 0 | 6.2 |
7 | 75 | 3 | 0 | 1 | 0 | 7.4 |
8 | 65 | 4 | 0 | 0 | 1 | 6.0 |
9 | 90 | 3 | 0 | 0 | 1 | 7.6 |
#本程序是用来多元线性回归分析中,自变量含有类别时如何处理
from numpy import genfromtxt
import numpy as np
from sklearn import datasets, linear_model
dataPath = r"F:/python/实验/PreDiliver.csv"
data =genfromtxt(dataPath,delimiter=',')
print("数据:")
print(data)
x = data[:, :-1]
y = data[:, -1]
print(x)
print(y)
regr = linear_model.LinearRegression()
regr.fit(x, y)
print("从b1开始输出参数预测:b1,b2,b3,b4,b5")
print(regr.coef_)
print("b0的结果,截面:")
print(regr.intercept_)
#假如x1=102,x2=6,第1类,预测新值
xp = [[102, 6, 0, 1, 0]]
print(xp)
yp = regr.predict(xp)
print("预测出来的值:")
print(yp)
结果: