Free Statistics

of Irreproducible Research!

Author's title

Author*The author of this computation has been verified*
R Software Modulerwasp_arimabackwardselection.wasp
Title produced by softwareARIMA Backward Selection
Date of computationMon, 08 Dec 2008 14:26:59 -0700
Cite this page as followsStatistical Computations at FreeStatistics.org, Office for Research Development and Education, URL https://freestatistics.org/blog/index.php?v=date/2008/Dec/08/t12287716884d58sw05on4g1jb.htm/, Retrieved Thu, 16 May 2024 16:14:43 +0000
Statistical Computations at FreeStatistics.org, Office for Research Development and Education, URL https://freestatistics.org/blog/index.php?pk=31063, Retrieved Thu, 16 May 2024 16:14:43 +0000
QR Codes:

Original text written by user:
IsPrivate?No (this computation is public)
User-defined keywords
Estimated Impact167
Family? (F = Feedback message, R = changed R code, M = changed R Module, P = changed Parameters, D = changed Data)
-     [Univariate Data Series] [data set] [2008-12-01 19:54:57] [b98453cac15ba1066b407e146608df68]
F RMP   [Variance Reduction Matrix] [Q1 Identification...] [2008-12-07 12:23:19] [c993f605b206b366f754f7f8c1fcc291]
F RMPD      [ARIMA Backward Selection] [backword selection] [2008-12-08 21:26:59] [70ba55c7ff8e068610dc28fc16e6d1e2] [Current]
-   P         [ARIMA Backward Selection] [Assessment verbet...] [2008-12-10 16:27:45] [46c5a5fbda57fdfa1d4ef48658f82a0c]
Feedback Forum
2008-12-10 16:42:44 [Ken Van den Heuvel] [reply
Je had je lambda op 2 laten staan terwijl deze 1 moest zijn (cfr. verbetering vorige vragen).

Als je dan de parameters maximaliseert krijg je een error wegens overparameterisatie. Verzet bijgevolg AR naar 2 (ipv 3). Je verkrijgt volgend resultaat.

http://www.freestatistics.org/blog/index.php?v=date/2008/Dec/10/t1228926888vsugqd2g52coui6.htm/

Zoals gesteld in de verbetering van de vorige vraag hebben we dus een AR2 en MA1 proces. Blijkbaar zijn er ook sporen gevonden van een SAR1 en SMA1 proces.

Verder dien je nog de assumpties van de residu's na te gaan (geen autocorrelatie, normale distributie, vaste variantie en locatie).

Afgaande op de RAF en RPAF is er geen autocorrelatie bij de residu's. De density plot, histogram en Q-Q plot geven een relatief normale distributie weer.

Vaste variantie en locatie zijn normaal het gevolg van het stationair maken van de reeks en de lambda transformatie. Best kan je deze zelf nog even nagaan via de gekende technieken (central tendency ed.).

Post a new message
Dataseries X:
7.8
7.6
7.5
7.6
7.5
7.3
7.6
7.5
7.6
7.9
7.9
8.1
8.2
8.0
7.5
6.8
6.5
6.6
7.6
8.0
8.0
7.7
7.5
7.6
7.7
7.9
7.8
7.5
7.5
7.1
7.5
7.5
7.6
7.7
7.7
7.9
8.1
8.2
8.2
8.1
7.9
7.3
6.9
6.6
6.7
6.9
7.0
7.1
7.2
7.1
6.9
7.0
6.8
6.4
6.7
6.7
6.4
6.3
6.2
6.5
6.8
6.8
6.5
6.3
5.9
5.9
6.4
6.4




Summary of computational transaction
Raw Inputview raw input (R code)
Raw Outputview raw output of R engine
Computing time3 seconds
R Server'Gwilym Jenkins' @ 72.249.127.135

\begin{tabular}{lllllllll}
\hline
Summary of computational transaction \tabularnewline
Raw Input & view raw input (R code)  \tabularnewline
Raw Output & view raw output of R engine  \tabularnewline
Computing time & 3 seconds \tabularnewline
R Server & 'Gwilym Jenkins' @ 72.249.127.135 \tabularnewline
\hline
\end{tabular}
%Source: https://freestatistics.org/blog/index.php?pk=31063&T=0

[TABLE]
[ROW][C]Summary of computational transaction[/C][/ROW]
[ROW][C]Raw Input[/C][C]view raw input (R code) [/C][/ROW]
[ROW][C]Raw Output[/C][C]view raw output of R engine [/C][/ROW]
[ROW][C]Computing time[/C][C]3 seconds[/C][/ROW]
[ROW][C]R Server[/C][C]'Gwilym Jenkins' @ 72.249.127.135[/C][/ROW]
[/TABLE]
Source: https://freestatistics.org/blog/index.php?pk=31063&T=0

Globally Unique Identifier (entire table): ba.freestatistics.org/blog/index.php?pk=31063&T=0

As an alternative you can also use a QR Code:  

The GUIDs for individual cells are displayed in the table below:

Summary of computational transaction
Raw Inputview raw input (R code)
Raw Outputview raw output of R engine
Computing time3 seconds
R Server'Gwilym Jenkins' @ 72.249.127.135







ARIMA Parameter Estimation and Backward Selection
Iterationar1ma1sar1sma1
Estimates ( 1 )0.07620.50380.36390.1336
(p-val)(0.7938 )(0.0258 )(0.692 )(0.9033 )
Estimates ( 2 )0.09570.49620.47160
(p-val)(0.6705 )(0.017 )(1e-04 )(NA )
Estimates ( 3 )00.56260.46550
(p-val)(NA )(0 )(1e-04 )(NA )
Estimates ( 4 )NANANANA
(p-val)(NA )(NA )(NA )(NA )
Estimates ( 5 )NANANANA
(p-val)(NA )(NA )(NA )(NA )
Estimates ( 6 )NANANANA
(p-val)(NA )(NA )(NA )(NA )
Estimates ( 7 )NANANANA
(p-val)(NA )(NA )(NA )(NA )

\begin{tabular}{lllllllll}
\hline
ARIMA Parameter Estimation and Backward Selection \tabularnewline
Iteration & ar1 & ma1 & sar1 & sma1 \tabularnewline
Estimates ( 1 ) & 0.0762 & 0.5038 & 0.3639 & 0.1336 \tabularnewline
(p-val) & (0.7938 ) & (0.0258 ) & (0.692 ) & (0.9033 ) \tabularnewline
Estimates ( 2 ) & 0.0957 & 0.4962 & 0.4716 & 0 \tabularnewline
(p-val) & (0.6705 ) & (0.017 ) & (1e-04 ) & (NA ) \tabularnewline
Estimates ( 3 ) & 0 & 0.5626 & 0.4655 & 0 \tabularnewline
(p-val) & (NA ) & (0 ) & (1e-04 ) & (NA ) \tabularnewline
Estimates ( 4 ) & NA & NA & NA & NA \tabularnewline
(p-val) & (NA ) & (NA ) & (NA ) & (NA ) \tabularnewline
Estimates ( 5 ) & NA & NA & NA & NA \tabularnewline
(p-val) & (NA ) & (NA ) & (NA ) & (NA ) \tabularnewline
Estimates ( 6 ) & NA & NA & NA & NA \tabularnewline
(p-val) & (NA ) & (NA ) & (NA ) & (NA ) \tabularnewline
Estimates ( 7 ) & NA & NA & NA & NA \tabularnewline
(p-val) & (NA ) & (NA ) & (NA ) & (NA ) \tabularnewline
\hline
\end{tabular}
%Source: https://freestatistics.org/blog/index.php?pk=31063&T=1

[TABLE]
[ROW][C]ARIMA Parameter Estimation and Backward Selection[/C][/ROW]
[ROW][C]Iteration[/C][C]ar1[/C][C]ma1[/C][C]sar1[/C][C]sma1[/C][/ROW]
[ROW][C]Estimates ( 1 )[/C][C]0.0762[/C][C]0.5038[/C][C]0.3639[/C][C]0.1336[/C][/ROW]
[ROW][C](p-val)[/C][C](0.7938 )[/C][C](0.0258 )[/C][C](0.692 )[/C][C](0.9033 )[/C][/ROW]
[ROW][C]Estimates ( 2 )[/C][C]0.0957[/C][C]0.4962[/C][C]0.4716[/C][C]0[/C][/ROW]
[ROW][C](p-val)[/C][C](0.6705 )[/C][C](0.017 )[/C][C](1e-04 )[/C][C](NA )[/C][/ROW]
[ROW][C]Estimates ( 3 )[/C][C]0[/C][C]0.5626[/C][C]0.4655[/C][C]0[/C][/ROW]
[ROW][C](p-val)[/C][C](NA )[/C][C](0 )[/C][C](1e-04 )[/C][C](NA )[/C][/ROW]
[ROW][C]Estimates ( 4 )[/C][C]NA[/C][C]NA[/C][C]NA[/C][C]NA[/C][/ROW]
[ROW][C](p-val)[/C][C](NA )[/C][C](NA )[/C][C](NA )[/C][C](NA )[/C][/ROW]
[ROW][C]Estimates ( 5 )[/C][C]NA[/C][C]NA[/C][C]NA[/C][C]NA[/C][/ROW]
[ROW][C](p-val)[/C][C](NA )[/C][C](NA )[/C][C](NA )[/C][C](NA )[/C][/ROW]
[ROW][C]Estimates ( 6 )[/C][C]NA[/C][C]NA[/C][C]NA[/C][C]NA[/C][/ROW]
[ROW][C](p-val)[/C][C](NA )[/C][C](NA )[/C][C](NA )[/C][C](NA )[/C][/ROW]
[ROW][C]Estimates ( 7 )[/C][C]NA[/C][C]NA[/C][C]NA[/C][C]NA[/C][/ROW]
[ROW][C](p-val)[/C][C](NA )[/C][C](NA )[/C][C](NA )[/C][C](NA )[/C][/ROW]
[/TABLE]
Source: https://freestatistics.org/blog/index.php?pk=31063&T=1

Globally Unique Identifier (entire table): ba.freestatistics.org/blog/index.php?pk=31063&T=1

As an alternative you can also use a QR Code:  

The GUIDs for individual cells are displayed in the table below:

ARIMA Parameter Estimation and Backward Selection
Iterationar1ma1sar1sma1
Estimates ( 1 )0.07620.50380.36390.1336
(p-val)(0.7938 )(0.0258 )(0.692 )(0.9033 )
Estimates ( 2 )0.09570.49620.47160
(p-val)(0.6705 )(0.017 )(1e-04 )(NA )
Estimates ( 3 )00.56260.46550
(p-val)(NA )(0 )(1e-04 )(NA )
Estimates ( 4 )NANANANA
(p-val)(NA )(NA )(NA )(NA )
Estimates ( 5 )NANANANA
(p-val)(NA )(NA )(NA )(NA )
Estimates ( 6 )NANANANA
(p-val)(NA )(NA )(NA )(NA )
Estimates ( 7 )NANANANA
(p-val)(NA )(NA )(NA )(NA )







Estimated ARIMA Residuals
Value
0.0608399470462866
-2.33447276478211
-0.0736376241977235
1.48337594941378
-2.18565672263538
-1.39952552712980
4.88507963711022
-4.1323646264961
3.50942478034472
2.23204464945204
-1.49524696747931
3.61389520255776
-0.092229885007423
-1.85928020595097
-5.93008430396747
-7.11403430860886
1.27198273723057
2.38849026684538
10.6476365307047
0.511675210722458
-1.63131268272538
-6.0253598890152
0.610410901477889
-0.0111190702455834
0.766714606576717
4.19470941040862
-0.441277722463451
0.150237773189046
1.79465012458388
-7.52839672141524
3.49679481138265
-4.59597088018502
4.07216920128932
1.58613482763106
0.287655080054725
2.12793717097136
1.19211914837042
-0.670131444707295
1.05777237397041
-0.0610489459192252
-3.22087397776394
-4.46136273166047
-5.61124909080726
-0.458541253797975
1.23297263996364
1.32750262372775
0.540041354794568
-0.462406596803604
0.156181122042383
-2.26864516525389
-1.46387402776715
3.15305424096901
-3.02200233183499
0.64030420400033
6.38469034730524
-1.8905439735356
-3.80191891249402
-0.230125964552364
-1.54705439932775
4.09504384882769
0.982645066806604
-0.130485878006930
-2.66928718808872
-1.63555632477777
-2.45907376140959
4.05273426905564
2.04729497504988
-1.42704765083132

\begin{tabular}{lllllllll}
\hline
Estimated ARIMA Residuals \tabularnewline
Value \tabularnewline
0.0608399470462866 \tabularnewline
-2.33447276478211 \tabularnewline
-0.0736376241977235 \tabularnewline
1.48337594941378 \tabularnewline
-2.18565672263538 \tabularnewline
-1.39952552712980 \tabularnewline
4.88507963711022 \tabularnewline
-4.1323646264961 \tabularnewline
3.50942478034472 \tabularnewline
2.23204464945204 \tabularnewline
-1.49524696747931 \tabularnewline
3.61389520255776 \tabularnewline
-0.092229885007423 \tabularnewline
-1.85928020595097 \tabularnewline
-5.93008430396747 \tabularnewline
-7.11403430860886 \tabularnewline
1.27198273723057 \tabularnewline
2.38849026684538 \tabularnewline
10.6476365307047 \tabularnewline
0.511675210722458 \tabularnewline
-1.63131268272538 \tabularnewline
-6.0253598890152 \tabularnewline
0.610410901477889 \tabularnewline
-0.0111190702455834 \tabularnewline
0.766714606576717 \tabularnewline
4.19470941040862 \tabularnewline
-0.441277722463451 \tabularnewline
0.150237773189046 \tabularnewline
1.79465012458388 \tabularnewline
-7.52839672141524 \tabularnewline
3.49679481138265 \tabularnewline
-4.59597088018502 \tabularnewline
4.07216920128932 \tabularnewline
1.58613482763106 \tabularnewline
0.287655080054725 \tabularnewline
2.12793717097136 \tabularnewline
1.19211914837042 \tabularnewline
-0.670131444707295 \tabularnewline
1.05777237397041 \tabularnewline
-0.0610489459192252 \tabularnewline
-3.22087397776394 \tabularnewline
-4.46136273166047 \tabularnewline
-5.61124909080726 \tabularnewline
-0.458541253797975 \tabularnewline
1.23297263996364 \tabularnewline
1.32750262372775 \tabularnewline
0.540041354794568 \tabularnewline
-0.462406596803604 \tabularnewline
0.156181122042383 \tabularnewline
-2.26864516525389 \tabularnewline
-1.46387402776715 \tabularnewline
3.15305424096901 \tabularnewline
-3.02200233183499 \tabularnewline
0.64030420400033 \tabularnewline
6.38469034730524 \tabularnewline
-1.8905439735356 \tabularnewline
-3.80191891249402 \tabularnewline
-0.230125964552364 \tabularnewline
-1.54705439932775 \tabularnewline
4.09504384882769 \tabularnewline
0.982645066806604 \tabularnewline
-0.130485878006930 \tabularnewline
-2.66928718808872 \tabularnewline
-1.63555632477777 \tabularnewline
-2.45907376140959 \tabularnewline
4.05273426905564 \tabularnewline
2.04729497504988 \tabularnewline
-1.42704765083132 \tabularnewline
\hline
\end{tabular}
%Source: https://freestatistics.org/blog/index.php?pk=31063&T=2

[TABLE]
[ROW][C]Estimated ARIMA Residuals[/C][/ROW]
[ROW][C]Value[/C][/ROW]
[ROW][C]0.0608399470462866[/C][/ROW]
[ROW][C]-2.33447276478211[/C][/ROW]
[ROW][C]-0.0736376241977235[/C][/ROW]
[ROW][C]1.48337594941378[/C][/ROW]
[ROW][C]-2.18565672263538[/C][/ROW]
[ROW][C]-1.39952552712980[/C][/ROW]
[ROW][C]4.88507963711022[/C][/ROW]
[ROW][C]-4.1323646264961[/C][/ROW]
[ROW][C]3.50942478034472[/C][/ROW]
[ROW][C]2.23204464945204[/C][/ROW]
[ROW][C]-1.49524696747931[/C][/ROW]
[ROW][C]3.61389520255776[/C][/ROW]
[ROW][C]-0.092229885007423[/C][/ROW]
[ROW][C]-1.85928020595097[/C][/ROW]
[ROW][C]-5.93008430396747[/C][/ROW]
[ROW][C]-7.11403430860886[/C][/ROW]
[ROW][C]1.27198273723057[/C][/ROW]
[ROW][C]2.38849026684538[/C][/ROW]
[ROW][C]10.6476365307047[/C][/ROW]
[ROW][C]0.511675210722458[/C][/ROW]
[ROW][C]-1.63131268272538[/C][/ROW]
[ROW][C]-6.0253598890152[/C][/ROW]
[ROW][C]0.610410901477889[/C][/ROW]
[ROW][C]-0.0111190702455834[/C][/ROW]
[ROW][C]0.766714606576717[/C][/ROW]
[ROW][C]4.19470941040862[/C][/ROW]
[ROW][C]-0.441277722463451[/C][/ROW]
[ROW][C]0.150237773189046[/C][/ROW]
[ROW][C]1.79465012458388[/C][/ROW]
[ROW][C]-7.52839672141524[/C][/ROW]
[ROW][C]3.49679481138265[/C][/ROW]
[ROW][C]-4.59597088018502[/C][/ROW]
[ROW][C]4.07216920128932[/C][/ROW]
[ROW][C]1.58613482763106[/C][/ROW]
[ROW][C]0.287655080054725[/C][/ROW]
[ROW][C]2.12793717097136[/C][/ROW]
[ROW][C]1.19211914837042[/C][/ROW]
[ROW][C]-0.670131444707295[/C][/ROW]
[ROW][C]1.05777237397041[/C][/ROW]
[ROW][C]-0.0610489459192252[/C][/ROW]
[ROW][C]-3.22087397776394[/C][/ROW]
[ROW][C]-4.46136273166047[/C][/ROW]
[ROW][C]-5.61124909080726[/C][/ROW]
[ROW][C]-0.458541253797975[/C][/ROW]
[ROW][C]1.23297263996364[/C][/ROW]
[ROW][C]1.32750262372775[/C][/ROW]
[ROW][C]0.540041354794568[/C][/ROW]
[ROW][C]-0.462406596803604[/C][/ROW]
[ROW][C]0.156181122042383[/C][/ROW]
[ROW][C]-2.26864516525389[/C][/ROW]
[ROW][C]-1.46387402776715[/C][/ROW]
[ROW][C]3.15305424096901[/C][/ROW]
[ROW][C]-3.02200233183499[/C][/ROW]
[ROW][C]0.64030420400033[/C][/ROW]
[ROW][C]6.38469034730524[/C][/ROW]
[ROW][C]-1.8905439735356[/C][/ROW]
[ROW][C]-3.80191891249402[/C][/ROW]
[ROW][C]-0.230125964552364[/C][/ROW]
[ROW][C]-1.54705439932775[/C][/ROW]
[ROW][C]4.09504384882769[/C][/ROW]
[ROW][C]0.982645066806604[/C][/ROW]
[ROW][C]-0.130485878006930[/C][/ROW]
[ROW][C]-2.66928718808872[/C][/ROW]
[ROW][C]-1.63555632477777[/C][/ROW]
[ROW][C]-2.45907376140959[/C][/ROW]
[ROW][C]4.05273426905564[/C][/ROW]
[ROW][C]2.04729497504988[/C][/ROW]
[ROW][C]-1.42704765083132[/C][/ROW]
[/TABLE]
Source: https://freestatistics.org/blog/index.php?pk=31063&T=2

Globally Unique Identifier (entire table): ba.freestatistics.org/blog/index.php?pk=31063&T=2

As an alternative you can also use a QR Code:  

The GUIDs for individual cells are displayed in the table below:

Estimated ARIMA Residuals
Value
0.0608399470462866
-2.33447276478211
-0.0736376241977235
1.48337594941378
-2.18565672263538
-1.39952552712980
4.88507963711022
-4.1323646264961
3.50942478034472
2.23204464945204
-1.49524696747931
3.61389520255776
-0.092229885007423
-1.85928020595097
-5.93008430396747
-7.11403430860886
1.27198273723057
2.38849026684538
10.6476365307047
0.511675210722458
-1.63131268272538
-6.0253598890152
0.610410901477889
-0.0111190702455834
0.766714606576717
4.19470941040862
-0.441277722463451
0.150237773189046
1.79465012458388
-7.52839672141524
3.49679481138265
-4.59597088018502
4.07216920128932
1.58613482763106
0.287655080054725
2.12793717097136
1.19211914837042
-0.670131444707295
1.05777237397041
-0.0610489459192252
-3.22087397776394
-4.46136273166047
-5.61124909080726
-0.458541253797975
1.23297263996364
1.32750262372775
0.540041354794568
-0.462406596803604
0.156181122042383
-2.26864516525389
-1.46387402776715
3.15305424096901
-3.02200233183499
0.64030420400033
6.38469034730524
-1.8905439735356
-3.80191891249402
-0.230125964552364
-1.54705439932775
4.09504384882769
0.982645066806604
-0.130485878006930
-2.66928718808872
-1.63555632477777
-2.45907376140959
4.05273426905564
2.04729497504988
-1.42704765083132



Parameters (Session):
par1 = 60 ; par2 = 2.0 ; par3 = 1 ; par4 = 1 ; par5 = 12 ;
Parameters (R input):
par1 = FALSE ; par2 = 2.0 ; par3 = 1 ; par4 = 0 ; par5 = 12 ; par6 = 1 ; par7 = 1 ; par8 = 1 ; par9 = 1 ;
R code (references can be found in the software module):
library(lattice)
if (par1 == 'TRUE') par1 <- TRUE
if (par1 == 'FALSE') par1 <- FALSE
par2 <- as.numeric(par2) #Box-Cox lambda transformation parameter
par3 <- as.numeric(par3) #degree of non-seasonal differencing
par4 <- as.numeric(par4) #degree of seasonal differencing
par5 <- as.numeric(par5) #seasonal period
par6 <- as.numeric(par6) #degree (p) of the non-seasonal AR(p) polynomial
par7 <- as.numeric(par7) #degree (q) of the non-seasonal MA(q) polynomial
par8 <- as.numeric(par8) #degree (P) of the seasonal AR(P) polynomial
par9 <- as.numeric(par9) #degree (Q) of the seasonal MA(Q) polynomial
armaGR <- function(arima.out, names, n){
try1 <- arima.out$coef
try2 <- sqrt(diag(arima.out$var.coef))
try.data.frame <- data.frame(matrix(NA,ncol=4,nrow=length(names)))
dimnames(try.data.frame) <- list(names,c('coef','std','tstat','pv'))
try.data.frame[,1] <- try1
for(i in 1:length(try2)) try.data.frame[which(rownames(try.data.frame)==names(try2)[i]),2] <- try2[i]
try.data.frame[,3] <- try.data.frame[,1] / try.data.frame[,2]
try.data.frame[,4] <- round((1-pt(abs(try.data.frame[,3]),df=n-(length(try2)+1)))*2,5)
vector <- rep(NA,length(names))
vector[is.na(try.data.frame[,4])] <- 0
maxi <- which.max(try.data.frame[,4])
continue <- max(try.data.frame[,4],na.rm=TRUE) > .05
vector[maxi] <- 0
list(summary=try.data.frame,next.vector=vector,continue=continue)
}
arimaSelect <- function(series, order=c(13,0,0), seasonal=list(order=c(2,0,0),period=12), include.mean=F){
nrc <- order[1]+order[3]+seasonal$order[1]+seasonal$order[3]
coeff <- matrix(NA, nrow=nrc*2, ncol=nrc)
pval <- matrix(NA, nrow=nrc*2, ncol=nrc)
mylist <- rep(list(NULL), nrc)
names <- NULL
if(order[1] > 0) names <- paste('ar',1:order[1],sep='')
if(order[3] > 0) names <- c( names , paste('ma',1:order[3],sep='') )
if(seasonal$order[1] > 0) names <- c(names, paste('sar',1:seasonal$order[1],sep=''))
if(seasonal$order[3] > 0) names <- c(names, paste('sma',1:seasonal$order[3],sep=''))
arima.out <- arima(series, order=order, seasonal=seasonal, include.mean=include.mean, method='ML')
mylist[[1]] <- arima.out
last.arma <- armaGR(arima.out, names, length(series))
mystop <- FALSE
i <- 1
coeff[i,] <- last.arma[[1]][,1]
pval [i,] <- last.arma[[1]][,4]
i <- 2
aic <- arima.out$aic
while(!mystop){
mylist[[i]] <- arima.out
arima.out <- arima(series, order=order, seasonal=seasonal, include.mean=include.mean, method='ML', fixed=last.arma$next.vector)
aic <- c(aic, arima.out$aic)
last.arma <- armaGR(arima.out, names, length(series))
mystop <- !last.arma$continue
coeff[i,] <- last.arma[[1]][,1]
pval [i,] <- last.arma[[1]][,4]
i <- i+1
}
list(coeff, pval, mylist, aic=aic)
}
arimaSelectplot <- function(arimaSelect.out,noms,choix){
noms <- names(arimaSelect.out[[3]][[1]]$coef)
coeff <- arimaSelect.out[[1]]
k <- min(which(is.na(coeff[,1])))-1
coeff <- coeff[1:k,]
pval <- arimaSelect.out[[2]][1:k,]
aic <- arimaSelect.out$aic[1:k]
coeff[coeff==0] <- NA
n <- ncol(coeff)
if(missing(choix)) choix <- k
layout(matrix(c(1,1,1,2,
3,3,3,2,
3,3,3,4,
5,6,7,7),nr=4),
widths=c(10,35,45,15),
heights=c(30,30,15,15))
couleurs <- rainbow(75)[1:50]#(50)
ticks <- pretty(coeff)
par(mar=c(1,1,3,1))
plot(aic,k:1-.5,type='o',pch=21,bg='blue',cex=2,axes=F,lty=2,xpd=NA)
points(aic[choix],k-choix+.5,pch=21,cex=4,bg=2,xpd=NA)
title('aic',line=2)
par(mar=c(3,0,0,0))
plot(0,axes=F,xlab='',ylab='',xlim=range(ticks),ylim=c(.1,1))
rect(xleft = min(ticks) + (0:49)/50*(max(ticks)-min(ticks)),
xright = min(ticks) + (1:50)/50*(max(ticks)-min(ticks)),
ytop = rep(1,50),
ybottom= rep(0,50),col=couleurs,border=NA)
axis(1,ticks)
rect(xleft=min(ticks),xright=max(ticks),ytop=1,ybottom=0)
text(mean(coeff,na.rm=T),.5,'coefficients',cex=2,font=2)
par(mar=c(1,1,3,1))
image(1:n,1:k,t(coeff[k:1,]),axes=F,col=couleurs,zlim=range(ticks))
for(i in 1:n) for(j in 1:k) if(!is.na(coeff[j,i])) {
if(pval[j,i]<.01) symb = 'green'
else if( (pval[j,i]<.05) & (pval[j,i]>=.01)) symb = 'orange'
else if( (pval[j,i]<.1) & (pval[j,i]>=.05)) symb = 'red'
else symb = 'black'
polygon(c(i+.5 ,i+.2 ,i+.5 ,i+.5),
c(k-j+0.5,k-j+0.5,k-j+0.8,k-j+0.5),
col=symb)
if(j==choix) {
rect(xleft=i-.5,
xright=i+.5,
ybottom=k-j+1.5,
ytop=k-j+.5,
lwd=4)
text(i,
k-j+1,
round(coeff[j,i],2),
cex=1.2,
font=2)
}
else{
rect(xleft=i-.5,xright=i+.5,ybottom=k-j+1.5,ytop=k-j+.5)
text(i,k-j+1,round(coeff[j,i],2),cex=1.2,font=1)
}
}
axis(3,1:n,noms)
par(mar=c(0.5,0,0,0.5))
plot(0,axes=F,xlab='',ylab='',type='n',xlim=c(0,8),ylim=c(-.2,.8))
cols <- c('green','orange','red','black')
niv <- c('0','0.01','0.05','0.1')
for(i in 0:3){
polygon(c(1+2*i ,1+2*i ,1+2*i-.5 ,1+2*i),
c(.4 ,.7 , .4 , .4),
col=cols[i+1])
text(2*i,0.5,niv[i+1],cex=1.5)
}
text(8,.5,1,cex=1.5)
text(4,0,'p-value',cex=2)
box()
residus <- arimaSelect.out[[3]][[choix]]$res
par(mar=c(1,2,4,1))
acf(residus,main='')
title('acf',line=.5)
par(mar=c(1,2,4,1))
pacf(residus,main='')
title('pacf',line=.5)
par(mar=c(2,2,4,1))
qqnorm(residus,main='')
title('qq-norm',line=.5)
qqline(residus)
residus
}
if (par2 == 0) x <- log(x)
if (par2 != 0) x <- x^par2
(selection <- arimaSelect(x, order=c(par6,par3,par7), seasonal=list(order=c(par8,par4,par9), period=par5)))
bitmap(file='test1.png')
resid <- arimaSelectplot(selection)
dev.off()
resid
bitmap(file='test2.png')
acf(resid,length(resid)/2, main='Residual Autocorrelation Function')
dev.off()
bitmap(file='test3.png')
pacf(resid,length(resid)/2, main='Residual Partial Autocorrelation Function')
dev.off()
bitmap(file='test4.png')
cpgram(resid, main='Residual Cumulative Periodogram')
dev.off()
bitmap(file='test5.png')
hist(resid, main='Residual Histogram', xlab='values of Residuals')
dev.off()
bitmap(file='test6.png')
densityplot(~resid,col='black',main='Residual Density Plot', xlab='values of Residuals')
dev.off()
bitmap(file='test7.png')
qqnorm(resid, main='Residual Normal Q-Q Plot')
qqline(resid)
dev.off()
ncols <- length(selection[[1]][1,])
nrows <- length(selection[[2]][,1])-1
load(file='createtable')
a<-table.start()
a<-table.row.start(a)
a<-table.element(a,'ARIMA Parameter Estimation and Backward Selection', ncols+1,TRUE)
a<-table.row.end(a)
a<-table.row.start(a)
a<-table.element(a,'Iteration', header=TRUE)
for (i in 1:ncols) {
a<-table.element(a,names(selection[[3]][[1]]$coef)[i],header=TRUE)
}
a<-table.row.end(a)
for (j in 1:nrows) {
a<-table.row.start(a)
mydum <- 'Estimates ('
mydum <- paste(mydum,j)
mydum <- paste(mydum,')')
a<-table.element(a,mydum, header=TRUE)
for (i in 1:ncols) {
a<-table.element(a,round(selection[[1]][j,i],4))
}
a<-table.row.end(a)
a<-table.row.start(a)
a<-table.element(a,'(p-val)', header=TRUE)
for (i in 1:ncols) {
mydum <- '('
mydum <- paste(mydum,round(selection[[2]][j,i],4),sep='')
mydum <- paste(mydum,')')
a<-table.element(a,mydum)
}
a<-table.row.end(a)
}
a<-table.end(a)
table.save(a,file='mytable.tab')
a<-table.start()
a<-table.row.start(a)
a<-table.element(a,'Estimated ARIMA Residuals', 1,TRUE)
a<-table.row.end(a)
a<-table.row.start(a)
a<-table.element(a,'Value', 1,TRUE)
a<-table.row.end(a)
for (i in (par4*par5+par3):length(resid)) {
a<-table.row.start(a)
a<-table.element(a,resid[i])
a<-table.row.end(a)
}
a<-table.end(a)
table.save(a,file='mytable1.tab')