Home » date » 2010 » Dec » 21 »

ARIMA Backward

*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: Tue, 21 Dec 2010 16:44:50 +0000
 
Cite this page as follows:
Statistical Computations at FreeStatistics.org, Office for Research Development and Education, URL http://www.freestatistics.org/blog/date/2010/Dec/21/t1292949756iagxejgfaqzf0gc.htm/, Retrieved Tue, 21 Dec 2010 17:42:36 +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/2010/Dec/21/t1292949756iagxejgfaqzf0gc.htm/},
    year = {2010},
}
@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 = {2010},
    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 «
143827 145191 146832 148577 149873 151847 153252 154292 155657 156523 156416 156693 160312 160438 160882 161668 164391 168556 169738 170387 171294 172202 172651 172770 178366 180014 181067 182586 184957 186417 188599 189490 190264 191221 191110 190674 195438 196393 197172 198760 200945 203845 204613 205487 206100 206315 206291 207801 211653 211325 211893 212056 214696 217455 218884 219816 219984 219062 218550 218179 222218 222196 223393 223292 226236 228831 228745 229140 229270 229359 230006 228810 232677 232961 234629 235660 240024 243554 244368 244356 245126 246321 246797 246735 251083 251786 252732 255051 259022 261698 263891 265247 262228 263429 264305 266371 273248 275472 278146 279506 283991 286794 288703 289285 288869 286942 285833 284095 289229 289389 290793 291454 294733 293853 294056 293982 293075 292391
 
Output produced by software:


Summary of computational transaction
Raw Inputview raw input (R code)
Raw Outputview raw output of R engine
Computing time12 seconds
R Server'Sir Ronald Aylmer Fisher' @ 193.190.124.24


ARIMA Parameter Estimation and Backward Selection
Iterationar1ar2ar3ma1sar1sar2sma1
Estimates ( 1 )0.13020.16070.03770.1411-0.1698-0.1487-0.5497
(p-val)(0.9203 )(0.6584 )(0.8557 )(0.9133 )(0.4158 )(0.3789 )(0.0098 )
Estimates ( 2 )00.19670.05260.2705-0.1685-0.1479-0.5511
(p-val)(NA )(0.0497 )(0.5975 )(0.0068 )(0.4171 )(0.3798 )(0.0092 )
Estimates ( 3 )00.199100.2757-0.1478-0.1258-0.5701
(p-val)(NA )(0.0448 )(NA )(0.0069 )(0.467 )(0.4385 )(0.0059 )
Estimates ( 4 )00.202500.26810-0.045-0.6913
(p-val)(NA )(0.041 )(NA )(0.008 )(NA )(0.7212 )(0 )
Estimates ( 5 )00.204900.269900-0.7065
(p-val)(NA )(0.0384 )(NA )(0.0075 )(NA )(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
-467.101549728192
-961.2841838931
-672.219778152258
-403.833776777392
1478.94495866907
1561.89000749308
-841.84008297984
-465.018283499529
-222.372377850130
139.878773515397
462.37717062423
-350.770271776317
1477.54792193219
564.368471684446
-357.26544219681
194.717565564439
195.610039576463
-1695.44592340072
1227.28842595788
51.8988846525882
-494.917786173692
175.375156452688
-284.417809015602
-543.35790365646
183.235427417227
-106.279529653562
-241.122505788264
296.483082947112
18.8043026231285
467.674362524635
-1001.99848843695
167.987573662255
-236.858417456894
-617.955828663289
162.697318705982
1591.35929707189
-1222.14530486316
-1283.79058790923
147.131744023031
-1014.79732337969
805.168982706046
113.117033899545
1.56627514619948
53.3671098760298
-724.817585397542
-1384.17880813326
-47.6514571932833
-571.270128341611
-129.680819331931
-396.39162761284
554.473256143423
-1121.08156303550
829.821957046003
-46.5126646024741
-1592.02119748333
-50.6509458600334
-193.637540883136
64.565650278995
863.111808126184
-1555.24171716637
-219.808579994871
158.202749087974
765.91250469973
143.898396398694
1665.35422936230
383.621682882817
-563.903137112155
-765.536599964605
493.773645661883
1008.89852130237
14.0352147583916
-75.9493215194762
112.389714512370
258.248669025779
-304.901097065889
1508.34164236212
528.819301540063
-688.854301973311
1252.97555759235
549.395003360968
-3998.13096773772
1636.45486458747
974.581285194536
1766.21055196132
2015.64538358351
769.926475677125
869.457844285297
-467.308711921913
992.242042575855
-290.602158163746
454.293696659393
-337.173195967221
114.040129590511
-2556.67735892686
-863.397628858826
-1497.23180249038
801.552247897746
-595.387820026331
-51.0163655674337
-374.857469657872
-260.447860478846
-3537.31822057027
-187.368871940811
60.5955275039566
-328.275660649882
-293.033538362463
 
Charts produced by software:
http://www.freestatistics.org/blog/date/2010/Dec/21/t1292949756iagxejgfaqzf0gc/1iocj1292949877.png (open in new window)
http://www.freestatistics.org/blog/date/2010/Dec/21/t1292949756iagxejgfaqzf0gc/1iocj1292949877.ps (open in new window)


http://www.freestatistics.org/blog/date/2010/Dec/21/t1292949756iagxejgfaqzf0gc/2iocj1292949877.png (open in new window)
http://www.freestatistics.org/blog/date/2010/Dec/21/t1292949756iagxejgfaqzf0gc/2iocj1292949877.ps (open in new window)


http://www.freestatistics.org/blog/date/2010/Dec/21/t1292949756iagxejgfaqzf0gc/3iocj1292949877.png (open in new window)
http://www.freestatistics.org/blog/date/2010/Dec/21/t1292949756iagxejgfaqzf0gc/3iocj1292949877.ps (open in new window)


http://www.freestatistics.org/blog/date/2010/Dec/21/t1292949756iagxejgfaqzf0gc/4bftl1292949877.png (open in new window)
http://www.freestatistics.org/blog/date/2010/Dec/21/t1292949756iagxejgfaqzf0gc/4bftl1292949877.ps (open in new window)


http://www.freestatistics.org/blog/date/2010/Dec/21/t1292949756iagxejgfaqzf0gc/5bftl1292949877.png (open in new window)
http://www.freestatistics.org/blog/date/2010/Dec/21/t1292949756iagxejgfaqzf0gc/5bftl1292949877.ps (open in new window)


http://www.freestatistics.org/blog/date/2010/Dec/21/t1292949756iagxejgfaqzf0gc/6bftl1292949877.png (open in new window)
http://www.freestatistics.org/blog/date/2010/Dec/21/t1292949756iagxejgfaqzf0gc/6bftl1292949877.ps (open in new window)


http://www.freestatistics.org/blog/date/2010/Dec/21/t1292949756iagxejgfaqzf0gc/7bftl1292949877.png (open in new window)
http://www.freestatistics.org/blog/date/2010/Dec/21/t1292949756iagxejgfaqzf0gc/7bftl1292949877.ps (open in new window)


 
Parameters (Session):
par1 = 1 ; par2 = Do not include Seasonal Dummies ; par3 = No Linear Trend ;
 
Parameters (R input):
par1 = FALSE ; par2 = 1 ; par3 = 1 ; par4 = 1 ; 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