第100+1步 ChatGPT文献复现:ARIMAX预测肺结核 vol. 1

news2024/11/18 23:34:04

基于WIN10的64位系统演示

一、写在前面

各位大佬,好久不见。

《100步入门机器学习》肝完了,不懂大家学了多少了,默认你们都学完了吧。

今年我们换一个玩法(灌水):一系列更接近实战的教程,复现一些经典的文献。

姑且叫做《100+X步入门机器学习》!

首先,从ARIMAX模型开始,龙年第一篇:

《PLoS One》杂志的2023年一篇题目为《A comparative study of three models to analyze the impact of air pollutants on the number of pulmonary tuberculosis cases in Urumqi, Xinjiang》文章的公开数据做案例。

这文章做的是用:空气污染物对新疆乌鲁木齐肺结核病例数影响的比较研究。

为了让大家一步一个脚印(多水教程),我就一次只弄1-2个结果咯。

二、学习和复现:结果一描述性分析

首先,结果一长这样:

1咒语

[复制结果2的图片]

请问这个论文结果使用了什么方法?

并给出python代码,同时运行这个代码,输出最终的输出图片

原始数据见附件“{pone.0277314.s006.xlsx}”,其中只需要使用前两列进行分析:“Time”以及“PTB cases”。

你可以一步一步来,进行完一步操作以后,保存结果,然后问我是否继续分析。我说继续分析,你才继续。

请用中回答。

输入咒语,跟着GPT回复:

这张论文结果图显示了时间序列分解,这通常涉及到将时间序列数据分解成趋势、季节性和随机成分。从图中可以看出,有四个子图分别代表原始的时间序列(PTB cases),季节性指数(Seasonal Index),趋势(Trend),以及周期性成分(Cycle)。

在Python中,可以使用statsmodels库的季节性分解功能进行这种分析。首先,我们需要加载数据并使用statsmodels中的seasonal_decompose函数。我将开始这个过程,首先加载数据,然后进行初步的时间序列分解。如果结果正确,我们可以继续进一步的分析步骤。

现在我会加载数据,并展示如何使用Python进行季节性分解。

(2)GPT也给出对应的代码:

import pandas as pd
from statsmodels.tsa.seasonal import seasonal_decompose
import matplotlib.pyplot as plt
# 加载数据,这次使用正确的列名
file_path = 'pone.0277314.s006.xlsx'
data_check = pd.read_excel(file_path)  # Load data to check the column names
corrected_column = data_check.columns[1]  # This is the actual column name with the invisible character

# Now loading the data with the correct column name
data = pd.read_excel(file_path, usecols=['Time', corrected_column])

# Convert 'Time' to datetime and set as the index for the data
data['Time'] = pd.to_datetime(data['Time'])
data.set_index('Time', inplace=True)

# Perform the seasonal decomposition
decomposition = seasonal_decompose(data[corrected_column], model='additive', period=12)

plt.rc('figure', figsize=(10, 8))  # Adjusting the size may help with layout issues

# Plot the decomposition results
decomposition.plot()

# Use tight layout to automatically adjust subplot parameters
plt.tight_layout()

plt.subplots_adjust(left=0.05)  # 减少左侧边距

# Save the decomposition plot to a file
fig = plt.gcf()  # Get the current figure object
adjusted_img_path = '/mnt/data/adjusted_decomposed_timeseries.png'
fig.savefig(adjusted_img_path, bbox_inches='tight')  # Save the figure with tight bounding box

给出代码的基本步骤和功能

1、使用pandas库加载Excel文件,并只选择了'Time'和'PTB cases'这两列。

2、将'Time'列转换为datetime对象,并设置为数据框的索引。

3、使用seasonal_decompose函数从statsmodels库中进行时间序列的季节性分解。

4、设置图表大小,绘制并展示分解结果。

5、保存结果图为PNG格式。

(3)试着在本地Python运行

在Spyder中输入:

可以运行,但是吧,左边空了一大片。

此时,你可以继续求助GPT,注意看我的咒语:

GPT给出优化方案:

图片左侧的空白区域可能是由于日期格式不正确或者是matplotlib在绘图时默认的布局设置导致的。解决这个问题的方法可以有以下几个:

检查和修正日期格式:确保时间序列是正确的datetime对象,并且是以正确的格式显示在x轴上。

使用紧凑布局:plt.tight_layout()可以自动调整子图参数,让它们更好地适应图表区域。

调整子图间距:使用plt.subplots_adjust()可以手动调整子图的布局设置。

修改图表尺寸:调整图表的尺寸以适应子图的显示。

优化x轴标签:如果x轴的刻度标签太长或者不必要,可以缩短它们或者完全移除。

这回答提醒了我:

因为原始数据的日期是中文格式:2014年1月,所以代码不支持。

我只需要把日期格式改为:2014-1,即可:

