xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

  • 大小: 8KB
    文件類型: .rar
    金幣: 2
    下載: 2 次
    發布日期: 2021-06-12
  • 語言: Matlab
  • 標簽: ARIMA??MATLAB??

資源簡介

ARIMA模型MATLAB實現代碼,通過一批現有數據(本代碼中batch=100),向后預測后n個數據,n越大,預測效果越差。代碼可以直接運行,有實例支持,可以很快上手。壓縮包包括以下三部分:主程序(ARIMA_main.m),輔助函數(Inverse_BoxCox.m),測試數據(testdata.xls)。

資源截圖

代碼片段和文件信息

%ARIMA,是通過一批現有數據(本代碼中batch=100),向后預測后n個數據,這個n越大,預測效果越差

[data]?=?xlsread(‘testdata‘);
%?設置數據塊大小
batch?=?100;
%預測數量
predict_num?=?10;


%?Box_Cox轉換
[transdatalambda]=boxcox(data(:1));
%?ARIMA模型處理???利用前100真實數據??滑動窗口預測
Predict=transdata(1:batch1);
for?iii=1:predict_num???????????????????????????
????Data=Predict(iii:iii+batch-11);????????????????????%滑動窗口大小為100
????SourceData=Data(1:batch1);????????????????%前100個訓練集
????step=1;?????????????????????????????????????????????%向后預測一個(效果比較好)
????TempData=SourceData;
????TempData=detrend(TempData);???????????%去趨勢線
????TrendData=SourceData-TempData;????????%趨勢函數
%?????--------差分,平穩化時間序列---------
????H=adftest(TempData);
????difftime=0;
????SaveDiffData=[];
????while?~H
??????SaveDiffData=[SaveDiffDataTempData(11)];
??????TempData=diff(TempData);???????????%差分,平穩化時間序列
??????difftime=difftime+1;???????????????%差分次數
??????H=adftest(TempData);???????????????%adf檢驗,判斷時間序列是否平穩化
????end
%?????---------模型定階或識別------------
????u?=?iddata(TempData);
????test?=?[];
????for?p?=?1:5??????????????????????????%自回歸對應PACF給定滯后長度上限p和q,一般取為T/10、ln(T)或T^(1/2)這里取T/10=12
??????for?q?=?1:5????????????????????????%移動平均對應ACF
????????m?=?armax(u[p?q]);????????
????????AIC?=?aic(m);????????????????????%armax(pq)計算AIC
????????test?=?[test;p?q?AIC];
??????end
????end
????for?k?=?1:size(test1)
??????if?test(k3)?==?min(test(:3))?????%選擇AIC值最小的模型
????????p_test?=?test(k1);
????????q_test?=?test(k2);
????????break;
??????end
????end
%????----------1階預測-----------------
????TempData=[TempData;zeros(step1)];
????n=iddata(TempData);?
????m?=?armax(u[p_test?q_test]);????????%armax(pq)[p_test?q_test]對應AIC值最小,自動回歸滑動平均模型?????????
????P1=predict(mn1);
????PreR=P1.OutputData;
????PreR=PreR‘;
%????----------還原差分-----------------
????if?size(SaveDiffData2)~=0
??????for?index=size(SaveDiffData2):-1:1
????????PreR=cumsum([SaveDiffData(index)PreR]);
??????end
????end?
%????----------預測趨勢并返回結果--------
????mp1=polyfit([1:size(TrendData‘2)]TrendData‘1);
????xt=[];
????for?j=1:step
??????xt=[xtsize(TrendData‘2)+j];
????end
????TrendResult=polyval(mp1xt);
????PreData=TrendResult+PreR(size(SourceData‘2)+1:size(PreR2));
????tempx=[TrendData‘TrendResult]+PreR;????%?tempx為預測結果
????Predict(100+iii1)=tempx(1101);
end

%?求逆變換?%?最后的預測值在Inverse_transdata中
Inverse_transdata=Inverse_BoxCox(Predictlambda);


?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????2671??2020-05-13?23:14??ARIMA\ARIMA_main.m

?????文件????????203??2017-10-27?09:08??ARIMA\Inverse_BoxCox.m

?????文件??????23040??2020-05-13?22:55??ARIMA\testdata.xls

?????目錄??????????0??2020-05-13?23:14??ARIMA

-----------?---------??----------?-----??----

????????????????25914????????????????????4


評論

共有 條評論