python:一元线性回归模型案例分析

news2025/4/4 4:21:05

一、案例分析背景

案例:
中国全体居民的消费水平与经济发展数量关系的分析

提出问题
改革开放以来,随着中国经济的快速发展,人民生活水平不断提高,居民的消费水平也在不断增长。研究中国全体居民的消费水平与经济发展的数量关系,对于探寻居民消费增长的规律性,预测居民消费的发展趋势有重要意义。

理论分析
影响居民人均消费水平的因素有多种,但从理论和经验分析,最主要的影响因素应是经济发展水平。从理论上说经济发展水平越高,居民消费越多。

变量选择
被解释变量选择能代表城乡所有居民消费的“全体居民人均年消费水平”(元/人);
解释变量选择表现经济增长水平的“人均国民生产总值(人均GDP)”(元/人)

研究范围
1978年至2007年中国“全体居民人均年消费水平”与“人均国内生产总值(人均GDP)” 的时间序列数据

二、最小二乘估计OLS

在这里插入图片描述

# 读取数据
data = pd.read_excel('data.xlsx')
print(data.head)
# 准备数据
x = data['人均GDP(元)X']
y = data['全体居民消费水平(元)Y']
# 绘制散点图
plt.scatter(x, y)
plt.show()

在这里插入图片描述
从散点图可以看出居民消费水平(Y)和人均GDP (X)大体呈现为线性关系。为分析中国居民消费水平随人均GDP变动的数量规律性,可以建立
简单线性回归模型:
在这里插入图片描述
假定模型中随机扰动满足基本假定,可用OLS法。