不过继续完善横坐标,也就是横坐标从2014-01开始,每隔三个月展示一个日期,2014-01、2014-03、一直到2018-12,这里就不演示了。

(4)我有一个大胆的想法

请使用英文帮我就这个图片写一段SCI论文的result,要求精简:

Results

Temporal Decomposition of PTB Cases in Urumqi

We employed time series decomposition to assess the patterns of PTB (Pulmonary Tuberculosis) cases in Urumqi from January 2014 to December 2018. The decomposition model allowed us to dissect the time series into four distinct components: observed, seasonal, trend, and residual.

The observed data (Fig. 2, top panel) indicates the number of PTB cases reported each month over the five-year period. Fluctuations in the data illustrate the dynamic nature of PTB incidence over time. The seasonal component (Fig. 2, second panel) reveals a consistent pattern repeating yearly, suggesting a regular influence of seasonal factors on PTB cases.

The trend component (Fig. 2, third panel) demonstrates a gradual decrease in the number of PTB cases over the years, signaling a promising downtrend in incidence. This decline may reflect the effectiveness of ongoing public health interventions and improvements in local healthcare practices.

Lastly, the cyclical component (Fig. 2, bottom panel), which captures fluctuations adjusted for seasonality and trend, suggests additional, irregular forces at play that periodically affect PTB case numbers. These could correspond to sporadic outbreaks or changes in reporting practices.

Our analysis underscores the multifaceted nature of PTB case dynamics in Urumqi, shaped by seasonal patterns, long-term trends, and irregular episodic factors. The discernible seasonal patterns highlight potential opportunities for targeted seasonal interventions, while the overall downward trend is indicative of successful long-term disease control measures in the region.

不错,写得很详细,下次不要描述的那么详细:

In the time series decomposition of PTB cases in Urumqi from January 2014 to December 2018, we observed a clear seasonal pattern and a long-term downward trend in cases. The decomposition highlights consistent seasonal fluctuations and suggests the effectiveness of health interventions over the studied period.

能不能用,大家自行对照原文,认真对照学习(看看怎么白嫖合适)。

三、个人感悟

利用GPT-4的多模态能力,不仅可以浏览和理解学术文献,还能直接提取其中的编程代码,并且在本地平台上即时运行这些代码,这极大地提高了研究(白嫖)和学习(偷懒)的效率。

四、数据

链接:https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0277314

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

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

相关文章

js导出的excel文件无法打开/打开乱码,excel无法打开xxx.xlsx因为文件格式或文件扩展无效

