[数学建模从入门到入土] 预测模型

[数学建模从入门到入土] 预测模型

个人导航

知乎:https://www.zhihu.com/people/byzh_rc

CSDN:https://blog.csdn.net/qq_54636039

注:本文仅对所述内容做了框架性引导,具体细节可查询其余相关资料or源码

参考文章:各方资料

文章目录

时间序列预测

  1. ARIMA

  2. 多元线性回归

  3. Logistic回归

  4. LSTM和决策树

更加在乎过程的可解释性, 不要一味追求结果高

核心思路分类:

  • 因果关联分析 : 分析可能存在影响的因素
    (因变量与自变量的关联)
  • 时间延续性分析 : 关注数据在时间推移中的变化
    (因变量和时间,历史数据的关联)

ARIMA问题描述

自回归积分滑动平均模型ARIMA

一种处理非平稳时间序列的统计方法

通过对时间序列进行差分处理(使其平稳化), 结合自回归AR和滑动平均MA的特性, 建立预测模型

三个参数:

  • p p p: 自回归AR的阶数
  • d d d: 差分次数(使时间序列平稳)
  • q q q: 滑动平均MA的阶数

X t = ϕ 1 X t − 1 + ϕ 2 X t − 2 + ⋯ + ϕ p X t − p + θ 1 ϵ t − 1 + θ 2 ϵ t − 2 + ⋯ + θ q ϵ t − q + ϵ t X_t = \phi_1 X_{t-1} + \phi_2 X_{t-2} + \dots + \phi_p X_{t-p} + \theta_1 \epsilon_{t-1} + \theta_2 \epsilon_{t-2} + \dots + \theta_q \epsilon_{t-q} + \epsilon_t Xt=ϕ1Xt−1+ϕ2Xt−2+⋯+ϕpXt−p+θ1ϵt−1+θ2ϵt−2+⋯+θqϵt−q+ϵt

ϕ 1 , ϕ 2 , ... , ϕ p \phi_1 , \phi_2 , \dots , \phi_p ϕ1,ϕ2,...,ϕp: 自回归参数

θ 1 , θ 2 , ... , θ p \theta_1 , \theta_2 , \dots , \theta_p θ1,θ2,...,θp: 滑动平均参数

ϵ t \epsilon_t ϵt: 白噪声误差项

步骤:

  1. 数据准备: 对非平稳序列进行差分处理
  2. 参数估计: 拟合(p, d, q)参数
  3. 模型验证: 检验模型的拟合效果
  4. 未来预测: 根据模型对未来的时间序列值进行预测
1.数据准备

理论背景:ARIMA模型适用于平稳时间序列,而非平稳时间序列需要通过差分处理使其平稳。平稳性是时间序列分析的基本要求,指序列的均值和方差不随时间变化,并且序列的自相关函数仅取决于滞后时间,而与时间点无关。如果时间序列不平稳,可能表现为以下特性:

  • 均值随时间变化,呈现上升或下降趋势
  • 方差随时间变化,数据波动幅度逐渐增大或减小
  • 存在周期性或季节性波动

对于非平稳时间序列,常用以下方法进行平稳化处理:

  • 差分法:通过计算相邻数据点的差分,去除趋势性,使数据平稳。差分公式为:
    △ X t = X t X t 1 \triangle X_t = X_t X_{t1} △Xt=XtXt1

    对数据多次差分后,可以逐步消除趋势性

  • 对数变换:对数据取对数,减小数据的波动幅度

  • 季节性调整:如果数据具有周期性波动特性,可以对每个周期的平均值进行调整

在模型构建过程中,模型的三个参数 ( p , d , q ) (p,d,q) (p,d,q) 的选择非常关键:

  • p:自回归部分的阶数,表示当前值与p个滞后值之间的线性关系
  • d:差分次数,用于将非平稳时间序列转化为平稳时间序列
  • q:移动平均部分的阶数,表示当前值与α个随机误差项之间的关系

