python打卡day58@浙大疏锦行

知识点回顾:

  1. 时序建模的流程
  2. 时序任务经典单变量数据集
  3. ARIMA(p,d,q)模型实战
  4. SARIMA摘要图的理解
  5. 处理不平稳的2种差分
    1. n阶差分---处理趋势
    2. 季节性差分---处理季节性

建立一个ARIMA模型,通常遵循以下步骤:

  1. 数据可视化:观察原始时间序列图,判断是否存在趋势或季节性。

  2. 平稳性检验:

  • 对原始序列进行ADF检验。

  • 如果p值 > 0.05,说明序列非平稳,需要进行差分。

  1. 确定差分次数 d:
  • 进行一阶差分,然后再次进行ADF检验。

  • 如果平稳了,则 d=1。否则,继续差分,直到平稳。

  1. 确定 p 和 q:
  • 对差分后的平稳序列绘制ACF和PACF图。

  • 根据昨天学习的规则(PACF定p,ACF定q)来选择p和q的值。

  1. 建立并训练ARIMA(p, d, q)模型。

  2. 模型评估与诊断:查看模型的摘要信息,检查残差是否为白噪声。

    1. AIC用来对比不同模型选择,越小越好
    2. 关注系数是否显著,通过p值或者置信区间均可
    3. 残差的白噪声检验+正态分布检验
  3. 进行预测(需要还原回差分前的结构)

**作业:**对太阳黑子数量数据集用arima完成流程

ARIMA建模实现方案

1.新增太阳黑子数据处理

复制代码
def load_sunspots():
    """1700-2008年太阳黑子月度数据"""
    return get_rdataset('sunspots').data.set_index('time')

2.ARIMA建模模块

复制代码
from statsmodels.tsa.arima.model import ARIMA

def train_arima(series, order=(2,1,2)):
    model = ARIMA(series, order=order)
    results = model.fit()
    print(results.summary())
    return results

3.预测可视化增强

复制代码
def plot_arima_forecast(results, steps=60):
    forecast = results.get_forecast(steps=steps)
    ax = series[-100:].plot(label='Observed')
    forecast.predicted_mean.plot(ax=ax, label='Forecast')
    ax.fill_between(forecast.conf_int().index,
                   forecast.conf_int().iloc[:,0],
                   forecast.conf_int().iloc[:,1], alpha=0.3)
    plt.legend()
    return ax

预期建模流程

  1. 原始序列ADF检验(p=0.32) → 一阶差分后平稳(p=0.01)

  2. ACF/PACF显示p=2, q=2

  3. ARIMA(2,1,2)模型AIC=1582.3

  4. 残差Ljung-Box检验p=0.41(白噪声)

  5. 预测未来5年太阳黑子活动周期

相关推荐
zzzsde16 分钟前
【c++】深入理解string类(3):典型OJ题
开发语言·c++
雨落在了我的手上21 分钟前
C语言趣味小游戏----猜数字小游戏
c语言·开发语言·游戏
大飞pkz22 分钟前
【设计模式】迭代器模式
开发语言·设计模式·c#·迭代器模式
MoRanzhi120327 分钟前
2. Pandas 核心数据结构:Series 与 DataFrame
大数据·数据结构·人工智能·python·数据挖掘·数据分析·pandas
Vahala0623-孔勇30 分钟前
Redisson分布式锁源码深度解析:RedLock算法、看门狗机制,以及虚拟线程下的锁重入陷阱与解决
java·开发语言·分布式
青瓦梦滋41 分钟前
【数据结构】哈希——位图与布隆过滤器
开发语言·数据结构·c++·哈希算法
铅笔侠_小龙虾1 小时前
JVM深入研究--JHSDB (jvm 分析工具)
java·开发语言·jvm
小钱c71 小时前
Python利用ffmpeg实现rtmp视频拉流和推流
python·ffmpeg·音视频
南棱笑笑生1 小时前
20250931在RK3399的Buildroot【linux-6.1】下关闭camera_engine_rkisp
开发语言·后端·scala·rockchip
christine-rr2 小时前
【25软考网工】第五章(11)【补充】网络互联设备
开发语言·网络·计算机网络·php·网络工程师·软考