How to automate ARIMA model 'order' selection based on ACF and PACF plots?
27 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
na ja
am 3 Okt. 2016
Kommentiert: Hamed Majidiyan
am 8 Mär. 2022
While modeling in MATLAB, we have to provide values of p, d and q in arima(p,d,q) implementation, by observing ACF - PACF plots and may be differencing the data afterwards. Is there a way so that these values can be assigned automatically from ACF - PACF plots and AIC test? I know, there are some other factors affecting these input argument values. But, for beginning I would be focusing on ACF - PACF plot, AIC test and need of differentiating the data only. The aim of this procedure is to get best fit possible.
0 Kommentare
Akzeptierte Antwort
Asad (Mehrzad) Khoddam
am 3 Okt. 2016
Bearbeitet: Asad (Mehrzad) Khoddam
am 3 Okt. 2016
I am not sure that it is your answer or not. But I have used this function to find the best values for p and q for a given time series y
function ar=checkArima(y,pp,qq)
% pp is the maximum for p
% qq is the maximum for q
LOGL = zeros(pp+1,qq+1); %Initialize
PQ = zeros(pp+1,qq+1);
for p = 1:pp+1
for q = 1:qq+1
mod = arima(p-1,0,q-1)
[fit,~,logL] = estimate(mod,y,'print',false);
LOGL(p,q) = logL;
PQ(p,q) = p+q;
end
end
LOGL = reshape(LOGL,(pp+1)*(qq+1),1);
PQ = reshape(PQ,(pp+1)*(qq+1),1);
[~,bic] = aicbic(LOGL,PQ+1,100);
ar=reshape(bic,pp+1,qq+1);
% the rows correspond to the AR degree (p) and the
% columns correspond to the MA degree (q). The smallest value is best
3 Kommentare
Hamed Majidiyan
am 7 Mär. 2022
Hi Asad,
Thanks for the code in advance. I ran the code and I got the following results, even though I don't know how to intrepret the outcomes, so any help would be highly appreciated
ARMA=checkarma(datac_chunk,2,1,2)
ARMA(:,:,1) =
1.0e+05 *
-0.9306 -1.7988 -0.9305
-1.7988 -2.5917 -1.6927
-2.6918 -3.0212 -0.0683
ARMA(:,:,2) =
1.0e+05 *
-1.7987 -0.9305 -1.7987
-2.5914 -1.6966 -2.5907
-1.7986 -1.5608 -3.1177
Hamed Majidiyan
am 8 Mär. 2022
Hi Asad,
Thanks for the code in advance. I ran the code and I got the following results, even though I don't know how to intrepret the outcomes, so any help would be highly appreciated
ARMA=checkarma(datac_chunk,2,1,2)
ARMA(:,:,1) =
1.0e+05 *
-0.9306 -1.7988 -0.9305
-1.7988 -2.5917 -1.6927
-2.6918 -3.0212 -0.0683
ARMA(:,:,2) =
1.0e+05 *
-1.7987 -0.9305 -1.7987
-2.5914 -1.6966 -2.5907
-1.7986 -1.5608 -3.1177
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Conditional Mean Models finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!