300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 简单线性回归(Simple Linear Regression)和多元线性回归(Multiple Regression)学习笔记

简单线性回归(Simple Linear Regression)和多元线性回归(Multiple Regression)学习笔记

时间:2022-05-25 21:16:05

相关推荐

简单线性回归(Simple Linear Regression)和多元线性回归(Multiple Regression)学习笔记

简单线性回归(Simple Linear Regression)

0.前提介绍:

为什么需要统计量?

统计量:描述数据特征

0.1集中趋势衡量

0.1.1均值(平均数,平均值) (mean):(求和除以个数,Ex也可以表示x求均值)

0.1.2中位数(median) : 将数据中的各个数值按照大小顺序排列,居于中间位置的变量

0.1.2.1.给数据排序: 1,2,2,6,9

0.1.2.2.找出位置处于中间的变量: 2

当n为奇数的时候:直接取位置处于中间的变量

当n为偶数的时候,取中间两个量的平均值

0.1.2众数(mode) : 数据中出现次数最多的数

0.2.1.离散程度衡量

0.2.1.1方差(variance):

例如:{6, 2,9,1, 2}

(1)(6- 4)^2 + (2- 4)^2 + (9- 4)^2 +(1- 4)^2 + (2- 4)^2

=4+4+25+9+4= 46

(2) n-1=5-1=4

(3) 46/ 4 = 11.5

0.2.1.2标准差(standard deviation):方差开平方

S= sqrt(11.5) = 3.39

1.回归问题与分类问题区别:

回归(regression) :Y变量为连续数值型( continuous numerical variable)

如:房价,人数,降雨量

分类( Classification): Y变量为类别型(categorical variable)

如:颜色类别,电脑品牌,有无信誉

2.简单线性回归( Simple Linear Regression)

2.1很多做决定过过程通常是根据两个或者多个变量之间的关系

2.3回归分析(regression analysis)用来建立方程模拟两个或者多个变量之间如何关联

2.4被预测的变量叫做:因变量(dependent variable), y,即输出(output)

2.5被用来进行预测的变量叫做:自变量(independent variable), x,即输入(input)

3.简单线性回归介绍

3.1简单线性回归包含一个自变量(x)和一 个因变量(y)

3.2以上两个变量的关系用一条直线来模拟

3.3如果包含两个以上的自变量,则称作多元回归分析( multiple regression)

4.简单线性回归模型

4.1被用来描述因变量(y)和自变量(X)以及偏差(error)之间关系的方程叫做回归模型

4.2简单线性回归的模型是:

β为参数,X为自变量,ε为偏差

5.单线性回归方程:(ε满足正态分布,切均值为0)

E(y)=β0+β1x

这个方程对应的图像是一条直线, 称作回归线

其中,β0是回归线的截距

β1是回归线的斜率

E(y)是在一个给定x值下y的期望值(均值)

6.正向线性关系:

7.负向线性关系:

8.无关系:(斜率等于0)

9.估计的简单线性回归方程

b0为截距β0的估计值,b1是斜率β1的估计值

这个方程叫做估计线性方程( estimated regression line)

其中,bo是估计线性方程的纵截距

b是估计线性方程的斜率

y是在自变量x等于一个给定值的时候,y的估计值

10.线性回归分析流程:(ε的期望值(均值)为0,所以E(y)无ε)

11.关于偏差ε的假定

11.1是一个随机的变量,均值(或期望值)为0

11.2 ε的方差(variance)对于所有的自变量x是一样的

11.3 ε的值是独立的

11.4 ε满足正态分布

简单线性回归(Simple Linear Regression)下

简单线性回归模型举例:

汽车卖家做电视广告数量与卖出的汽车数里:

1.1如何练处适合简单线性回归模型的最佳回归线?

最佳回归线标准:(实际值y为红点,估计值y(hat)为线上的值)

使sum of squares(平方和)最小:

1.1.2最佳回归线计算

b0为截距β0的估计值,b1是斜率β1的估计值,(y ̅ 和x ̅ 都经过这条线,带入b1可求出b0)

