第四章 -课后练习7:一元线性回归 EXCEl实验与Python结合实现

news/2024/9/29 9:06:25/

1、首先使用excel录入数据,绘制散点图:

时序年份销售量(件)
12012423.50
22013433.38
32014443.32
42015450.84
52016460.14
62017467.59
72018480.16
82019483.73
92020488.49
102021494.28
112022506.551

由散点图得出销售量数据大致符合线性模型。为此使用最小二乘法对模型进行拟合:

2、接下来使用excel数据分析得出结果如下:

3、模型检验:

由图得出调整的

F检验P值接近于0,说明拒绝原假设,拟合效果好。

计算得出标准误差等于2.964。

4、预测:

2022年,t=11,计算得出预测值为​

即2022年销售量预测值为506.53。

​5、Python代码:

5.1导入数据

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt# 读取数据
data = pd.read_excel('D:/P113-7.xlsx',sheet_name='data')
data.head()

5.2设置OLS求解参数 

# 设置中文字体
plt.rcParams['font.sans-serif'] = ['SimHei']  # 使用黑体
plt.rcParams['axes.unicode_minus'] = False  # 解决负号显示问题#忽略警告
import warnings
# 忽略所有警告
warnings.filterwarnings('ignore')
# 假设 't' 是自变量,'Y' 是因变量
t = np.array(data['时序'])
Y = np.array(data['销售量(件)'])
print(t)
print('________________')
print(Y)
#%%
import scipy.stats as stats
r = stats.pearsonr(t,Y)[0]#相关分析import statsmodels.api as smt = sm.add_constant(X)#添加常数项
model = sm.OLS(Y,t)
result = model.fit()
print(result.summary())

5.3求解拟合方程 

# 获取回归系数
intercept = result.params[0]
slope = result.params[1]# 输出线性回归方程
print(f'线性回归方程: Y = {intercept:.4f} + {slope:.4f} * t')

Y = 418.5347 + 8.0015 * t

5.4绘制拟合直线 

# 绘制拟合图
plt.scatter(t[:, 1], Y, color='blue', label='实际值')  # X[:, 1] to exclude the constant term
plt.plot(t[:, 1], result.predict(t), color='red', linewidth=2, label='拟合线')
plt.xlabel('时序')
plt.ylabel('销售量(件)')
plt.legend()
plt.show()

5.5拟合直线预测 

#2022年预测值,t=11
# 预测2022年的销售量,t=11
t = 11
X_new = np.array([[1, t]])  # 添加常数项
Y_pred_2022 = result.predict(X_new)print(f'2022年预测值 (t=11): {Y_pred_2022[0]:.4f}')

2022年预测值(t=11):506.5513


http://www.ppmy.cn/news/1531860.html

相关文章

Java中的数据合并与拆分:使用Stream API实现数据的灵活处理

Java中的数据合并与拆分:使用Stream API实现数据的灵活处理 大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在Java开发中,数据处理是最基础的操作之一,而在面对…

大语言模型之LlaMA系列- LlaMA 2及LLaMA2_chat(上)

LlaMA 2是一个经过预训练与微调的基于自回归的transformer的LLMs,参数从7B至70B。同期推出的Llama 2-Chat是Llama 2专门为对话领域微调的模型。 在许多开放的基准测试中Llama 2-Chat优于其他开源的聊天模型,此外Llama 2-Chat还做了可用性与安全性评估。 …

MFC设置特定控件字体大小和背景颜色

MFC设置特定控件字体大小和背景颜色 初始化函数里 m_editFont.CreatePointFont(580 , _T("宋体"));m_ctrlEdit.SetFont(&m_editFont);重写消息 HBRUSH CMFCTESTDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) {HBRUSH hbr CDialogEx::OnCtlColor(pDC,…

Kafka技术详解[3]: 生产与消费数据

目录 Kafka 生产与消费数据详解 生产数据 命令行操作 工具操作 Java API 消费数据 命令行操作 Java API Kafka 生产与消费数据详解 生产数据 一旦消息主题创建完成,就可以通过Kafka客户端向Kafka服务器的主题中发送消息。Kafka生产者客户端是一套API接口&#x…

睡眠:生命的隐形守护者

在快节奏的现代生活中,睡眠,这一看似平凡的日常行为,实则是养生保健不可或缺的基石。我们常常忽视它,直到疲惫不堪、健康亮起红灯,才恍然大悟:优质睡眠,是身体自我修复与能量再生的黄金时期。 睡…

redis 中IO多路复用与Epoll函数

一 IO多路复用 1.1 IO多路复用作用 1.2 同步异步阻塞非阻塞

Arthas sc(查看JVM已加载的类信息 )

文章目录 二、命令列表2.2 class/classloader相关命令2.2.5 sc(查看JVM已加载的类信息 )举例1:模糊搜索,xx包下所有的类举例2:打印类的详细信息举例3:打印出类的Field信息 二、命令列表 2.2 class/classlo…

unixODBC编程(四)插入数据

ODBC插入数据也有一定的步骤,我们先来看一下。 1. 分配一个语句句柄,使用SQLAllocHandle()函数,句柄类型为SQL_HANDLE_STMT。 2. 准备语句,使用SQLPrepare()函数。 3. 为绑定的变量赋值。 4. 绑定输入变量,使用SQL…