答辩结束了,把论文里有用的东西摘出来。

多元线性回归

多元线性回归模型:

其中 y 为要预测的变量,x 为影响 y 值的变量,b 为回归系数,计算方式为:

计算结果为一个矩阵,分别对应b0,b1,b2,b3。

实例

对猪肉价格进行预测,即猪肉价格作为 y,选择猪肉价格指数,生猪屠宰量,猪粮比作为相关变量,分别为x1,x2,x3。

数据收集


收集了从2020年5月至2022年2月的相关数据,其中price为猪肉价格,index为猪肉价格指数,作x1,kill为生猪屠宰量,作x2,rate为猪粮比,作x3,录入 excel 中,保存为 csv 文件。

代码

import pandas as pd   # 读数据库
import numpy as np    # 矩阵计算库# 数据处理
def read_check_data():data_before = pd.read_csv(r"E:\python\django_p2\PIG_DATA.csv", encoding='gbk')total = data_before.isnull().sum().sort_values(ascending=False)print("total")print(total)# 表中若有空值,则舍弃data = data_before.drop(data_before[data_before['kill'].isnull()].index)x_first = np.array(data['index'])x_second = np.array(data['kill'])x_third = np.array(data['rate'])y_income = np.array(data['price'])return x_first, x_second, x_third, y_income# 多元线性回归
def multiple_regression(x_first, x_second, x_third, y_income):x = range(1, len(x_first) + 1)print("矩阵:",list(zip(np.ones(len(y_income)), x_first, x_second, x_third)))Y = y_income.T                      # 矩阵X = np.array([list(x) for x in zip(np.ones(len(y_income)), x_first, x_second, x_third)])B = np.matmul(np.matmul(np.linalg.inv(np.matmul(X.T, X)), X.T), Y)   # (X.T * X)-1 * X.T * Yprint("B = ", B)# 多元线性回归模型print("回归方程为 y = %f + %fx1 + %fx2 + %fx3" % (B[0], B[1], B[2], B[3]))y_predict = B[0] + B[1] * x_first + B[2] * x_second + B[3] * x_thirdreturn X, B, y_predict

检验

通过计算可决系数进行多元线性回归方程的拟合优度检验,可决系数是用来反映回归模式可靠程度的一个统计指标,可决系数越大,说明模型的预测值和观测值越接近,模型的拟合优度越好。计算方法如下:


# 检验
def check(y_real, y_predict, X, B):y1 = np.sum((y_predict - np.mean(y_real)) ** 2)y2 = np.sum((y_real - np.mean(y_real)) ** 2)R1 = y1 / y2print("可决系数R^2=", R1)

结果

if __name__ == '__main__':x_first, x_second, x_third, y_income = read_check_data()X, B, y_predict = multiple_regression(x_first, x_second, x_third, y_income)check(y_income, y_predict, X, B)

运行结果如下:

最终计算的可决系数约为0.93,说明猪肉价格与价格指数、屠宰量、猪粮比应该存在较高的相关性,且该回归模型的拟合度较高。

通过 excel 计算观察

发现有4组数据预测结果与实际结果相差较大,除此之外,平均误差值为1.13。
结果还可以,如果增加更多的相关变量和数据,误差应该会更小,但数据太太太太太难找了!!!!

本次数据来源

国家统计局
中华人民共和国农业农村部
全国重点农产品市场信息平台
全国农产品批发市场价格信息系统