分子= (1-2)(14-20)+(3-2)(24-20)+(2-2)(18-20)+(1-2)(17-20)+(3-2)(27-20)

=6+4+0+3+7

= 20

分母= (1-2) ^2 +(3-2)^2 +(2-2)2+(1-2)2+ (3-2)^2

=1+1+0+1+1

=4

b1 = 20/4 =5

b0=20-5*2=20- 10= 10

实例code:

import numpy as npdef fitSLR(x,y):n = len(x) #x,y长度一样,包含相同元素个数denominator = 0 #分母,计算完数据后不会为0,numeritor = 0 #分子for i in range(0,n):#实例有n组数numeritor += (x[i]-np.mean(x))*(y[i]-np.mean(y))denominator += (x[i]-np.mean(x))**2 print('numeritor:',numeritor)print('denominator:',denominator)b1 = numeritor/float(denominator)b0 = np.mean(y) - (b1*np.mean(x))return b0,b1def predict(x,b0,b1): #这里x为要预测的实例的值y_test=b0+b1*xreturn y_testx = [1,3,2,1,3]y = [14,24,18,17,27]b0,b1 = fitSLR(x=x,y=y) print('intercept:',b0)print('slope:',b1)x_test = 6y_test = predict(x_test,b0,b1)print('y_test:',y_test)

其中x_ given= 6(实例)

==Y_ hat=5*6+ 10 = 40 ==

运行结果如下:

numeritor: 20.0

denominator: 4.0

intercept: 10.0

slope: 5.0

y_test: 40.0

多元线性回归(Multiple Regression)上

多元回归分析( multipleregression)

1.与简单线性回归区别( simple linear regression):

MR有多个自变量(x)

2.多元回归模型

y=β0+β1 X1+β2X2+ … +βpXp+ε (多元的平面)

其中:β0(截面), β1, β2…βp是参数

ε是误差值

3.多元回归方程(等式左右同时取期望值,等式右边取期望值等于所有个体的期望值之和)

E(y)=β0+β1x1+B2X2+ … +βpXp

4.估计多元回归方程:

y_hat=b0+b1 x+b2x2+ … +bpXp

一个样本被用来计算β0, β1, β2… βp的点估计值分别为b0, b1, b2…,bp

5.估计流程(即预测过程,与简单线性回归类似一样)

Regression Model:y=β0+β1x+β2x+….βpx+ε,以下同理变化

Sample Data:现实中很多数据是难以统计完全的,所以用抽取的样本来计算.

6.估计方法

使sum of squares(平方和)最小:(多元曲面上估算值到实际值的差之和最小)

运算与简单线性回归类似,涉及到线性代数和矩阵的运算

7.例子(使用python计算)

一家快递公司送货 , X1 :运输里程(mile);X2 :运输次数;Y :总运输时间(h).

Time = b0+ b1Miles + b2Deliveries

计算结果:(下节课做详细运算)

Time = -0.869 + 0.0611 Miles + 0.923 Deliveries

8.描述参数含义

b0: 常数项

b1: 平均每多运送一英里,运输时间延长0.0611小时

b2:平均每多一次运输, 运输时间延长0.923小时

9.预测

如果一个运输任务是跑102英里,运输6次,预计多少小时?

Time = -0.869 +0.0611102+ 0.9236=10.9 (小时)

10.如果自变量(x)中有分类型变量( categorical data) ,如何处理?

(regression与classfication的区别在于y是否连续)

答:x既可以使用连续性变量也可以使用分类型变量

0,1,2只是作为标签,与其本身大小无关

11.关于误差的分布

误差ε是一个随机变量,均值为0

ε的方差对于所有的自变量来说相等

所有ε的值是独立的

ε满足正态分布,并且通过β0+ β1 x1+β2x2+ … +βpxp反映y的期望值

多元线性回归(Multiple Regression)下

一家快递公司送货 , X1 :运输里程(mile);X2 :运输次数;Y :总运输时间(h).

目的,求出b0, b1,…bp:

