clc;
clear;
warning off
close all
f=xlsread('数据.xlsx');
data = f(1:180,:);
%预报步长
step=24;
TempData=data;
output=data;
%去趋势线
TempData=detrend(TempData);
%趋势函数
TrendData=data-TempData;
%差分,平稳化时间序列
[H,PValue,TestStat,CriticalValue] = adftest(TempData);
difftime=0;
SaveDiffData=[];
while ~H
%差分,平稳化时间序列
SaveDiffData=[SaveDiffData,TempData(1,1)];
TempData=diff(TempData);
%差分次数
difftime=difftime+1;
%adf检验,判断时间序列是否平稳化
[H,PValue,TestStat,CriticalValue] = adftest(TempData);
end
%模型定阶或识别
test = [];
%自回归对应PACF,给定滞后长度上限p和q
for p = 0:5
%移动平均对应ACF
for q = 0:5
if(p + q ~= 0)
m = armax(TempData,[p q]);
%armax(p,q),计算AIC
AIC = aic(m);
test = [test;p q AIC];
end
end
end
disp(['搜索:'])
disp(['https://mbd.pub/o/DDR1'])
%% 打印出评价指标
%% disp(['-----------------------误差计算--------------------------'])
%% disp(['评价结果如下所示:'])
%% disp(['平均绝对误差MAE为:',num2str(MAE2)])
%% disp(['均方误差MSE为: ',num2str(mse2)])
%% disp(['均方根误差RMSEP为: ',num2str(error2)])
%% disp(['决定系数R^2为: ',num2str(R2)])
%% disp(['剩余预测残差RPD为: ',num2str(RPD2)])
%% disp(['平均绝对百分比误差MAPE为: ',num2str(MAPE2)])
%% grid
%预测趋势并返回结果
TrendData=TrendData';
mp1=polyfit(1:size(TrendData,2),TrendData,1);
xt=[];
for j=1:step
xt=[xt,size(TrendData,2)+j];
end
TrendResult=polyval(mp1,xt);
ARIMAoutput=[TrendData,TrendResult]+PreR;
ARIMAoutput_Predict=ARIMAoutput(1:end-step)';
ARIMAoutput_Forcast=ARIMAoutput(end-step+1:end)';
%% 数据输出
error=ARIMAoutput_Predict-output;
pererror=error./output;
avererror=sum(abs(error))/length(error);
averpererror=sum(abs(pererror))/length(pererror);
RMSE = sqrt(mean((error).^2));
disp('ARIMA模型MAE');
disp(avererror)
disp('ARIMA模型MAPE');
disp(averpererror)
disp('ARIMA模型RMSE')
disp(RMSE)
% disp('未来年预报')
% disp(ARIMAoutput_Forcast)
%-------------------------------------------------------------------------------------
figure
subplot(2,1,1)
autocorr(data)
subplot(2,1,2)
parcorr(data)
%-------------------------------------------------------------------------------------
%% 绘图
figure
%plot(1:M,T_train,'r-*',1:M,T_sim1,'b-o','LineWidth',1)
plot(data','r-','LineWidth',1.5)
hold on
plot(ARIMAoutput,'b-','LineWidth',1.5)
legend('真实值','ARIMA预测值')
xlabel('预测样本')
ylabel('预测结果')
title('ARIMA模型预测')
xlabel('时间')
ylabel('结果')
%% 误差图
figure
plot(pererror,'b-*','LineWidth',1.5)
xlabel('测试集样本编号')
ylabel('预测误差')
title('测试集预测误差')
grid on;
legend('ARIMA预测输出误差')
%-------------------------------------------------------------------------------------
%% 测试集结果
figure;
ploterrhist(error,['误差直方图']);
没有合适的资源?快使用搜索试试~ 我知道了~
自回归差分移动平均模型ARIMA时间序列预测,可实现多步预测,对未来的数据实现预测
共2个文件
xlsx:1个
m:1个
需积分: 0 1 下载量 177 浏览量
2023-10-08
22:49:16
上传
评论
收藏 24KB ZIP 举报
温馨提示
自回归差分移动平均模型ARIMA时间序列预测,可实现多步预测,对未来的数据实现预测。自回归差分移动平均模型ARIMA时间序列预测,可实现多步预测,对未来的数据实现预测。自回归差分移动平均模型ARIMA时间序列预测,可实现多步预测,对未来的数据实现预测。自回归差分移动平均模型ARIMA时间序列预测,可实现多步预测,对未来的数据实现预测。
资源推荐
资源详情
资源评论
收起资源包目录
5 ARIMA未来预测.zip (2个子文件)
数据.xlsx 26KB
ARIMA.m 3KB
共 2 条
- 1
资源评论
智能算法及其模型预测
- 粉丝: 1834
- 资源: 788
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- BGP路由基本配置(拓扑图画好,ip配好了)
- C#的前置窗口截图工具
- 基于Flask开发后端、VUE开发前端框架,在WEB端部署YOLOv5目标检测模型
- kubekeyv3.0.13
- 基于SHT25温湿度传感器、FREERTOS、STM32F103C8T6、LCD1602温湿度采集显示系统proteus仿真设计
- C# 屏幕放大取色器 随时随地获取屏幕像素颜色
- 下载安装这个软件.apk
- 【数据集详细解释及案例分析】数据集详细解释及案例分析
- 基于SHT71温湿度传感器、STM32F103C8T6、LCD1602温湿度采集显示系统proteus仿真设计
- 基于TH02温湿度传感器、STM32F103C8T6、LCD1602、FREERTOS的温湿度采集系统proteus仿真设计
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功