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:41:16 -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/t1229272987zeyherazjv2v0bj.htm/, Retrieved Sun, 14 Dec 2008 17:43:14 +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/t1229272987zeyherazjv2v0bj.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 time4 seconds
R Server'George Udny Yule' @ 72.249.76.132


ARIMA Parameter Estimation and Backward Selection
Iterationma1sar1sar2sma1
Estimates ( 1 )-0.25611.1146-0.1164-0.9606
(p-val)(0.004 )(0 )(0.2294 )(0 )
Estimates ( 2 )-0.23540.98490-0.8739
(p-val)(0.007 )(0 )(NA )(0 )
Estimates ( 3 )NANANANA
(p-val)(NA )(NA )(NA )(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
205.596839405776
-100.747106109485
4584.97490101285
2651.53553150281
4131.18503470682
2929.49146304147
1127.69885204641
1634.19164561746
-39.0147456570568
777.909443306168
669.987617778088
678.713523979719
1296.38097601129
1026.43548786398
-574.155444255950
-2268.61134593159
-27.3266312137918
1198.72439599202
50.5162520108971
169.428128463084
-332.700754469564
1066.92919545254
1426.30012265468
246.002895386602
-1351.90010673312
-658.317675878672
-1002.59549722200
2474.06988417793
-426.796112236585
-1185.87862679812
455.819790273556
1714.17060642557
-867.449980954278
-813.944838825097
1285.29071005640
-780.000366504814
3015.71096464712
-4291.89019534832
126.482021451331
915.3466023201
407.482197590447
-616.989228623685
646.5756240741
461.650541084689
-339.465969748828
817.129349833403
-380.227590292473
378.480018558431
-3144.34211187926
-4199.91875606576
774.145763423132
-1283.23861185205
704.291515184354
-1632.26553971863
1813.87110131145
392.349883596606
-849.003646326487
-216.300851634906
1307.33398311938
-1778.27342990182
699.511966842762
-943.875359614246
48.2101570761664
-2168.66748774071
1349.82289153312
-2026.48167938862
-364.065864234664
-426.974213408986
-1363.39378623934
425.974535718426
-1156.09297505651
-225.13806701926
-171.30919175561
-1881.13336339162
-1193.25428620153
4389.39111111784
-354.968809549481
-1016.06128023734
578.051180284323
-832.558124577877
1115.34475301688
994.725830127086
1914.49907782330
-2369.22332117471
-1127.56189040883
-1017.06142772209
1863.69626740171
-1403.49323521187
3691.91062137701
33.6024810595725
-1640.82831855390
-1252.05406595932
-656.259716910533
-19.2548830619768
1683.97656543391
-24.5113912385019
3033.39378754304
-4517.62313200686
194.675043538541
-321.071337060261
884.525015343533
-249.810916427683
566.381669788099
-565.719048260723
-68.1812123536794
1758.41329644584
911.23824092129
-512.831553678084
-511.511710595294
-1180.93114791292
779.956521136175
-1415.60368891545
2465.21333687915
-1975.80842599165
-861.661209872685
-1355.52851148865
-2169.99391761234
-770.090995427353
1405.67914344649
569.077423087425
962.308495780622
2157.91737344327
1697.23919095996
1465.93516563306
-3953.41857671916
-3294.43378774709
1002.52509953939
-939.865807729824
6351.47423726857
-67.0968585561543
-2516.74400330153
-2511.5792313279
-333.228623749003
-1642.12012469236
3166.40169161045
756.566818905178
-270.054981562355
-3181.51562863475
2465.97697413389
-932.996709167431
835.528906029946
-1569.53104160583
-86.7031062547982
-2994.35540706539
-4310.07308511881
2785.65137270675
1427.29864022553
-826.963126519195
1680.91482555026
-2406.98035684026
-2278.81161495824
1792.22725878331
2623.24519717677
22.5296182991279
-3327.86597559756
1135.3072299776
126.186988551503
363.429152457139
1987.55865611013
-3.74394616223833
583.424131962428
-528.058971179429
-4118.50514698954
-1966.63076658222
-937.354987992565
2273.06528870913
174.206088084427
-1181.33103610920
980.456855717555
-513.89342361949
-360.285871440408
1407.02228217397
3960.59961604039
-1131.80274640897
1560.53557226836
2639.71113160113
-1566.53986840171
599.730573166934
7460.831724174
-3595.56023128351
2914.22089110563
331.382655008704
-473.23617918856
1375.35977407242
-2990.98026735575
-74.6824552949737
844.98488457296
-1062.06006112244
-1106.61387516680
-215.646233030585
3153.98319394819
13356.5915800023
 
Charts produced by software:
http://127.0.0.1/wessadotnet/public_html/freestatisticsdotorg/blog/date/2008/Dec/14/t1229272987zeyherazjv2v0bj/13dvk1229272871.png (open in new window)
http://127.0.0.1/wessadotnet/public_html/freestatisticsdotorg/blog/date/2008/Dec/14/t1229272987zeyherazjv2v0bj/13dvk1229272871.ps (open in new window)


http://127.0.0.1/wessadotnet/public_html/freestatisticsdotorg/blog/date/2008/Dec/14/t1229272987zeyherazjv2v0bj/2arr71229272871.png (open in new window)
http://127.0.0.1/wessadotnet/public_html/freestatisticsdotorg/blog/date/2008/Dec/14/t1229272987zeyherazjv2v0bj/2arr71229272871.ps (open in new window)


http://127.0.0.1/wessadotnet/public_html/freestatisticsdotorg/blog/date/2008/Dec/14/t1229272987zeyherazjv2v0bj/33hm31229272871.png (open in new window)
http://127.0.0.1/wessadotnet/public_html/freestatisticsdotorg/blog/date/2008/Dec/14/t1229272987zeyherazjv2v0bj/33hm31229272871.ps (open in new window)


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


http://127.0.0.1/wessadotnet/public_html/freestatisticsdotorg/blog/date/2008/Dec/14/t1229272987zeyherazjv2v0bj/5bu981229272871.png (open in new window)
http://127.0.0.1/wessadotnet/public_html/freestatisticsdotorg/blog/date/2008/Dec/14/t1229272987zeyherazjv2v0bj/5bu981229272871.ps (open in new window)


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


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


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