Y_ hat=b0+b1X1+b2X2+ … +bpXp.

多元线性回归code实例:

from numpy import genfromtxt #将csv文件的数据转换成np的array形式import numpy as npfrom sklearn import datasets,linear_model#1.导入数据dataPath = r'C:\Users\Administrator.Bili-LEMOKD\Desktop\新建文件夹\Delivery.csv'DeliveryData = genfromtxt(dataPath,delimiter=',') #genfromtxt将数据转换成矩阵形式;csv文件每个cell以逗号为分隔符,所以分隔符为","print(DeliveryData) #会自动将文件中的数据读取并转换为矩阵形式,并放到文件的第一行第一列开始X = DeliveryData[:, :-1]#取所有维度第一(0)列和第二(1)列的数作为x(取左不取右,所以不含倒数第一列)# print(X)Y = DeliveryData[:,-1]# print(Y)#2.建模regr = linear_model.LinearRegression()regr.fit(X,Y)print('coefficient:',regr.coef_) #x的系数(b1~bp)print('intercept',regr.intercept_) #截距(面)#3.预测xSample = np.array([[102,6]]) #array!!yPred = regr.predict(xSample)print('predicted y:',yPred)

运行结果如下:

[[100. 4. 9.3]

[ 50. 3. 4.8]

[100. 4. 8.9]

[100. 2. 6.5]

[ 50. 2. 4.2]

[ 80. 2. 6.2]

[ 75. 3. 7.4]

[ 65. 4. 6. ]

[ 90. 3. 7.6]

[ 90. 2. 6.1]]

coefficient: [0.0611346 0.92342537]

intercept -0.868701466781709

predicted y: [10.90757981]

如果自变量中有分类型变量(categorical data) :

将车型Dummy Varible转换成0和1:

同样可以用上面的代码执行:

from numpy import genfromtxt #将csv文件的数据转换成np的array形式import numpy as npfrom sklearn import datasets,linear_model#1.导入数据dataPath = r'C:\Users\Administrator.Bili-LEMOKD\Desktop\新建文件夹\DeliveryDummy.csv'eliveryData = genfromtxt(dataPath,delimiter=',')print(DeliveryData) '''打印出结果如果莫名多出几行(-1或nan),可能是复制数据到csv文件时有空数据,进入csv删除那几行即可'''X = DeliveryData[:, :-1]print('X:',X)Y = DeliveryData[:,-1]print('Y:',Y)#2.建模regr = linear_model.LinearRegression()regr.fit(X,Y)print('coefficient:',regr.coef_) #x的系数(5个x,b1~b5)print('intercept',regr.intercept_) #截距(面)#3.预测xSample = np.array([[102,6,0,1,0]]) #array!!yPred = regr.predict(xSample)print('predicted y:',yPred)

运行结果如下:

[100. 4. 0. 1. 0. 9.3]

[ 50. 3. 1. 0. 0. 4.8]

[100. 4. 0. 1. 0. 8.9]

[100. 2. 0. 0. 1. 6.5]

[ 50. 2. 0. 0. 1. 4.2]

[ 80. 2. 0. 1. 0. 6.2]

[ 75. 3. 0. 1. 0. 7.4]

[ 65. 4. 1. 0. 0. 6. ]

[ 90. 3. 1. 0. 0. 7.6]]

X: [[100. 4. 0. 1. 0.]

[ 50. 3. 1. 0. 0.]

[100. 4. 0. 1. 0.]

[100. 2. 0. 0. 1.]

[ 50. 2. 0. 0. 1.]

[ 80. 2. 0. 1. 0.]

[ 75. 3. 0. 1. 0.]

[ 65. 4. 1. 0. 0.]

[ 90. 3. 1. 0. 0.]]

Y: [9.3 4.8 8.9 6.5 4.2 6.2 7.4 6. 7.6]

coefficient: [ 0.05553544 0.69257631 -0.17013278 0.57040007 -0.40026729]

intercept 0.1999568891188126

predicted y: [10.59042938]

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。