Home
»
date
»
2009
»
Dec
»
07
»
ws 9 revieuw 1
*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, 07 Dec 2009 12:09:54 -0700
Cite this page as follows:
Statistical Computations at FreeStatistics.org
, Office for Research Development and Education, URL
http://www.freestatistics.org/blog/date/2009/Dec/07/t1260213064w0rxoyq5ea0opvv.htm/
, Retrieved Thu, 23 May 2013 02:17:15 +0000
Original text written by user:
IsPrivate?
No (this computation is public)
User-defined keywords:
System-generated keywords (parent):
t1259784816l416mre27a847ef (pk = 62567)
Estimated Impact
34
Dataseries X:
»
Textfile
« »
CSV
« »
Stem and Leaf
« »
Histogram
« »
Kernel Density
« »
Harrell-Davis Quantiles
« »
Central Tendency
« »
Variability
«
161 149 139 135 130 127 122 117 112 113 149 157 157 147 137 132 125 123 117 114 111 112 144 150 149 134 123 116 117 111 105 102 95 93 124 130 124 115 106 105 105 101 95 93 84 87 116 120 117 109 105 107 109 109 108 107 99 103 131 137
Output produced by software:
Summary of computational transaction
Raw Input
view raw input (R code)
Raw Output
view raw output of R engine
Computing time
8 seconds
R Server
'Gwilym Jenkins' @ 72.249.127.135
ARIMA Parameter Estimation and Backward Selection
Iteration
ar1
ar2
ar3
ma1
sar1
sar2
sma1
Estimates ( 1 )
0.0465
0.1616
0.0718
-0.0491
-0.0039
-0.4474
-0.3992
(p-val)
(0.9691 )
(0.3197 )
(0.7745 )
(0.9674 )
(0.9961 )
(0.105 )
(0.7192 )
Estimates ( 2 )
0.0479
0.1618
0.0717
-0.0505
0
-0.4465
-0.4044
(p-val)
(0.9681 )
(0.3128 )
(0.7749 )
(0.9664 )
(NA )
(0.0285 )
(0.0758 )
Estimates ( 3 )
0
0.1626
0.0793
-0.0029
0
-0.4475
-0.4053
(p-val)
(NA )
(0.3041 )
(0.6078 )
(0.9842 )
(NA )
(0.0265 )
(0.0748 )
Estimates ( 4 )
0
0.1624
0.0794
0
0
-0.4471
-0.4061
(p-val)
(NA )
(0.3036 )
(0.6065 )
(NA )
(NA )
(0.0257 )
(0.0692 )
Estimates ( 5 )
0
0.1749
0
0
0
-0.4797
-0.3911
(p-val)
(NA )
(0.2597 )
(NA )
(NA )
(NA )
(0.0082 )
(0.0776 )
Estimates ( 6 )
0
0
0
0
0
-0.4101
-0.3938
(p-val)
(NA )
(NA )
(NA )
(NA )
(NA )
(0.0212 )
(0.0717 )
Estimates ( 7 )
0
0
0
0
0
-0.3986
0
(p-val)
(NA )
(NA )
(NA )
(NA )
(NA )
(0.0291 )
(NA )
Estimates ( 8 )
NA
NA
NA
NA
NA
NA
NA
(p-val)
(NA )
(NA )
(NA )
(NA )
(NA )
(NA )
(NA )
Estimates ( 9 )
NA
NA
NA
NA
NA
NA
NA
(p-val)
(NA )
(NA )
(NA )
(NA )
(NA )
(NA )
(NA )
Estimates ( 10 )
NA
NA
NA
NA
NA
NA
NA
(p-val)
(NA )
(NA )
(NA )
(NA )
(NA )
(NA )
(NA )
Estimates ( 11 )
NA
NA
NA
NA
NA
NA
NA
(p-val)
(NA )
(NA )
(NA )
(NA )
(NA )
(NA )
(NA )
Estimates ( 12 )
NA
NA
NA
NA
NA
NA
NA
(p-val)
(NA )
(NA )
(NA )
(NA )
(NA )
(NA )
(NA )
Estimates ( 13 )
NA
NA
NA
NA
NA
NA
NA
(p-val)
(NA )
(NA )
(NA )
(NA )
(NA )
(NA )
(NA )
Estimated ARIMA Residuals
Value
-0.000794860158580226
-0.000631716030117255
7.29948847092742e-05
0.000476133587185272
0.00101384313568878
-0.000418164871746279
0.00062249126132422
-0.000946511263701338
-0.00103619497667827
-6.94763856858096e-06
0.00139723592555621
0.000617810913288573
0.000378268369659479
0.00232475982088345
0.00106191212510762
0.00150312559526330
-0.00362726350250921
0.00223084398177442
0.000581060555838996
5.37457631322498e-05
0.00276894649415765
0.00197916387383695
-0.00282830421436498
-0.000371836475765770
0.00256058315063939
-0.00131151336907214
0.000363387184239698
-0.00268874426354388
-0.000127082336430508
-0.00034757134386072
0.00103091925801027
-0.00094931696361829
0.00296399799752283
-0.00366283389959159
-0.000704798149264338
0.00103586789163999
-0.000436316459788982
0.000416441918643745
-0.00255687599950382
-0.00246647754329117
-0.00321915955397042
-0.00193275012712133
-0.00334314554342199
-0.00119304583276698
0.000402314156359677
-0.000679602825521967
0.00257325936445625
-0.000494003328728019
Charts produced by software:
http://www.freestatistics.org/blog/date/2009/Dec/07/t1260213064w0rxoyq5ea0opvv/10e9p1260212985.png (
opens in new window
)
http://www.freestatistics.org/blog/date/2009/Dec/07/t1260213064w0rxoyq5ea0opvv/10e9p1260212985.ps (
opens in new window
)
Click here to open pdf file.
http://www.freestatistics.org/blog/date/2009/Dec/07/t1260213064w0rxoyq5ea0opvv/21wag1260212985.png (
opens in new window
)
http://www.freestatistics.org/blog/date/2009/Dec/07/t1260213064w0rxoyq5ea0opvv/21wag1260212985.ps (
opens in new window
)
Click here to open pdf file.
http://www.freestatistics.org/blog/date/2009/Dec/07/t1260213064w0rxoyq5ea0opvv/3uqcn1260212985.png (
opens in new window
)
http://www.freestatistics.org/blog/date/2009/Dec/07/t1260213064w0rxoyq5ea0opvv/3uqcn1260212985.ps (
opens in new window
)
Click here to open pdf file.
http://www.freestatistics.org/blog/date/2009/Dec/07/t1260213064w0rxoyq5ea0opvv/4ln451260212985.png (
opens in new window
)
http://www.freestatistics.org/blog/date/2009/Dec/07/t1260213064w0rxoyq5ea0opvv/4ln451260212985.ps (
opens in new window
)
Click here to open pdf file.
http://www.freestatistics.org/blog/date/2009/Dec/07/t1260213064w0rxoyq5ea0opvv/5bovo1260212985.png (
opens in new window
)
http://www.freestatistics.org/blog/date/2009/Dec/07/t1260213064w0rxoyq5ea0opvv/5bovo1260212985.ps (
opens in new window
)
Click here to open pdf file.
http://www.freestatistics.org/blog/date/2009/Dec/07/t1260213064w0rxoyq5ea0opvv/62nmn1260212985.png (
opens in new window
)
http://www.freestatistics.org/blog/date/2009/Dec/07/t1260213064w0rxoyq5ea0opvv/62nmn1260212985.ps (
opens in new window
)
Click here to open pdf file.
http://www.freestatistics.org/blog/date/2009/Dec/07/t1260213064w0rxoyq5ea0opvv/7j2xs1260212985.png (
opens in new window
)
http://www.freestatistics.org/blog/date/2009/Dec/07/t1260213064w0rxoyq5ea0opvv/7j2xs1260212985.ps (
opens in new window
)
Click here to open pdf file.
Parameters (Session):
par1 = FALSE ; par2 = -0.3 ; par3 = 1 ; par4 = 1 ; par5 = 12 ; par6 = 3 ; par7 = 1 ; par8 = 2 ; par9 = 1 ;
Parameters (R input):
par1 = FALSE ; par2 = -0.3 ; 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')