当前位置: 首页 > news >正文

第100+9步 ChatGPT文献复现:ARIMA预测百日咳

基于WIN10的64位系统演示

一、写在前面

我们来继续换一篇文章来学习学习:

《BMC Public Health》杂志的2022年一篇题目为《ARIMA and ARIMA-ERNN models for prediction of pertussis incidence in mainland China from 2004 to 2021》文章的模拟数据做案例。

这文章做的是用:使用单纯ARIMA模型和ARIMA-ERNN组合模型预测中国大陆百日咳发病率。

文章是用单纯的ARIMA模型作为对照,更新了ARIMA-ERNN模型。本期,我们先来尝试ARIMA模型。

数据不是原始数据哈,是我使用GPT-4根据文章的散点图提取出来近似数据,只弄到了2004-2017年的。

二、闲聊和复现:

1数据基本描述

没啥好说的,就是最最基本的描述统计。

要是有原始数据,直接可以让GPT-4帮分析。

(2)季节拆分

之前介绍过了哈,使用SPSS也可以实现,文章使用的是R语言:

①首先,使用GPT-4生成:

咒语:

直接输出结果:

注意哈,我的数据是模拟数据,且只到2017年12月,所以乍一看跟文章的略有偏差。

GPT给出的代码(Python)供参考:

import pandas as pd
from statsmodels.tsa.seasonal import STL
import matplotlib.pyplot as plt# Load the data from the CSV file
data = pd.read_csv('/mnt/data/数据.csv')# Convert the 'time' column to datetime to facilitate resampling by year
data['time'] = pd.to_datetime(data['time'], format='%b-%y')# Set the time column as index and set frequency to month start
data.set_index('time', inplace=True)
data.index.freq = 'MS'# Prepare the data for STL decomposition by ensuring it has a frequency (monthly data)
# Apply STL decomposition with a seasonal period of 13 (adjusted as needed)
stl = STL(data['incidence'], seasonal=13)
result = stl.fit()# Plotting the results of the STL decomposition
plt.figure(figsize=(12, 8))# Original data plot
plt.subplot(4, 1, 1)
plt.plot(result.observed)
plt.title('Original Data')# Seasonal component plot
plt.subplot(4, 1, 2)
plt.plot(result.seasonal)
plt.title('Seasonal Component')# Trend component plot
plt.subplot(4, 1, 3)
plt.plot(result.trend)
plt.title('Trend Component')# Residual plot
plt.subplot(4, 1, 4)
plt.plot(result.resid)
plt.title('Residual')# Adjust layout and save the figure to a file
plt.tight_layout()
plt.savefig('/mnt/data/STL_Decomposition_Corrected.png')plt.show()

②首先,使用SPSS生成:

步骤我在简单过一下,大家巩固记忆:

看结果:

(2)构建ARIMA模型

文章使用的是SAS建模,那我就用JMP展示(传送门):

看到季节性和总体上升趋势,直接无脑d和D取1,然后p、q、P、Q取值0、1、2、3即可:

结果最优模型如下:

ARIMA(3,1,3)(3,1,2)12:拟合的MAPE为27%,预测的MAPE为18%,比文章的高一些,不过基本处于一个数量级水平。

不用纠结为啥ARIMA参数不同,实验条件都不一样。

三、后话

到目前为止,大家应该熟练掌握单纯ARIMA模型了吧。

四、数据

不提供,自行根据下图提取吧

实在没有GPT-4,那就这个:

https://apps.automeris.io/wpd/index.zh_CN.html

相关文章:

  • 透视AI技术:探索折射技术在去衣应用中的奥秘
  • 百度地图2
  • # SpringBoot 如何让指定的Bean先加载
  • 【贪心算法题记录】53. 最大子数组和
  • 天洑国产工业软件2024R1版本产品发布会顺利举办
  • Dynamics 365:安全的客户参与应用程序
  • HR人才测评,如何做中层管理人员的素质测评?
  • 数据库设计:实体关系图
  • 速盾:怎么查询cdn真实ip?
  • Check Point 安全网关任意文件读取漏洞复现(CVE-2024-24919)
  • spring自动配置
  • 智能台灯系统之PWM调光的优缺点
  • 销量逆袭!敦煌店铺如何靠自养号测评轻松引爆市场?
  • ROS for LabVIEW:实现LabVIEW与ROS的无缝集成
  • 探索 Ollama: 你的本地 AI 助手
  • css系列之关于字体的事
  • css选择器
  • learning koa2.x
  • leetcode388. Longest Absolute File Path
  • scala基础语法(二)
  • spring学习第二天
  • SSH 免密登录
  • yii2中session跨域名的问题
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 那些被忽略的 JavaScript 数组方法细节
  • 区块链将重新定义世界
  • 思否第一天
  • ​什么是bug?bug的源头在哪里?
  • # Panda3d 碰撞检测系统介绍
  • # Swust 12th acm 邀请赛# [ A ] A+B problem [题解]
  • #我与Java虚拟机的故事#连载07:我放弃了对JVM的进一步学习
  • (2)空速传感器
  • (day 12)JavaScript学习笔记(数组3)
  • (k8s中)docker netty OOM问题记录
  • (Note)C++中的继承方式
  • (pojstep1.3.1)1017(构造法模拟)
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (博弈 sg入门)kiki's game -- hdu -- 2147
  • (附源码)springboot学生选课系统 毕业设计 612555
  • (附源码)ssm户外用品商城 毕业设计 112346
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (十)【Jmeter】线程(Threads(Users))之jp@gc - Stepping Thread Group (deprecated)
  • (转)jdk与jre的区别
  • (转)原始图像数据和PDF中的图像数据
  • **登录+JWT+异常处理+拦截器+ThreadLocal-开发思想与代码实现**
  • .[hudsonL@cock.li].mkp勒索病毒数据怎么处理|数据解密恢复
  • .bat批处理出现中文乱码的情况
  • .MyFile@waifu.club.wis.mkp勒索病毒数据怎么处理|数据解密恢复
  • .NET 5.0正式发布,有什么功能特性(翻译)
  • .NET 8 编写 LiteDB vs SQLite 数据库 CRUD 接口性能测试(准备篇)
  • .NET Core SkiaSharp 替代 System.Drawing.Common 的一些用法
  • .NET Core 将实体类转换为 SQL(ORM 映射)
  • .Net 路由处理厉害了
  • .NET 设计一套高性能的弱事件机制
  • //解决validator验证插件多个name相同只验证第一的问题