Home » date » 2008 » Dec » 14 »

Backward Selection and ARIMA Parameter Estimation

*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: Sun, 14 Dec 2008 09:30:33 -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/14/t1229272578skpad8bunuptaac.htm/, Retrieved Sun, 14 Dec 2008 17:36:25 +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/14/t1229272578skpad8bunuptaac.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 time14 seconds
R Server'George Udny Yule' @ 72.249.76.132


ARIMA Parameter Estimation and Backward Selection
Iterationar1ar2ar3ma1sar1sar2sma1
Estimates ( 1 )0.18950.0293-0.0741-0.4381.0871-0.0882-0.9678
(p-val)(0.5584 )(0.7994 )(0.4327 )(0.1675 )(0 )(0.3817 )(0 )
Estimates ( 2 )0.08990-0.0787-0.34041.0783-0.0824-0.9397
(p-val)(0.7427 )(NA )(0.3752 )(0.1977 )(0 )(0.4112 )(0 )
Estimates ( 3 )00-0.081-0.25191.0729-0.0755-0.9523
(p-val)(NA )(NA )(0.3555 )(0.0032 )(0 )(0.4467 )(0 )
Estimates ( 4 )00-0.0963-0.24240.99240-0.9137
(p-val)(NA )(NA )(0.255 )(0.0036 )(0 )(NA )(0 )
Estimates ( 5 )000-0.23540.98490-0.8739
(p-val)(NA )(NA )(NA )(0.007 )(0 )(NA )(0 )
Estimates ( 6 )NANANANANANANA
(p-val)(NA )(NA )(NA )(NA )(NA )(NA )(NA )
Estimates ( 7 )NANANANANANANA
(p-val)(NA )(NA )(NA )(NA )(NA )(NA )(NA )
Estimates ( 8 )NANANANANANANA
(p-val)(NA )(NA )(NA )(NA )(NA )(NA )(NA )
Estimates ( 9 )NANANANANANANA
(p-val)(NA )(NA )(NA )(NA )(NA )(NA )(NA )
Estimates ( 10 )NANANANANANANA
(p-val)(NA )(NA )(NA )(NA )(NA )(NA )(NA )
Estimates ( 11 )NANANANANANANA
(p-val)(NA )(NA )(NA )(NA )(NA )(NA )(NA )
Estimates ( 12 )NANANANANANANA
(p-val)(NA )(NA )(NA )(NA )(NA )(NA )(NA )
Estimates ( 13 )NANANANANANANA
(p-val)(NA )(NA )(NA )(NA )(NA )(NA )(NA )


Estimated ARIMA Residuals
Value
205.596845413907
-102.691479222268
4661.25214163603
2606.40947620059
4140.47612506907
3369.11221319088
1349.1687210498
2039.99753377768
196.601009395971
871.864037244896
820.701541236408
826.292952398904
1468.93040349527
1088.16236101210
-159.897558490276
-1923.04596083928
407.953043901130
1386.80180147560
-80.2226752036255
314.021729732221
-212.689419220106
1114.17230380485
1463.67415706741
345.984586413716
-1051.29448438652
-404.45571383728
-1070.74674234014
2180.86163808172
-580.329329276605
-1258.95188520314
677.309255623581
1647.06481014820
-1034.52939230692
-713.211148760481
1544.16072090316
-792.546102859134
2902.76903815708
-4287.16664577921
-53.734154260392
1427.27829377512
-150.058708100537
-816.710361010448
785.302430160657
591.717362032966
-502.392149685531
767.961199480116
-265.202749467793
326.298635720684
-2782.37851432238
-4628.12435681823
857.645540217355
-1483.04981193726
263.463630503146
-1694.66000137950
1771.52900023819
431.841120844024
-1053.52205973960
5.39133745707705
1272.39294843253
-1811.07253671823
444.022177553242
-1202.19883951065
-42.2584407235661
-2301.73730850042
1294.69378372644
-2237.29261285837
-418.372359958837
-308.982807138677
-1643.93459984125
377.685824723267
-1132.93474151771
-474.808020013323
-35.1527742244513
-1997.37618921145
-1219.01917063795
4211.86763775479
-495.806218556947
-1355.68588947317
932.534466083714
-973.528948301285
913.232083934714
1053.38153881389
1674.94938214785
-2296.78965247752
-992.881091659165
-893.490725539004
1546.55789770689
-1107.28459912669
3569.11958582642
82.592809043615
-1754.65637518551
-1020.57659450775
-501.501989285411
-94.9759016750937
1725.26507924370
-270.528256831889
2992.32006595204
-4400.62284759098
414.692388429631
-157.535733147410
791.900217737055
-168.102331102327
331.268901376719
-609.089741991739
-105.910274506196
1785.2900186045
973.107756312226
-482.144678179278
-12.552850064332
-1401.94438595181
798.469979874936
-1507.00145940347
2418.17911726117
-1906.46316891971
-963.979052283937
-1165.79432112037
-2342.84980603192
-683.033211994213
1352.69416991687
384.980754519838
881.639282036913
2337.82661167494
1816.93747276481
1398.52712200787
-3631.38813928761
-3243.76126369935
1109.57190456934
-1430.32000692663
5917.00225305534
-166.136515886862
-2578.62453244851
-1773.85990192633
-228.693149644704
-1498.58955836353
3157.34108877441
862.690144732598
-871.103593510166
-3127.90013194825
2723.10856387888
-1090.2996080689
1167.22336441195
-1398.39279731428
-471.781060519955
-3044.22641770293
-4501.16666518776
2837.71815271436
1407.50762840561
-1182.67476934816
1899.46842415070
-2477.76954568838
-2099.05517024044
1972.88042865722
2462.79537011008
-390.211562326524
-3246.70284235479
1237.29451599629
-313.507858610006
417.971522161046
2182.01171617374
-132.754088088350
821.98777776299
-405.036704277358
-4393.87222739648
-1602.55602406286
-788.183873231944
1888.18195565563
-334.953420678941
-1046.76251421895
1268.96801752327
-432.71894316648
-345.710364162375
1534.71590748405
4002.47747117754
-1064.07471134760
1307.43070291376
2919.97605899392
-1912.99380873654
961.419664671588
7811.12433072743
-3893.69859599318
3212.65037081788
1005.71257790290
-979.351022145903
1846.68079540737
-2640.90955080933
16.6881543749549
1205.67268983331
-1027.39222495022
-1363.52068587415
-42.7909876029661
3875.85176096919
13057.2738303126
 