简单线性回归的基本假定:
对模型和变量的假定、对随机扰动项u的假定(零均值假定、同方差假定、无自相关假定、随机扰动与解释变量不相关假定、正态性假定

# 添加截距列
X = sm.add_constant(x)
# 拟合模型ols
model = sm.OLS(y, X).fit()
# 输出结果
print(model.summary())
# 提取残差
print(model.resid)

# 残差的标准误差
std_error = model.resid.std() / np.sqrt(28)  # 计算残差标准误差
print("残差标准误差:", std_error)

在这里插入图片描述
由上图OLS模型结果可知

模型方程为:y=224.3149+0.3864x
标准误差分别为:55.641、0.008
t值分别为:4.031、49.908
R方为0.988、F值为2491、样本n为30、自由度df为n-2=28

1、可决系数R方=0.988,说明模型整体上拟合好;
2、系数显著性检验:给定α=0.05,查T分布表,t0.025(28)=2.048,
因为t1=4.031>2.048,所以拒绝H0:β_1=0
因为t2=49.908>2.048,所以拒绝H0:β_1=0
3、用P值检验 α=0.05 >> p=0.0000,说明人均GDP对居民消费水平有显著影响;
4、经济意义检验:估计的解释变量的系数为0·3864,说明人均GDP每增加1元,人均年消费支出平均将增加0·3864
元。这符合经济理论的界定。

点估计

如果2008年人均GDP将比2007年增长16.2%将达到,22001元/人,利用所估计的模型可预测2008年居民可能达到的年消费水平。
在这里插入图片描述

区间估计

平均值区间预测上下限
在这里插入图片描述

平均值区间预测区间预测

描述性统计信息
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、建模

X = data.iloc[:, 2].values.reshape(-1, 1)  # 特征变量
y = data.iloc[:, 1].values  # 目标变量

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
model = LinearRegression()

# 在训练集上训练模型
model.fit(X_train, y_train)
# 在测试集上进行预测
prediction = model.predict(X_test)
print(prediction)

在这里插入图片描述

coef = model.coef_                #获得该回该方程的回归系数与截距
intercept = model.intercept_
print("预测方程回归系数:", coef)
print("预测方程截距:", intercept)
score = model.score(X_test, y_test)    #对得到的模型打分
print('模型的预测分', score)

在这里插入图片描述
模型方程为:y=220.2205+0.3862x

# 对原始值和预测值进行绘图
from matplotlib import pyplot as plt
plt.scatter(X_test, y_test, color='black', label='原始值')
plt.scatter(X_test, prediction, color='red', label='预测值')
plt.show()

在这里插入图片描述

# 绘制残差图
err = y_test - prediction  # 求残差
plt.scatter(X_test, err, color='blue')
plt.axhline(y=0, color='black', linestyle='--')  # 添加水平参考线
plt.show()

在这里插入图片描述

四、模型评估

from sklearn.metrics import r2_score
from sklearn.metrics import mean_squared_error, mean_absolute_error

# R-squared
r_squared = r2_score(y_test, prediction)
print(f"R-squared: {r_squared}")

# 计算MSE
mse = mean_squared_error(y_test, prediction)
print(f"Mean Squared Error (MSE): {mse}")

# 计算MAE
mae = mean_absolute_error(y_test, prediction)
print(f"Mean Absolute Error (MAE): {mae}")

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1394719.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

代码随想录算法训练营第31天 | 理论基础 455.分发饼干 376. 摆动序列 53. 最大子序和

目录 理论基础 455.分发饼干 💡解题思路 💻实现代码 376. 摆动序列 💡解题思路 # 情况一:上下坡中有平坡 # 情况二:数组首尾两端 情况三:单调坡度有平坡 💻实现代码 53. 最大子序…

RTC讲解

RTC(Real Time Clock)实时时钟 RTC实时时钟本质上是一个独立的定时器。RTC模块拥有一组连续计数的32位无符号计数器,在相应软件配置下,可提供时钟日历的功能。修改计数器的值可以重新设置系统当前的时间和日期。 RTC模块和时钟配…

uniapp APP接入Paypal

1. 登录paypal开发者中心, 2. 选择 Apps & Credentials 点击 Create App创建应用,创建后点击编辑按钮,如图: 3. 进入应用详情,勾选Log in with PayPal点击 Advanced Settings 添加return URL等信息并保存。如图&a…

C++(13)——string

上篇文章中介绍了中部分函数的用法,本篇文章将继续对其他的函数进行介绍: 1. substr: string substr (size_t pos 0, size_t len npos) const; 函数的两个参数如上述代码所示,此函数的主要作用是根据一个已有的的对象的起始坐标开始&a…

快手二面:节流和防抖知道吗?

面试官:节流与防抖,说说两者各自适用场景? 回答:面试官,在前端开发中,节流(Throttle)和防抖(Debounce)是两种常用的优化高频率执行JavaScript代码的技术。我将分别阐述它…

ICC2:channel power plan/power switch的添加方法

更多学习内容请关注「拾陆楼」知识星球 拾陆楼知识星球入口 往期文章链接: low power与pg strategy (lib cell pin connect) low power与pg strategy(pg mesh) low power与pg

什么是技术架构?架构和框架之间的区别是什么?怎样去做好架构设计?(一)

什么是技术架构?架构和框架之间的区别是什么?怎样去做好架构设计?(一)。 在软件行业,对于什么是架构,都有很多的争论,每个人都有自己的理解。在不同的书籍上, 不同的作者, 对于架构的定义也不统一, 角度不同, 定义不同。 一、架构是什么 Linux 有架构,MySQL 有架构,J…

关于接口的安全性测试,这方法你学会了吗?

01、接口防刷 1.为什么会有人要刷接口? 牟利:黄牛在 12306 网上抢票再倒卖。 恶意攻击竞争对手:如短信接口被请求一次,会触发几分钱的运营商费用,当量级大了也很可观。 压测:用apache bench 做压力测试…

鸿蒙开发实战-(ArkUI)List组件和Grid组件的使用

在我们常用的手机应用中,经常会见到一些数据列表,如设置页面、通讯录、商品列表等。下图中两个页面都包含列表,“首页”页面中包含两个网格布局,“商城”页面中包含一个商品列表。 上图中的列表中都包含一系列相同宽度的列表项&am…

python使用贪心算法求最大整数问题

对于使用贪心算法的一个比较经典的问题,主要是为了解决最大整数的拼接问题,如果给定一个列表,这个列表中所包括的是一些非负整数,如果对这些整数进行组合,怎样才能组合出一个最大的整数,这里要注意一个问题…

自动派单系统哪家好?实现自动派单对于管理有什么帮助?

随着科技的发展,自动化管理已成为各行各业追求效率与精准的关键。在维修服务领域,自动派单系统的出现为管理员和用户带来了前所未有的便捷。通过自动匹配维修人员、实时通知用户进度等功能,自动派单系统不仅提高了派单的准确性和效率&#xf…

django后台进行加密手机号字段,加密存储,解密显示

需求: 1 :员工在填写用户的手机号时,直接填写,在django后台中输入 2:当员工在后台确认要存储到数据库时,后台将会把手机号进行加密存储,当数据库被黑之后,手机号字段为加密字符 3:员…

Python基础第一篇(Python概念介绍)

文章目录 一、前言:二、第一个Python程序三,理解Python的解释器四,Python解释器的使用五,Python开发环境 一、前言: 欢迎来到我们的Python学习专栏。在这里,我们将一起探索Python这门强大、灵活、易于学习…

微信小程序+前后端开发学习材料2-(视图+基本内容+表单组件)

学习来源 视图 1.swiper 滑块视图容器。其中只可放置swiper-item组件,否则会导致未定义的行为。 显示面板指示点indicator-dots 基础内容 1.icon 图标组件 实例演示 2.progress 进度条。组件属性的长度单位默认为px,咱用rpx。 实例演示 这…

SVO编译

文章目录 软件版本错误编译运行轨迹路径保存运行TUM数据集 附录针对svo slam的/svo/pose_imu转为tum格式代码 软件版本 ubuntu 20 rosnoeticSVO SLAM虚拟机 windows 11 错误 常见的git clone问题可以使用DevSidecar解决,在 加速服务-基本设置-绑定IP 设置为0.0.0…

Cinder对接NFS文件系统实验详解

2、对接NFS(Network File System:网络文件系统)实验 实验前的准备: 完整克隆一台虚拟机作为Cinder的后端存储(IP为192.168.100.40) Cinder节点作为服务端,把Controller作为客户端 Controlle…

git仓库使用说明

Git软件使用 1.先下载git相关软件 下载地址: Git - Downloading Package (git-scm.com) 下载其中一个安装 2.打开gitee网站,注册账号 3.打开个人中心,选择ssh公钥,查看如何生成公钥 4.生成公钥后,添加相应的公钥 …

Docker 安装 PHP

Docker 安装 PHP 安装 PHP 镜像 方法一、docker pull php 查找 Docker Hub 上的 php 镜像: 可以通过 Sort by 查看其他版本的 php,默认是最新版本 php:latest。 此外,我们还可以用 docker search php 命令来查看可用版本: runoobrunoob:…

AI 视频 | HiDream.ai 支持长视频,突破 4 秒限制!

2024 年,AI 视频领域大有可为。那么想卷 AI 视频领域,首先得掌握几个 AI 视频的工具。 之前的文章已经分享了一些常用的 AI 视频工具,比如 Pika、Runway Gen-2、Moonvalley、NeverEnds、DomoAI 以及 Stable Video Diffusion。 这些「往期 A…

关于Access中列的冻结的知识,看这篇就够了

在Microsoft Access中,有一个名为“冻结”的功能,使用户可以在滚动到另一个区域时保持数据表的某个区域可见。 可以使用冻结功能冻结数据表中的表、查询、窗体、视图或存储过程中的一个或多个字段。你冻结的字段将移动到数据表的左侧位置。 如何在Micr…