多元回归分析(multiple regression)及其应用

来源:互联网 发布:em算法例子 编辑:程序博客网 时间:2024/06/05 07:02

1. 与简单线性回归区别(simple linear regression)
多个自变量(x)

2. 多元回归模型
y=β0+β1x1+β2x2+ … +βpxp+ε
其中:β0,β1,β2… βp是参数
ε是误差值

3. 多元回归方程
E(y)=β0+β1x1+β2x2+ … +βpxp

4. 估计多元回归方程:
y_hat=b0+b1x1+b2x2+ … +bpxp

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

5. 估计流程 (与简单线性回归类似)
这里写图片描述
6. 估计方法
使sum of squares最小
这里写图片描述
运算与简单线性回归类似,涉及到线性代数和矩阵代数的运算
7. 例子

一家快递公司送货:X1: 运输里程 X2: 运输次数 Y:总运输时间
这里写图片描述
目的,求出b0, b1,…. bp:
y_hat=b0+b1x1+b2x2+ … +bpxp

Time = b0+ b1*Miles + b2 * Deliveries
Time = -0.869 + 0.0611 Miles + 0.923 Deliveries

8. 描述参数含义
b0: 平均每多运送一英里,运输时间延长0.0611 小时
b1: 平均每多一次运输,运输时间延长 0.923 小时

9. 预测
如果一个运输任务是跑102英里,运输6次,预计多少小时?
Time = -0.869 +0.0611 102+ 0.923 6= 10.9 (小时)

10. 如果自变量中有分类型变量(categorical data) , 如何处理?
这里写图片描述
11. 关于误差的分布
误差ε是一个随机变量,均值为0
ε的方差对于所有的自变量来说相等
所有ε的值是独立的
ε满足正态分布,并且通过β0+β1x1+β2x2+ … +βpxp反映y的期望值

# -*- coding:utf-8 -*-from numpy import genfromtxtfrom sklearn import linear_model# genfromtxt函数#  genfromtxt函数创建数组表格数据#  genfromtxt主要执行两个循环运算。第一个循环将文件的每一行转换成字符串序列。第二个循环将每个字符串序列转换为相应的数据类型。#  genfromtxt能够考虑缺失的数据,但其他更快和更简单的函数像loadtxt不能考虑缺失值。#  详细用法参考:https://docs.scipy.org/doc/numpy/reference/generated/numpy.genfromtxt.html#  附加numpy.savetxt该函数能够将数据存储为 CSV 格式:https://docs.scipy.org/doc/numpy/reference/generated/numpy.savetxt.htmldatapath=r"Delivery_Dummy.csv"data = genfromtxt(datapath,delimiter=",")#delimiter: the str used to separate data. 横纵坐标以 ',' 分割,因此给 delimiter 传入 ','。delimiter是区分横纵坐标的# skip_header: the number of lines to skip at the beginning of the file. 这个参数是跳过表头信息的x = data[1:,:-1]y = data[1:,-1]print xprint ymlr = linear_model.LinearRegression()mlr.fit(x, y)print mlrprint "coef:"print mlr.coef_print "intercept"print mlr.intercept_xPredict =  [90,2,0,0,1]yPredict = mlr.predict(xPredict)print "predict:"print yPredict
原创粉丝点击