excel无法打开xxx.xlsx因为文件格式或文件扩展无效 使用 a 标签导出这里就不细说了,直接说上述问题解决方案 在调用导出接口的时候加上两个参数 responseType: “blob” responseEncoding: “utf8” export function test(data) {return util({url: /test,method: …

javaScript | 练习:给出一个存储学生信息的对象数组,实现对每个对象的遍历,先输出每个对象的属性名,再输出对应的属性值

考察的知识点包括: JavaScript 数组的遍历。JavaScript 对象的遍历,特别是使用 for...in 循环。如何使用方括号[]和点号 . 访问对象的属性和方法。控制台输出(console.log)的使用。 控制台输出结果如下: 参考代码如下…

C++17中auto作为非类型模板参数

非类型模板参数是具有固定类型的模板参数,用作作为模板参数传入的constexpr值的占位符。非类型模板参数可以是以下类型: (1).整型; (2).枚举类型; (3).std::nullptr_t; (4).指向对象的指针或引…

jpg图片格式转换怎么做?教你一种图片格式转换方法

Jpg格式图片怎么快速转换?常见的图片格式有jpg、png等格式,当我们想要将常用的jpg格式图片转换成其他格式的时候,要怎么办呢?很简单通过使用图片转换器(https://www.yasuotu.com/geshi),无需下载…

简单接入电商API接口|轻松实现实时采集淘宝、抖音、快手、1688商品,挖掘潜力款

今天给大家带来一款非常实用的电商API接口,这款数据采集接口支持淘宝采集、抖音采集、快手采集、1688采集以及潜力款分析,功能强大,助您在电商领域更上一层楼。 首先,我们来了解一下淘宝采集功能。作为国内最大的电商平台&#xf…

系统分析师论文总结【持续更新】

2024年3月4日,新的软考规则出来,高项改为一年一次,架构师改为一年两次。 下半年考试安排,如下图(来源官网) 收集整理系统分析师论文,方便备查。 一、2010年论文 1、论软件维护及软件课维护性…

C++ 哈希

目录 1. 哈希概念 2. 哈希冲突 3. 哈希函数 4. 哈希冲突解决 4.1 闭散列 4.2 开散列 4.3 对于哈希表的补充 5. 开散列与闭散列比较 6. 哈希表的模拟实现以及unorder_set和unorder_map的封装 1. 哈希概念 顺序结构以及平衡树中,元素关键码与其存储位置之间…

代码随想录刷题笔记 DAY 43 | 完全背包基础 | 零钱兑换 II No.518 | 组合总和 IV No.377

文章目录 Day 4401. 完全背包基础<1> 完全背包的区别<2> 案例 02. 零钱兑换 II&#xff08;No. 518&#xff09;<1> 题目<2> 笔记<3> 代码 03. 组合总和 IV&#xff08;No. 377&#xff09;<1> 题目<2> 笔记<3> 代码 Day 44 …

three.js 相机跟着玩家走(第三人称漫游)

<template><div><el-container><el-main><div class"box-card-left"><div id"threejs"></div></div></el-main></el-container></div> </template>s <script> // 引入轨道…

实在TARS大模型斩获多项重磅大奖,AI领域实力认可

近日&#xff0c;实在智能TARS&#xff08;塔斯&#xff09;大模型凭借在多个垂直行业场景的优秀落地应用案例&#xff0c;以及AIGC领域的深耕和技术积累&#xff0c;荣获多项重磅大奖。 TARS大模型是是实在智能基于在自然语言处理&#xff08;NLP&#xff09;领域深厚的技术积…

高等数学常用公式

高等数学常用公式 文章目录 内容大纲 内容 大纲 感谢观看 期待关注 有问题的小伙伴请在下方留言&#xff0c;喜欢就点个赞吧

区块链基础知识(下):共识机制 附带图解、超详细教学!看不懂你打死我

苏泽 大家好 这里是苏泽 一个钟爱区块链技术的后端开发者 本篇专栏 ←持续记录本人自学两年走过无数弯路的智能合约学习笔记和经验总结 如果喜欢拜托三连支持~ 专栏的前面几篇详细了介绍了区块链的核心基础知识 有兴趣学习的小伙伴可以看看→http://t.csdnimg.cn/CstOy 关于区…

RK3588-PCIe

1. 简介 PCIe&#xff08;Peripheral Component Interconnect Express&#xff09;是一种用于连接主板和外部设备的高速串行接口标准。它是 PCI 技术的后继者&#xff0c;旨在提供更高的带宽和更好的性能。 高速传输&#xff1a; PCIe接口提供了高速的数据传输通道&#xff0…

【wine】WINEDEBUG 分析mame模拟器不能加载roms下面的游戏 可以调整参数,快速启动其中一个游戏kof98

故障现象&#xff0c;MAME启动后&#xff0c;游戏都没有识别 添加日志输出&#xff0c;重新启动wine #!/bin/bashexport WINEPREFIX$(pwd)/.wine export WINESERVER$(pwd)/bin/wineserver export WINELOADER$(pwd)/bin/wine export WINEDEBUG"file,mame,warn,err"…

CCF-C推荐会议 IEEE CLOUD‘24 3月24日截稿!深圳开启全球云计算新纪元!

会议之眼 快讯 IEEE CLOUD(IEEE International Conference on Cloud Computing)即IEEE云计算国际会议将于 2024 年7月7日至13日在中国深圳举行&#xff01;IEEE CLOUD由lEEE Computer Society主办&#xff0c;CCF服务计算专委会、北京大学、IBM Research承办。CLOUD一直是研究人…

Linux---多线程(上)

一、线程概念 线程是比进程更加轻量化的一种执行流 / 线程是在进程内部执行的一种执行流线程是CPU调度的基本单位&#xff0c;进程是承担系统资源的基本实体 在说线程之前我们来回顾一下进程的创建过程&#xff0c;如下图 那么以进程为参考&#xff0c;我们该如何去设计创建一个…

STM32串口:DMA空闲中断实现接收不定长数据(基于HAL库)

STM32串口&#xff1a;DMA空闲中断实现接收不定长数据&#xff08;基于HAL库&#xff09;&#xff1a; 第一步&#xff1a;设置rcc&#xff0c;时钟频率&#xff0c;下载方式 设置system core->RCC如图所示&#xff1a;&#xff08;即High Speed Clock和Low Speed Clock都选…

EasyNVR级联EasyCVR,在EasyCVR播放视频会导致EasyNVR崩溃的原因排查与解决

视频综合管理平台EasyCVR视频监控系统支持多协议接入、兼容多类型设备&#xff0c;平台可以将监控区域内所有部署的监控设备进行统一接入与集中汇聚管理&#xff0c;实现对监控区域的实时视频监控、录像与存储、设备管理、云台控制、语音对讲、级联共享等&#xff0c;在监控中心…

跨境账号养号怎么做?Facebook、亚马逊运营必看

之前我们讨论过很多关于代理器的问题。它们的工作原理是什么?在不同的软件中要使用那些代理服务器?这些代理服务器之间的区别是什么?什么是反检测浏览器等等。 除了这些问题&#xff0c;相信很多人也会关心在使用不同平台的时代理器的选择问题。比如&#xff0c;为什么最好…

深入理解React中的useState:函数组件状态管理的利器

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…