首页 > 其他分享 >十大时间序列模型最强总结(九)贝叶斯结构时间序列模型(BSTS)

十大时间序列模型最强总结(九)贝叶斯结构时间序列模型(BSTS)

时间:2024-09-02 17:29:19浏览次数:5  
标签:plt 模型 np BSTS 序列 import


九、贝叶斯结构时间序列模型(BSTS)

1. 原理

BSTS 模型是基于贝叶斯框架的时间序列建模方法,它允许对时间序列数据中的趋势、季节性和假期效应进行建模。BSTS 模型结合了结构时间序列模型和贝叶斯推断方法,以提供灵活的建模能力。

2. 核心公式

十大时间序列模型最强总结(九)贝叶斯结构时间序列模型(BSTS)_ai

推导

  1. 趋势: 使用随机游走模型或加法趋势模型。
  2. 季节性: 建模季节性波动。
  3. 假期效应: 通过特定的假期效应模型引入。

3. 优缺点

1)优点

  • 能够处理多种时间序列成分,适用于复杂的时间序列数据。
  • 具有灵活的贝叶斯推断能力,能提供不确定性评估。

2)缺点

  • 计算复杂度高,训练时间较长。
  • 对超参数的调整较为敏感。

4. 适用场景

BSTS 模型适用于具有复杂结构的时间序列数据,如业务销售数据、经济指标预测等。

5. 核心案例代码

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import numpyro
from bsts import BSTS
import jax
import jax.numpy as jnp

# 确认可用设备数量
print(f"Number of available devices: {jax.local_device_count()}")

# 设置主机设备数量(根据实际情况调整)
numpyro.set_host_device_count(1)  # 设置为实际可用的设备数量

# 生成示例数据
np.random.seed(42)
dates = pd.date_range('2024-01-01', periods=365)
data = np.linspace(10, 50, 365) + 10 * np.sin(np.linspace(0, 2 * np.pi, 365)) + np.random.randn(365) * 5
df = pd.DataFrame({'Date': dates, 'Value': data})

# 确保数据格式正确
values = np.asarray(df['Value'], dtype=np.float32)

# 初始化 BSTS 模型
model = BSTS(values)

# 拟合模型
model.fit(values)

# 预测未来30天
forecast = model.predict(steps=30)

# 生成未来日期
forecast_index = pd.date_range(dates[-1] + pd.DateOffset(days=1), periods=30)
forecast_values = forecast['mean']  # 根据实际返回值的结构调整

# 可视化
plt.figure(figsize=(12, 6))
plt.plot(df['Date'], df['Value'], label='Observed', color='blue')
plt.plot(forecast_index, forecast_values, label='Forecast', color='red', linestyle='--')
plt.title('BSTS Model Forecast')
plt.xlabel('Date')
plt.ylabel('Value')
plt.legend()
plt.grid(True)
plt.show()

图中展示了时间序列数据(蓝色)及其预测结果(红色虚线)。BSTS 模型能够捕捉时间序列的复杂成分并进行预测。




标签:plt,模型,np,BSTS,序列,import
From: https://blog.51cto.com/u_15620990/11899534

相关文章

  • 十大时间序列模型最强总结(十)序列到序列模型(Seq2Seq)
    十、序列到序列模型(Seq2Seq)1.原理Seq2Seq模型是一种深度学习模型,用于处理序列到序列的任务,如机器翻译和时间序列预测。Seq2Seq模型通常由一个编码器和一个解码器组成,其中编码器处理输入序列,解码器生成输出序列。2.核心公式3.优缺点1)优点:适用于复杂的序列到序列任务,如机器翻译......
  • CAMEL:通过角色扮演,实现大模型自主合作的多智能体框架
    CAMEL:通过角色扮演,实现大模型自主合作的多智能体框架提出背景秒懂大纲解法拆解类比全流程分析CAMEL对比AutoGen、MetaGPT为什么通过角色扮演和对话,就能实现大模型的自主合作,探索自主交互智能体在复杂任务求解中的潜力? 论文:CAMEL:CommunicativeAgentsfor“Mind”Explorati......
  • 五轴模型RTCP视觉标定原理
            ......
  • 助力移动道路交通环保治理,打赢蓝天保卫战,基于YOLO家族最新端到端实时算法YOLOv10全系
    在快速发展的现代社会中,工业化的步伐虽推动了城市的繁荣,但环保问题也随之成为我们不得不面对的重大挑战。特别是在移动道路交通领域,路边与路面裸土堆积、道路扬尘等问题,不仅影响城市形象,更对空气质量与居民健康构成了严重威胁。面对这一现状,传统的监测治理手段已难以满足高效、......
  • Apache SeaTunnel 2.3.7发布:全新支持大型语言模型数据转换
    我们欣喜地宣布,ApacheSeaTunnel2.3.7版本现已正式发布!作为一个广受欢迎的下一代开源数据集成工具,ApacheSeaTunnel一直致力于为用户提供更加灵活、高效的数据同步和集成能力。此次版本更新不仅引入了如LLM(大型语言模型)数据转换支持、增强的SQL支持和新连接器支持等多个新......
  • 教你三分钟做好城市名片海报,包学会!(附模型)
    这期分享StableDiffusion城市名片教程案例以我的家乡福建「泉州」为例本次教程使用哩布哩布AI网站SD在线生成,本次教程使用文生图功能。**①选好大模型;②**输入关键词;③选好LORA模型;④设置controlnet插件参数;⑤设置出图参数(一)选好大模型大模型:XLOutlineColor......
  • 传统光照模型
    光源一般的,一个场景中存在任意数量的点光及方向光(平行光)和单个环境光。点光如灯泡,点光具有位置和强度(光的亮度),假设从一个点向每个方向均匀的发射光,定义光向量(方向)\(L=Q-P\),其中\(Q\)为固定的光源发射位置,\(P\)为场景中任意点的位置。方向光如日光,太阳过于遥远,以至于到达我......
  • SQL进阶技巧:如何取时间序列最新完成状态的前一个状态并将完成状态的过程进行合并?
    目录0问题描述1数据准备2问题分析问题1:取最新完成状态的前一个状态 方法1:分析函数求解方法2:关联求解问题2:如何将完成状态的过程合并 方法1:分析函数作为辅助变量 方法2:自关联形式获取全量结果集 3小结0问题描述表status字段及内容如下:date_id为连续自增......
  • 用Python实现时间序列模型实战——Day 8: 季节性ARIMA模型 (SARIMA)
    一、学习内容1.SARIMA模型的定义与公式推导SARIMA模型:SARIMA模型是扩展了ARIMA模型的一种方法,全称为季节性自回归积分滑动平均模型(SeasonalAutoRegressiveIntegratedMovingAverage)。它结合了ARIMA模型的非季节性部分和季节性成分,用于处理具有季节性模式的时间序......
  • 阿里通义多模态大模型mPLUG-Owl3是怎么炼成的?
    关注公众号:青稞AI,第一时间了解最新AI技术......