• 时序预测 | MATLAB实现ARMA自回归移动平均模型时间序列预测


    时序预测 | MATLAB实现ARMA自回归移动平均模型时间序列预测

    预测效果

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    基本介绍

    MATLAB实现ARMA时间序列预测(完整源码和数据)
    本程序基于MATLAB的armax函数实现arma时间序列预测;
    实现了模型趋势分析、序列平稳化、AIC准则模型参数识别与定阶、预测结果与误差分析过程,逻辑清晰。
    数据为144个月的数据集,周期为一年,最终实现历史数据的预测和未来两年数据的预报!
    基于自回归移动平均模型时间序列预测.
    评价指标包括:MAE、RMSE和MAPE等,代码质量极高,方便学习和替换数据。要求2018版本及以上。

    程序设计

    %%  参数设置
    model_arima = arima(p_arima, d_arima, q_arima);
    fit_arima = estimate(model_arima, trainData);
    forecast_arima = forecast(fit_arima, numel(testData));
    %-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    % 计算模型拟合优度
    fit_ar_test = 1 - sum((testData - forecast_ar).^2) / sum((testData - mean(testData)).^2);
    fit_arma_test = 1 - sum((testData - forecast_arma).^2) / sum((testData - mean(testData)).^2);
    fit_arima_test = 1 - sum((testData - forecast_arima).^2) / sum((testData - mean(testData)).^2);
    ————————————————
    版权声明:本文为CSDN博主「机器学习之心」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/kjm13182345320/article/details/132632834
    %--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    [S,Q] = size(T);
    % Randomly Generate the Input Weight Matrix
    IW = rand(N,R) * 2 - 1;
    % Randomly Generate the Bias Matrix
    B = rand(N,1);
    %--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    BiasMatrix = repmat(B,1,Q);
    % Calculate the Layer Output Matrix H
    tempH = IW * P + BiasMatrix;
    %--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    switch TF
        case 'sig'
            H = 1 ./ (1 + exp(-tempH));
        case 'sin'
            H = sin(tempH);
        case 'hardlim'
            H = hardlim(tempH);
    end
    % Calculate the Output Weight Matrix
    LW = pinv(H') * T';
    %--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36

    参考资料

    [1] https://blog.csdn.net/article/details/126072792?spm=1001.2014.3001.5502
    [2] https://blog.csdn.net/article/details/126044265?spm=1001.2014.3001.5502

  • 相关阅读:
    iOS原生应用集成Uni小程序SDK教程
    P1147 连续自然数和 【双指针(尺取法)】
    使用 docker 运行 drupal
    三肽Isovaleryl-Val-Val-Sta-乙酯化、120849-36-7
    redis——缓存雪崩、缓存穿透、缓存击穿
    在.Net 5或更高版本的.Net中使用appsettings.json配置文件
    KITTI数据集leaderboard上单目SLAM方法
    【算法练习Day5】有效的字母异位词 &两个数组的交集&&快乐数&&两数之和
    AJAX【AJAX实现省市联动 、AJAX跨域问题、AJAX实现搜索联想 自动补全、 附录:HTTP状态信息】
    K线形态识别_冉冉上升
  • 原文地址:https://blog.csdn.net/kjm13182345320/article/details/132778777