python-实现多元回归及预测

article/2025/9/20 6:11:39

题目

1.实现一元(或多元)线性回归
a. 根据对客观现象的定性认识初步判断现象之间的相关性(略)
b. 绘制散点图
c. 进行回归分析,拟合出回归模型
d. 对回归模型进行检验—计算相关系数、异方差检验
e. 进行回归预测

代码

# -*- coding=utf-8 -*-
# name: nan chen
# date: 2021/5/6 15:05import matplotlib.pyplot as plt
import pandas as pd
import numpy as np# 解决中文显示问题
plt.rcParams['font.sans-serif'] = ['KaiTi']  # 指定默认字体
plt.rcParams['axes.unicode_minus'] = False  # 解决保存图像是负号'-'显示为方块的问题# 读取数据 进行数据预处理
def read_check_data():data_before = pd.read_csv(r"D:\Downloads\GDP-DATA.csv", encoding='gbk')# 输出每个列丢失值total = data_before.isnull().sum().sort_values(ascending=False)print(total)data = data_before.drop(data_before[data_before['construction'].isnull()].index)x_first = np.array(data['industrial'])x_second = np.array(data['construction'])x_third = np.array(data['transportation'])x = range(1, len(x_first) + 1)y_income = np.array(data['gdp'])# 可视化展示数据plt.title("1992年至今季度国内生产总值与工业、建筑业、交通运输业增加值(万亿元)")plt.plot(x, x_first, '.', label='工业增加值')plt.plot(x, x_second, '.', label='建筑业增加值')plt.plot(x, x_third, '.', label='交通运输业增加值')plt.plot(x, y_income, '.', label='国内生产总值')plt.legend()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)Y = y_income.TX = 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)print("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_third# 可视化plt.figure()plt.title("国内生产总值与预测值对比图")plt.plot(x, y_income, '*', label='国内生产总值(万亿元)')plt.plot(x, y_predict, '.', label='预测值')plt.legend()return 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)R2 = 1 - ((len(y_real) - 1) / (len(y_real) - 4 - 1)) * (1 - R1 ** 2)print("修正自由度的可决系数R^2=", R2)# 计算标准估计误差S = (np.sum((y_real - y_predict) ** 2) / (len(y_real) - 4)) ** 0.5print("标准估计误差为S = ", S)u2 = (y_real - y_predict) ** 2plt.figure()plt.title("u^2-x散点图")plt.plot(u2, '.')plt.show()S = (np.sum((y_real - y_predict) ** 2) / (len(y_predict) - 4)) ** 0.5C = np.linalg.inv(np.matmul(X.T, X))T = []for i in range(len(B)):T.append(B[i] / (S * C[i][i] ** 0.5))print(T)T = np.array(T)plt.figure()plt.axhline(y=1.9818, ls="-", c="green")plt.plot(np.abs(T), '.')plt.show()print(y_predict[-1])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)

结果与分析

数据集分析:

