Home » date » 2008 » Dec » 15 »

ARIMA Backward Selection

*The author of this computation has been verified*
R Software Module: rwasp_arimabackwardselection.wasp (opens new window with default values)
Title produced by software: ARIMA Backward Selection
Date of computation: Mon, 15 Dec 2008 13:28:38 -0700
 
Cite this page as follows:
Statistical Computations at FreeStatistics.org, Office for Research Development and Education, URL http://www.freestatistics.org/blog/date/2008/Dec/15/t1229373073sczaor5mqrd652y.htm/, Retrieved Mon, 15 Dec 2008 21:31:13 +0100
 
BibTeX entries for LaTeX users:
@Manual{KEY,
    author = {{YOUR NAME}},
    publisher = {Office for Research Development and Education},
    title = {Statistical Computations at FreeStatistics.org, URL http://www.freestatistics.org/blog/date/2008/Dec/15/t1229373073sczaor5mqrd652y.htm/},
    year = {2008},
}
@Manual{R,
    title = {R: A Language and Environment for Statistical Computing},
    author = {{R Development Core Team}},
    organization = {R Foundation for Statistical Computing},
    address = {Vienna, Austria},
    year = {2008},
    note = {{ISBN} 3-900051-07-0},
    url = {http://www.R-project.org},
}
 
Original text written by user:
 
IsPrivate?
No (this computation is public)
 
User-defined keywords:
 
Dataseries X:
» Textbox « » Textfile « » CSV «
205597 205471 211064 212856 217036 219302 219759 221388 220834 221788 222358 222972 224164 224915 226294 224690 227021 229284 229189 230032 229389 231053 232560 232681 231555 231428 232141 234939 235424 235471 236355 238693 236958 237060 239282 238252 241552 236230 238909 240723 242120 242100 243276 244677 243494 244902 245247 245578 243052 238121 241863 241203 243634 242351 245180 246126 244424 245166 247258 245094 246020 243082 245555 243685 247277 245029 246169 246778 244577 246048 245775 245328 245477 241903 243219 248088 248521 247389 249057 248916 249193 250768 253106 249829 249447 246755 250785 250140 255755 254671 253919 253741 252729 253810 256653 255231 258405 251061 254811 254895 258325 257608 258759 258621 257852 260560 262358 260812 261165 257164 260720 259581 264743 261845 262262 261631 258953 259966 262850 262204 263418 262752 266433 267722 266003 262971 265521 264676 270223 269508 268457 265814 266680 263018 269285 269829 270911 266844 271244 269907 271296 270157 271322 267179 264101 265518 269419 268714 272482 268351 268175 270674 272764 272599 270333 270846 270491 269160 274027 273784 276663 274525 271344 271115 270798 273911 273985 271917 273338 270601 273547 275363 281229 277793 279913 282500 280041 282166 290304 283519 287816 285226 287595 289741 289148 288301 290155 289648 288225 289351 294735 305333
 
Output produced by software:


Summary of computational transaction
Raw Inputview raw input (R code)
Raw Outputview raw output of R engine
Computing time11 seconds
R Server'Herman Ole Andreas Wold' @ 193.190.124.10:1001


ARIMA Parameter Estimation and Backward Selection
Iterationar1ar2ar3ma1sar1sma1
Estimates ( 1 )0.24340.0151-0.0464-0.49770.1033-0.9998
(p-val)(0.4791 )(0.9015 )(0.6496 )(0.1411 )(0.3076 )(0 )
Estimates ( 2 )0.21490-0.0492-0.4680.1023-0.9998
(p-val)(0.4272 )(NA )(0.6158 )(0.064 )(0.3102 )(1e-04 )
Estimates ( 3 )0.27200-0.52740.1172-0.9996
(p-val)(0.3063 )(NA )(NA )(0.0277 )(0.2222 )(3e-04 )
Estimates ( 4 )000-0.26410.1233-0.9997
(p-val)(NA )(NA )(NA )(0.0061 )(0.1984 )(0 )
Estimates ( 5 )000-0.24290-0.8946
(p-val)(NA )(NA )(NA )(0.0111 )(NA )(0 )
Estimates ( 6 )NANANANANANA
(p-val)(NA )(NA )(NA )(NA )(NA )(NA )
Estimates ( 7 )NANANANANANA
(p-val)(NA )(NA )(NA )(NA )(NA )(NA )
Estimates ( 8 )NANANANANANA
(p-val)(NA )(NA )(NA )(NA )(NA )(NA )
Estimates ( 9 )NANANANANANA
(p-val)(NA )(NA )(NA )(NA )(NA )(NA )
Estimates ( 10 )NANANANANANA
(p-val)(NA )(NA )(NA )(NA )(NA )(NA )
Estimates ( 11 )NANANANANANA
(p-val)(NA )(NA )(NA )(NA )(NA )(NA )


Estimated ARIMA Residuals
Value
-687.299215587455
634.510651311828
-2989.95387274653
-3333.05086568427
-2266.33030397089
-601.160066132213
-572.951090556036
-740.959346706209
-262.962204925828
462.104257989745
823.68250536494
-152.706024956773
-1746.69644903619
-823.915681181412
-2311.2855684853
1819.17087245978
-1735.1594980118
-2307.61701651483
4.90779046230937
960.391268028267
-689.912314334675
-1225.66845464831
614.674276675942
-978.214007626866
2650.45054480687
-4073.28042939850
-809.079268175477
223.005208833481
-560.61407983169
-1317.50261201739
250.510147888070
-215.534153331981
-144.489990424484
512.280696104591
-900.397389147888
245.564182948959
-3315.56844672157
-3665.4033364372
-19.8004769558522
-1779.67738275633
-128.439300933674
-2085.61293330689
1377.03677074229
-164.080567240688
-640.996216240064
-480.130349526114
838.377128871288
-1795.43018701680
653.808327099296
-373.413638602678
-600.983209791458
-2453.68058100696
581.839037790912
-2282.40151859855
-747.037949745312
-890.638298106612
-1127.60568579086
189.424529472590
-1519.57235471503
-209.692215334553
-221.250067810004
-1338.63393661144
-1710.61752495854
3992.43523908766
-965.64999166399
-1182.52073336020
248.732907574234
-1182.92078941381
1286.65695224083
767.902837322281
1562.34563539543
-2249.70531780720
-1132.38143677965
-511.927567422342
1361.63054736114
-1720.16005735296
3011.4517590451
-96.414390465552
-1867.44783284398
-1528.63425416686
-506.404799838822
-236.230952419378
1293.41655094492
89.7864900490472
2953.05550100405
-3912.38357902194
-287.612552751836
-587.20047824587
246.875511608574
-383.516891402948
346.899795347275
-783.38982458984
81.8379329358533
1525.47712181840
557.686412740294
-408.921662494766
-578.686354054127
-638.190094366125
348.725421443472
-1614.31850809666
1836.23241627799
-2033.31083350997
-1055.18831414857
-1537.15821181930
-1989.39177417962
-977.034733542916
1035.30274285717
644.021573500225
898.020207704394
2584.96361600774
1293.78869915620
1256.12418973997
-4389.90047996021
-3314.81098032824
777.5292255289
-1082.43842316972
6355.89378323041
-181.427628898801
-2759.80055805893
-2405.42021594371
-414.665357057758
-1224.96662018909
2699.97324919353
548.698997245382
-677.146719749133
-3127.25085525612
2207.83484999665
-1041.50706328445
844.219652237964
-1681.16979254851
-336.087576852493
-2824.63619479332
-4283.8868907949
3082.78816502054
1018.37321009155
-995.467196577083
1230.71405115358
-2331.17055693265
-2440.07275764220
1605.96991349513
2622.8730258076
-75.1614469417187
-3482.9600341981
1214.51703851165
140.775735458267
687.967275497079
1584.19074642952
-160.056425647255
166.024707564035
-489.467741380472
-4175.42245409604
-2103.12991175088
-921.41711440308
2090.44506819610
5.50834652991482
-1062.21824330365
940.566212282953
-177.140605721846
-711.744419568331
1208.51965480194
3507.41323541712
-1063.41747034715
1430.67802310181
2493.12467193044
-1466.92843976959
442.32397625832
7125.34676512188
-3362.97578310408
2820.12860039965
655.555742451225
-779.323373245361
1175.91965233318
-3318.74655622830
-76.3482472526865
691.905700199193
-1170.48763498763
-1040.00332992146
-347.5451039882
2840.47341663084
13244.9729149631
 
Charts produced by software:
http://127.0.0.1/wessadotnet/public_html/freestatisticsdotorg/blog/date/2008/Dec/15/t1229373073sczaor5mqrd652y/1n5lg1229372901.png (open in new window)
http://127.0.0.1/wessadotnet/public_html/freestatisticsdotorg/blog/date/2008/Dec/15/t1229373073sczaor5mqrd652y/1n5lg1229372901.ps (open in new window)


http://127.0.0.1/wessadotnet/public_html/freestatisticsdotorg/blog/date/2008/Dec/15/t1229373073sczaor5mqrd652y/254qn1229372901.png (open in new window)
http://127.0.0.1/wessadotnet/public_html/freestatisticsdotorg/blog/date/2008/Dec/15/t1229373073sczaor5mqrd652y/254qn1229372901.ps (open in new window)


http://127.0.0.1/wessadotnet/public_html/freestatisticsdotorg/blog/date/2008/Dec/15/t1229373073sczaor5mqrd652y/3ids41229372901.png (open in new window)
http://127.0.0.1/wessadotnet/public_html/freestatisticsdotorg/blog/date/2008/Dec/15/t1229373073sczaor5mqrd652y/3ids41229372901.ps (open in new window)


http://127.0.0.1/wessadotnet/public_html/freestatisticsdotorg/blog/date/2008/Dec/15/t1229373073sczaor5mqrd652y/4yijy1229372901.png (open in new window)
http://127.0.0.1/wessadotnet/public_html/freestatisticsdotorg/blog/date/2008/Dec/15/t1229373073sczaor5mqrd652y/4yijy1229372901.ps (open in new window)


http://127.0.0.1/wessadotnet/public_html/freestatisticsdotorg/blog/date/2008/Dec/15/t1229373073sczaor5mqrd652y/57c9h1229372901.png (open in new window)
http://127.0.0.1/wessadotnet/public_html/freestatisticsdotorg/blog/date/2008/Dec/15/t1229373073sczaor5mqrd652y/57c9h1229372901.ps (open in new window)


http://127.0.0.1/wessadotnet/public_html/freestatisticsdotorg/blog/date/2008/Dec/15/t1229373073sczaor5mqrd652y/6hir81229372901.png (open in new window)
http://127.0.0.1/wessadotnet/public_html/freestatisticsdotorg/blog/date/2008/Dec/15/t1229373073sczaor5mqrd652y/6hir81229372901.ps (open in new window)


http://127.0.0.1/wessadotnet/public_html/freestatisticsdotorg/blog/date/2008/Dec/15/t1229373073sczaor5mqrd652y/7jhw11229372901.png (open in new window)
http://127.0.0.1/wessadotnet/public_html/freestatisticsdotorg/blog/date/2008/Dec/15/t1229373073sczaor5mqrd652y/7jhw11229372901.ps (open in new window)


 
Parameters (Session):
par1 = FALSE ; par2 = 1 ; par3 = 1 ; par4 = 1 ; par5 = 12 ; par6 = 3 ; par7 = 1 ; par8 = 1 ; par9 = 1 ;
 
Parameters (R input):
par1 = FALSE ; par2 = 1 ; par3 = 1 ; par4 = 1 ; par5 = 12 ; par6 = 3 ; 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')
 





Copyright

Creative Commons License

This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 License.

Software written by Ed van Stee & Patrick Wessa


Disclaimer

Information provided on this web site is provided "AS IS" without warranty of any kind, either express or implied, including, without limitation, warranties of merchantability, fitness for a particular purpose, and noninfringement. We use reasonable efforts to include accurate and timely information and periodically update the information, and software without notice. However, we make no warranties or representations as to the accuracy or completeness of such information (or software), and we assume no liability or responsibility for errors or omissions in the content of this web site, or any software bugs in online applications. Your use of this web site is AT YOUR OWN RISK. Under no circumstances and under no legal theory shall we be liable to you or any other person for any direct, indirect, special, incidental, exemplary, or consequential damages arising from your access to, or use of, this web site.


Privacy Policy

We may request personal information to be submitted to our servers in order to be able to:

  • personalize online software applications according to your needs
  • enforce strict security rules with respect to the data that you upload (e.g. statistical data)
  • manage user sessions of online applications
  • alert you about important changes or upgrades in resources or applications

We NEVER allow other companies to directly offer registered users information about their products and services. Banner references and hyperlinks of third parties NEVER contain any personal data of the visitor.

We do NOT sell, nor transmit by any means, personal information, nor statistical data series uploaded by you to third parties.

We carefully protect your data from loss, misuse, alteration, and destruction. However, at any time, and under any circumstance you are solely responsible for managing your passwords, and keeping them secret.

We store a unique ANONYMOUS USER ID in the form of a small 'Cookie' on your computer. This allows us to track your progress when using this website which is necessary to create state-dependent features. The cookie is used for NO OTHER PURPOSE. At any time you may opt to disallow cookies from this website - this will not affect other features of this website.

We examine cookies that are used by third-parties (banner and online ads) very closely: abuse from third-parties automatically results in termination of the advertising contract without refund. We have very good reason to believe that the cookies that are produced by third parties (banner ads) do NOT cause any privacy or security risk.

FreeStatistics.org is safe. There is no need to download any software to use the applications and services contained in this website. Hence, your system's security is not compromised by their use, and your personal data - other than data you submit in the account application form, and the user-agent information that is transmitted by your browser - is never transmitted to our servers.

As a general rule, we do not log on-line behavior of individuals (other than normal logging of webserver 'hits'). However, in cases of abuse, hacking, unauthorized access, Denial of Service attacks, illegal copying, hotlinking, non-compliance with international webstandards (such as robots.txt), or any other harmful behavior, our system engineers are empowered to log, track, identify, publish, and ban misbehaving individuals - even if this leads to ban entire blocks of IP addresses, or disclosing user's identity.


FreeStatistics.org is powered by