Python预测——多元线性回归相关推荐

  1. Python实现多元线性回归

    Python实现多元线性回归 线性回归介绍 线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法,运用十分广泛.其表达形式为y = w'x+e,e为误差服从 ...

  2. Python 实战多元线性回归模型,附带原理+代码

    作者 | 萝卜 来源 | 早起Python( ID:zaoqi-python ) 「多元线性回归模型」非常常见,是大多数人入门机器学习的第一个案例,尽管如此,里面还是有许多值得学习和注意的地方.其中多 ...

  3. 原理 + 代码 | Python 实现多元线性回归模型 (建模 + 优化,附源数据)

    前言 多元线性回归模型非常常见,是大多数人入门机器学习的第一个案例,尽管如此,里面还是有许多值得学习和注意的地方.其中多元共线性这个问题将贯穿所有的机器学习模型,所以本文会将原理知识穿插于代码段中,争 ...

  4. 【项目实战】Python实现多元线性回归模型(statsmodels OLS算法)项目实战

    说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取. 1.项目背景 回归问题是一类预测连续值的问题,而能满足这样要求的数学模型称作回 ...

  5. python实现多元线性回归,以2022数模国赛为例(实战必看,附源代码)

    回归分析是确定变量间依赖关系的一种统计分析方法,属于监督学习方法.由变量的不同可以分为一元线性回归和多元线性回归 接下来以多元线性回归为例介绍 当待确定的变量超过一个时,就需要使用多元线性回归算法,下 ...

  6. Python机器学习——多元线性回归案例(二)

    引入披萨问题 回顾一下自己的生活经验,匹萨的价格其实还会受到其他因素的影响. 比如,匹萨的价格还与辅料有关.让我们再为模型增加一个解释变量.用一 元线性回归己经无法解决了,我们可以用更具一般性的模型来 ...

  7. 利用python实现多元线性回归

    前言 本文介绍了如何用python进行回归分析 一.简单线性回归 直线回归分析是研究两变量(自变量和因变量)之间的依存关系及其关系的具体方程的形式.分析中所形成的这种关系式称为回归模型,其中以一条直线 ...

  8. 利用python实现多元线性回归确定喷墨大师的命中方向

    喷墨大师是玩吧app的一款小游戏,两只章鱼相互用墨汁进行投射对战,利用风力.角度.力度.距离四个因素向敌方进行投射,命中后会对敌方造成一定的血量损失,直到地方血量为0即可获得胜利 一.游戏介绍,变量设 ...

  9. python多元线性回归模型案例_Python 实战多元线性回归模型,附带原理+代码

    原标题:Python 实战多元线性回归模型,附带原理+代码 作者 | 萝卜 来源 | 早起Python( ID:zaoqi-python ) 「多元线性回归模型」非常常见,是大多数人入门机器学习的第一 ...

最新文章

  1. Redis基础教程第7节 - Set
  2. MII 功能简介(论坛整理)
  3. boost::fusion::as_set用法的测试程序
  4. 对select的结果进行count统计
  5. 用java查询excel表格_如何把java查询出的内容导入到excel表格
  6. java fileinputstream.read(byte[])_Java分享笔记:FileInputStream流的 read()方法 和 read(byte[] b)方法...
  7. Mysql 零距离-入门(五)操作数据表
  8. PAT 1017 Queueing at Bank[一般]
  9. 女子多年未住别墅成剧组拍摄地,网友:看个剧才想起自己还有栋别墅
  10. AI 开发者如何摆脱只有“人工”没有“智能?
  11. 基于matlab的谱估计,基于MATLAB的功率谱估计实验.doc
  12. ref: 九大数据仓库方案特点比较
  13. 华为荣耀7i刷linux,华为荣耀7i卡刷教程_荣耀7i用第三方recovery刷机教程
  14. 批量导出pdf 和导出图片
  15. 16、小程序OCR字体识别
  16. 用 dfuse `transaction_lifecycle` 端点跟踪任何交易,包括延期交易
  17. pdf怎么删除其中一页?
  18. 计算机任务计划程序已损坏,Win7-该任务映像已损坏或已篡改。(异常来自HRESULT:0x80041321)解决办法...
  19. PAT - 浙江大学计算机程序设计能力考试简介
  20. GO语言特殊常量之iota

热门文章

  1. 房屋按揭贷款还款系数 20070318
  2. Spring Boot 实现万能文件在线预览-开源学习一
  3. CGAL笔记之单元格复合体和多面体篇——多面体的 3D Minkowski 和
  4. 如何证明服从卡方分布_证明残差平方和除随机项方差服从卡方分布
  5. java回归中的残差平方和的均值
  6. 面试前来一发系列之 —— 计算机网络基础复习(一)
  7. linux shell脚本 -f -z啥意思 侵删
  8. php日文文件名 liunx,linux中文文件名不能访问,求教,在线等。
  9. Android软键盘挡住输入框
  10. 走出误区戳穿XP的经典谣言