常用方法确定模型阶数包括:

  • 绘制自相关函数(ACF)图:判断MA(移动平均)部分的阶数
  • 绘制偏自相关函数(PACF)图:判断AR(自回归)部分的阶数
2.模型建立与参数估计

ARIMA模型的核心是通过最小二乘法拟合模型参数,使得模型预测值与实际值之间的误差平方和最小

通过历史数据,估计模型参数 ϕ , θ \phi, \theta ϕ,θ,需要先计算误差项 ϵ \epsilon ϵ,再通过最小二乘法拟合模型

3.未来预测

利用ARIMA模型预测未来值时,需要最近 p p p 个时间序列值和 q q q 个误差项值

回归

研究自变量(解释变量)和因变量(被解释变量)之间的关系

一元线性回归:
y = β 0 + β 1 x + ϵ y=\beta_0+\beta_1x+\epsilon y=β0+β1x+ϵ

ϵ \epsilon ϵ: 通常是独立同分布的, 均值为 0 0 0, 方差为 σ 2 \sigma^2 σ2

找最优参数 β 0 \beta_0 β0 和 β 1 \beta_1 β1 使预测值 y ^ \hat{y} y^ 与实际值 y y y 的偏差最小

多元线性回归:
y = β 0 + β 1 x 1 + β 2 x 2 + . . . + β p x p + ϵ y=\beta_0+\beta_1 x_1+\beta_2 x_2+...+\beta_p x_p+\epsilon y=β0+β1x1+β2x2+...+βpxp+ϵ

谁的 β \beta β越大, 说明哪个指标的权重更大, 更重要

  1. 数据准备阶段
    • 数据收集
    • 数据清洗
    • 数据转换与标准化
  2. 特征选择与处理
    • 检查变量间的线性关系
    • 多重共线性检测
    • 特征工程
  3. 模型构建阶段
    • 确定模型
    • 拆分数据集
    • 模型训练
    • 检查模型拟合
  4. 模型评估阶段
    • 拟合优度 R 2 R^2 R2
    • 调整后的 R 2 R^2 R2
    • 均方误差MSE
    • 均分根误差RMSE
    • 平均绝对误差MAE
  5. 模型优化与改进
    • 特征选择优化
    • 非线性改进
    • 数据变换
    • 正则化方法
1.数据准备阶段

数据收集: 覆盖范围广, 具有代表性

数据清洗:

  • 缺失值(删除, 填补)
  • 异常值(箱线图识别)

检查一致性: 单位, 取值范围

数据转换与标准化: 略

2.特征选择与处理

检查变量间的线性关系:

  • 散点图可视化, 相关矩阵
  • pearson相关系数

如果某个自变量和因变量的相关性很弱, 可以考虑剔除

多重共线性检测:

计算变量的方差膨胀因子(VIF), 一般认为 V I F > 10 VIF>10 VIF>10时说明共线性较强

如果存在多重共线性, 可以通过以下方法解决:

  • 提出相关性强的变量
  • 使用正则化方法(岭回归, LASSO回归)
  • PCA降维

特征工程:

  • 添加新特征: 构建交互项( x 1 × x 2 x_1 \times x_2 x1×x2) 或 非线性项( x 2 x^2 x2)
  • 编码分类变量: 对类别型变量进行处理(独热编码, 数值化编码)
3.模型构建阶段

确定模型形式: y = β 0 + β 1 x 1 + β 2 x 2 + . . . + β p x p + ϵ y=\beta_0+\beta_1 x_1+\beta_2 x_2+...+\beta_p x_p+\epsilon y=β0+β1x1+β2x2+...+βpxp+ϵ

拆分数据集: 留出法(7:3或8:2)

模型训练:

  • 用训练集拟合多元线性回归模型, 常用最小二乘法OLS
  • 通过最小化残差平方和RSS估计回归系数 β \beta β

检查模型拟合:

  • 检查回归系数的显著性 -> 通过t检验和p值
  • 检查模型的整体显著性 -> 通过F检验
  • 确认误差项是否满足正态性和同方差性假设 -> 残差分析
4.模型评估阶段