本次实验从国家统计局找到了1992年至今每一季度的国内生产总值与与工业增加值、建筑业增加值、交通运输业增加值的数据。将国内生产总值作为被解释变量,工业增加值、建筑业增加值、交通运输业增加值作为解释变量。![在这里插入图片描述](https://img-blog.csdnimg.cn/20210520145858191.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Mzg5MDQxNQ==,size_16,color_FFFFFF,t_70)

从图中可以看出,国内生产总值与工业增加值、建筑业增加值、交通运输业增加值呈现出较为一致的联动变化关系,均呈现向上增长的趋势。根据经济规律与现实经验,推测国内生产总值与工业增加值、建筑业增加值、交通运输业增加值存在线性相关关系。将用回归方程进行计算的国内生产总值预测值与国内生产总值的实际值进行对比,虽然有一些偏差,但是大题的走向是一致的,并且偏差不大。

多元线性回归

在这里插入图片描述
在这里插入图片描述

多元线性回归检验:

拟合优度检验

通过计算可决系数与修正自由度的可决系数进行多元线性回归方程的拟合优度检验
在这里插入图片描述

可以看出被解释变量国内生产总值与解释变量工业增加值、建筑业增加值、交通运输业增加值应该存在高度相关性,且该回归模型的拟合度较高。

回归系数显著性检验

根据公式,求解出回归系数bj显著性检验的统计量为
在这里插入图片描述

查t分布表得t_(∝/2) (116-3-1)=1.9818
在这里插入图片描述

四个回归方程系数均大于t_(∝/2) (116-3-1),所以回归方程的系数均通过显著性检验。

μ^2-x 图

在这里插入图片描述

可以从散点图看出,u^2的值在0~10之间,大致呈现为一条斜率为0的直线,不具有异方差性。

根据公式求解出标准估计误差为:
在这里插入图片描述

预测

经过检验后,通过多元回归模型进行预测,当 x1=8.09711 x2=1.20171 x3=1.00671时 求得预测值国民生产总值为22.568万亿元,实际值为24.93101万亿元,可见还是有一定的误差。

3.3实验总结

本次实验进行了多元线性回归的分析与预测检验,由于上次实验中已经进行了一元线性回归的编码,本次实验就想尝试一下多元线性回归。在本次实验中寻找数据变成了一大难题,由于需要解释变量与被解释变量具有一定的相关性,找了许多数据都不具有太好的效果,最后在国家统计局找到了国民生产总值的数据,进行绘图分析之后,发现国民生产总值与工业、建筑业、交通业增长值可能具有线性相关关系,便进行了回归分析。在得到回归方程后计算了标准估计误差,进行了拟合优度检验与回归系数检验,通过检验后进行预测。虽然解释变量与被解释变量已经呈现高度相关性,但预测出来的结果仍然存在一定的偏差,但总的来说还是有不错的效果。


http://chatgpt.dhexx.cn/article/eEa6C5FF.shtml

相关文章

R语言入门——多元回归交叉验证的实现

目录 引言1、主要函数编写1.1 随机数据的产生1.2 CV.lm的编写1.2 CV.lm的调用 2、数值模拟2.1 CV模拟2.2 MCMC模拟 3、总结 引言 随着模型复杂度的提高和数据量的提升,预测精度也会提高,但是使用传统的方法评估模型的精度,模型的泛化能力也会…

多元回归模型与热力图绘制

代码解释 本文中首先通过不完整、不规则的数据建立多元非线性回归模型,再通过建立的回归模型生成规范的、完整的数据,进而绘制平面热力图,并生成规范化数据构成的表格文件。 本文通过MATLAB2020a编写。 代码 clc clear%% 多元非线性回归…

数学建模学习1.22——多元回归分析

清风老师课程 目录 一、回归分析简介 二、数据分类与数据处理方法 三、线性回归 四、回归系数的解释与模型分类 ​五、回归实例 六、错误论文分析 七、清风老师的毕业论文讲解 八、异方差,多重共线性和逐步回归 一、回归分析简介 二、数据分类与数据处理方法…

数学建模 —— 多元回归分析

文章目录 前言一、回归分析的分类 二、分析流程三、注意事项 前言 回归分析是数据分析中最基础也是最重要的分析工具,绝大多数的数据分析问题,都可以使用回归的思想来解决。回归分析的任务就是,通过研究自变量X和因变量Y的相关关系&#xff…

多元回归中的交互项

当某个解释变量会影响另外一个解释变量对响应变量的影响途径时,我们需要做出调整,在模型中增加一个交互项,可以是两个解释变量的乘积。 例子: 如回归模型: 由于female(性别)影响着marrie…

多元回归预测

多元回归就像线性回归(一个变量预测一个值)一样,但是具有多个独立值,这意味着我们试图基于两个或多个变量来预测一个值。 比如在线性回归中我们可以根据发动机排量的大小预测汽车的二氧化碳排放量,但是通过多元回归&a…

EXCEL多元回归分析

一、多元回归分析定义: 多元回归分析(Multiple Regression Analysis)是指在相关变量中将一个变量视为因变量,其他一个或多个变量视为自变量,建立多个变量之间线性或非线性数学模型数量关系式并利用样本数据进行分析的统计分析方法。 二、不多…

调用excel加载项实现多元回归方程求解

Ⅰ.调用excel加载项 Ⅱ.实现多元回归方程求解 Ⅲ.结果展示 Ⅳ.结果分析 Intercept表示截距(这里特指函数图形与Y轴交点到原点的距离),即多元回归方程的常数项,值为522.81112;X Variable 1表示自变量x1,参数估计值为0.6474627&…

一元回归及多元回归模型

目录 一、前言 二、案例分析求解 2.1问题一 2.1.1分析 2.1.2Matlab求解一元线性回归模型 2.1.3结果 2.2问题二 ​ 2.2.1分析 2.2.2Matlab求解 2.2.3结果 三、回归分析 一、前言 对于线性回归方程模型,在数据点拟合中,常常利用多项式进行拟…

数学建模—多元回归分析

EverydayOneCat 木星全貌🪐 知识点 1.笔记 在了接受域中,接受X为0的假设,X对外没有比较显著的线性关系。 2.知识点补充 多元回归模型:含两个以上解释变量的回归模型 多元线性回归模型的假设: 解释变量Xi 是确定性变量,不是随机变量解释变量之间互不相关,即无多重共…

数据回归方法(二)—— 多元回归

1.多元线性回归 实例引入:假如我们现在要去预测本地房子的价格,那么我们该怎么办?影响房价的因素有很多:房子面积、方位、地理位置、本地居民收入、房龄等等,很自然的办法就是将这些主要因素纳入,建立一个…

机器学习(四):多元回归

多元回归就像线性回归一样,但是具有多个独立值,这意味着我们试图基于两个或多个变量来预测一个值。 文章目录 一、数据集二、案例实现 一、数据集 请看下面的数据集,其中包含了一些有关汽车的信息。 我们可以根据发动机排量的大小预测汽车…

腾讯qlv格式转换mp4为何转换后只有音频

1、搜索 小白兔视频格式转换 2、转好后,就可以看到视频已经是MP4格式了。

qlv格式转换器分流失败 原因及解决方法

1、搜索: 小白兔视频格式在线转换 2、上传你的视频(腾讯qlv,爱奇艺qsv、优酷kux)都可以。 3、转换好后,我们把转换的视频下载到电脑里,就可以看到视频已经是MP4格式了。

qlv 格式转换为MP4

2020 年5月遇见新的需求,需要从腾讯视频下载视频,传入到网站后台,无奈在线播放只能播放MP4,所以需要转换格式。 转换步骤如下: 1.下载腾讯视频 本贴即可看到 2. 找到缓存目录 3. cmd 切换到此目录 4. 然后输入 co…

怎么把qlv格式转成mp4

1、搜索: 小白兔视频格式在线转换官网 2、上传你的视频(腾讯qlv,爱奇艺qsv、优酷kux)都可以。 3、转换好后,我们把转换的视频下载到电脑里,就可以看到视频已经是MP4格式了。

镇魂街qlv格式怎么转换成mp4格式

动画片是我们从小看到大的东西,不过我们大人看的动画片现在都叫动漫了。其实还是动画片,怎么叫都无所谓。小编就非常喜欢看这些动漫。不管是国漫还是日漫又或者是欧漫。小编都多多少少的瞅过两眼。而且现在许多播放器也都知道了这一类的观众比较多&#…

HTML中支持qlv文件格式吗,qlv格式怎么播放,格式工厂不支持qlv

qlv是什么格式文件?qlv是腾讯视频的一种加密格式,大部分转码工具是无法转换的,不过不用担心还是有方法可以将qlv文件转换成其它文件格式的,下面小编就详细的为大家介绍电脑系统中将qlv格式转换成mp4的方法。 qlv格式转换成mp4步骤…

腾讯视频QLV格式转换为MP4格式

腾讯视频是比较热门的视频播放器,用腾讯下载过视频的用户应该都会发现它下载的视频格式默认为QLV格式,这算是一种专属象征。QLV格式视频只有腾讯视频才能播放,其他视频播放器是没法播放的,所以如果没有腾讯视频就没法观看QLV格式视频,这样的话问题就来了,要怎么办呢? QL…