Charts produced by software:
http://127.0.0.1/wessadotnet/public_html/freestatisticsdotorg/blog/date/2008/Dec/14/t1229272578skpad8bunuptaac/1xc9y1229272217.png (open in new window)
http://127.0.0.1/wessadotnet/public_html/freestatisticsdotorg/blog/date/2008/Dec/14/t1229272578skpad8bunuptaac/1xc9y1229272217.ps (open in new window)


http://127.0.0.1/wessadotnet/public_html/freestatisticsdotorg/blog/date/2008/Dec/14/t1229272578skpad8bunuptaac/26fa11229272217.png (open in new window)
http://127.0.0.1/wessadotnet/public_html/freestatisticsdotorg/blog/date/2008/Dec/14/t1229272578skpad8bunuptaac/26fa11229272217.ps (open in new window)


http://127.0.0.1/wessadotnet/public_html/freestatisticsdotorg/blog/date/2008/Dec/14/t1229272578skpad8bunuptaac/397io1229272217.png (open in new window)
http://127.0.0.1/wessadotnet/public_html/freestatisticsdotorg/blog/date/2008/Dec/14/t1229272578skpad8bunuptaac/397io1229272217.ps (open in new window)


http://127.0.0.1/wessadotnet/public_html/freestatisticsdotorg/blog/date/2008/Dec/14/t1229272578skpad8bunuptaac/4pegj1229272217.png (open in new window)
http://127.0.0.1/wessadotnet/public_html/freestatisticsdotorg/blog/date/2008/Dec/14/t1229272578skpad8bunuptaac/4pegj1229272217.ps (open in new window)


http://127.0.0.1/wessadotnet/public_html/freestatisticsdotorg/blog/date/2008/Dec/14/t1229272578skpad8bunuptaac/544h81229272217.png (open in new window)
http://127.0.0.1/wessadotnet/public_html/freestatisticsdotorg/blog/date/2008/Dec/14/t1229272578skpad8bunuptaac/544h81229272217.ps (open in new window)


http://127.0.0.1/wessadotnet/public_html/freestatisticsdotorg/blog/date/2008/Dec/14/t1229272578skpad8bunuptaac/6f32e1229272217.png (open in new window)
http://127.0.0.1/wessadotnet/public_html/freestatisticsdotorg/blog/date/2008/Dec/14/t1229272578skpad8bunuptaac/6f32e1229272217.ps (open in new window)


http://127.0.0.1/wessadotnet/public_html/freestatisticsdotorg/blog/date/2008/Dec/14/t1229272578skpad8bunuptaac/7l75p1229272217.png (open in new window)
http://127.0.0.1/wessadotnet/public_html/freestatisticsdotorg/blog/date/2008/Dec/14/t1229272578skpad8bunuptaac/7l75p1229272217.ps (open in new window)


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