拟合优度 R 2 R^2 R2: 反映模型对数据的解释能力, 范围[0, 1]
R 2 = 1 − R S S T S S R^2=1-\frac{RSS}{TSS} R2=1−TSSRSS

调整后的 R 2 R^2 R2: 适用于多元回归, 能够平衡模型复杂度
R a d j u s t e d 2 = 1 − ( 1 − R 2 ) ( n − 1 ) n − p − 1 R^2_{adjusted}=1-\frac{(1-R^2)(n-1)}{n-p-1} Radjusted2=1−n−p−1(1−R2)(n−1)

均方误差MSE:
M S E = 1 n ∑ i = 1 n ( y i − y ^ i ) 2 MSE = \frac{1}{n} \sum_{i=1}^n (y_i - \hat{y}_i)^2 MSE=n1i=1∑n(yi−y^i)2

均分根误差RMSE:
R M S E = M S E RMSE = \sqrt{MSE} RMSE=MSE

平均绝对误差MAE:
M A E = 1 n ∑ i = 1 n ∣ y i − y ^ i ∣ MAE = \frac{1}{n} \sum_{i=1}^n |y_i - \hat{y}_i| MAE=n1i=1∑n∣yi−y^i∣

5.模型优化与改进

特征选择优化:

  • 逐步回归, LASSO回归, 岭回归 -> 最优特征子集
  • 剔除不显著或相关性过高的变量

非线性改进:

  • 如果数据存在非线性关系,可以引入多项式特征 或通过非线性回归方法改进

数据变换:

  • 对因变量或自变量进行对数、平方根或其他变换,改善模型的拟合效果

正则化方法:

  • 使用**岭回归(L2正则化)LASSO回归(L1正则化)**解决过拟合或多重共线性问题

例子:

马尔科夫预测模型

基于状态转移的预测方法

假设未来状态仅依赖于当前状态,而与历史状态无关

通过构建状态转移概率矩阵,描述系统从一个状态转移到另一个状态的概率,并利用该矩阵迭代预测未来状态的概率分布

  1. 数据准备:将历史数据转化为离散状态
  2. 状态转移概率矩阵计算:统计各状态间的转移次数,计算转移概率
  3. 状态预测:利用转移概率矩阵和当前状态分布,通过矩阵运算迭代预测未来状态分布

P t + 1 = P t ∗ T P_{t+1}=P_t*T Pt+1=Pt∗T

  • P t P_t Pt: 当前时刻的状态概率分布
  • T T T: 状态转移概率矩阵
  • P t + 1 P_{t+1} Pt+1: 下一时刻的状态概率分布
1.数据准备
2.构建状态转移概率矩阵
3.预测未来状态分布
相关推荐
NAGNIP18 小时前
一文搞懂深度学习中的通用逼近定理!
人工智能·算法·面试
冬奇Lab19 小时前
一天一个开源项目(第36篇):EverMemOS - 跨 LLM 与平台的长时记忆 OS,让 Agent 会记忆更会推理
人工智能·开源·资讯
冬奇Lab19 小时前
OpenClaw 源码深度解析(一):Gateway——为什么需要一个"中枢"
人工智能·开源·源码阅读
AngelPP1 天前
OpenClaw 架构深度解析:如何把 AI 助手搬到你的个人设备上
人工智能
宅小年1 天前
Claude Code 换成了Kimi K2.5后,我再也回不去了
人工智能·ai编程·claude
九狼1 天前
Flutter URL Scheme 跨平台跳转
人工智能·flutter·github
ZFSS1 天前
Kimi Chat Completion API 申请及使用
前端·人工智能
天翼云开发者社区1 天前
春节复工福利就位!天翼云息壤2500万Tokens免费送,全品类大模型一键畅玩!
人工智能·算力服务·息壤
知识浅谈1 天前
教你如何用 Gemini 将课本图片一键转为精美 PPT
人工智能
Ray Liang1 天前
被低估的量化版模型,小身材也能干大事
人工智能·ai·ai助手·mindx