Free Statistics

of Irreproducible Research!

Author's title

Author*The author of this computation has been verified*
R Software Modulerwasp_arimabackwardselection.wasp
Title produced by softwareARIMA Backward Selection
Date of computationWed, 02 Dec 2009 17:02:30 -0700
Cite this page as followsStatistical Computations at FreeStatistics.org, Office for Research Development and Education, URL https://freestatistics.org/blog/index.php?v=date/2009/Dec/03/t1259798593ld8in5vm6rpktyg.htm/, Retrieved Fri, 19 Apr 2024 23:18:48 +0000
Statistical Computations at FreeStatistics.org, Office for Research Development and Education, URL https://freestatistics.org/blog/index.php?pk=62634, Retrieved Fri, 19 Apr 2024 23:18:48 +0000
QR Codes:

Original text written by user:
IsPrivate?No (this computation is public)
User-defined keywords
Estimated Impact167
Family? (F = Feedback message, R = changed R code, M = changed R Module, P = changed Parameters, D = changed Data)
-     [ARIMA Backward Selection] [Workshop 5: Q2] [2007-12-07 16:36:08] [0089dec2868056b990fdbd23bf9edb23]
- RMPD    [ARIMA Backward Selection] [PAPER] [2009-12-03 00:02:30] [2d9a0b3c2f25bb8f387fafb994d0d852] [Current]
Feedback Forum

Post a new message
Dataseries X:
595
591
589
584
573
567
569
621
629
628
612
595
597
593
590
580
574
573
573
620
626
620
588
566
557
561
549
532
526
511
499
555
565
542
527
510
514
517
508
493
490
469
478
528
534
518
506
502
516
528
533
536
537
524
536
587
597
581
564
564




Summary of computational transaction
Raw Inputview raw input (R code)
Raw Outputview raw output of R engine
Computing time3 seconds
R Server'Gwilym Jenkins' @ 72.249.127.135

\begin{tabular}{lllllllll}
\hline
Summary of computational transaction \tabularnewline
Raw Input & view raw input (R code)  \tabularnewline
Raw Output & view raw output of R engine  \tabularnewline
Computing time & 3 seconds \tabularnewline
R Server & 'Gwilym Jenkins' @ 72.249.127.135 \tabularnewline
\hline
\end{tabular}
%Source: https://freestatistics.org/blog/index.php?pk=62634&T=0

[TABLE]
[ROW][C]Summary of computational transaction[/C][/ROW]
[ROW][C]Raw Input[/C][C]view raw input (R code) [/C][/ROW]
[ROW][C]Raw Output[/C][C]view raw output of R engine [/C][/ROW]
[ROW][C]Computing time[/C][C]3 seconds[/C][/ROW]
[ROW][C]R Server[/C][C]'Gwilym Jenkins' @ 72.249.127.135[/C][/ROW]
[/TABLE]
Source: https://freestatistics.org/blog/index.php?pk=62634&T=0

Globally Unique Identifier (entire table): ba.freestatistics.org/blog/index.php?pk=62634&T=0

As an alternative you can also use a QR Code:  

The GUIDs for individual cells are displayed in the table below:

Summary of computational transaction
Raw Inputview raw input (R code)
Raw Outputview raw output of R engine
Computing time3 seconds
R Server'Gwilym Jenkins' @ 72.249.127.135







ARIMA Parameter Estimation and Backward Selection
Iterationar1ma1sma1
Estimates ( 1 )0.9072-0.7363-0.326
(p-val)(0 )(0 )(0.0743 )
Estimates ( 2 )0.8928-0.74080
(p-val)(0 )(0 )(NA )

\begin{tabular}{lllllllll}
\hline
ARIMA Parameter Estimation and Backward Selection \tabularnewline
Iteration & ar1 & ma1 & sma1 \tabularnewline
Estimates ( 1 ) & 0.9072 & -0.7363 & -0.326 \tabularnewline
(p-val) & (0 ) & (0 ) & (0.0743 ) \tabularnewline
Estimates ( 2 ) & 0.8928 & -0.7408 & 0 \tabularnewline
(p-val) & (0 ) & (0 ) & (NA ) \tabularnewline
\hline
\end{tabular}
%Source: https://freestatistics.org/blog/index.php?pk=62634&T=1

[TABLE]
[ROW][C]ARIMA Parameter Estimation and Backward Selection[/C][/ROW]
[ROW][C]Iteration[/C][C]ar1[/C][C]ma1[/C][C]sma1[/C][/ROW]
[ROW][C]Estimates ( 1 )[/C][C]0.9072[/C][C]-0.7363[/C][C]-0.326[/C][/ROW]
[ROW][C](p-val)[/C][C](0 )[/C][C](0 )[/C][C](0.0743 )[/C][/ROW]
[ROW][C]Estimates ( 2 )[/C][C]0.8928[/C][C]-0.7408[/C][C]0[/C][/ROW]
[ROW][C](p-val)[/C][C](0 )[/C][C](0 )[/C][C](NA )[/C][/ROW]
[/TABLE]
Source: https://freestatistics.org/blog/index.php?pk=62634&T=1

Globally Unique Identifier (entire table): ba.freestatistics.org/blog/index.php?pk=62634&T=1

As an alternative you can also use a QR Code:  

The GUIDs for individual cells are displayed in the table below:

ARIMA Parameter Estimation and Backward Selection
Iterationar1ma1sma1
Estimates ( 1 )0.9072-0.7363-0.326
(p-val)(0 )(0 )(0.0743 )
Estimates ( 2 )0.8928-0.74080
(p-val)(0 )(0 )(NA )







Estimated ARIMA Residuals
Value
-2.07754137848607
0.00800762993765914
-0.92704322910018
-4.53223294295743
5.72472104529253
4.65245192790189
-2.78613945498538
-5.10469887965554
-1.37699364277336
-4.07635813472983
-13.9866648969002
-1.34887527239110
-7.23437183261364
12.1616864663443
-7.54251168922427
-5.58466634874783
4.99584746649809
-10.1252971808381
-8.68994396706173
12.440673885689
5.75087712641845
-17.2432679290818
16.1832231682791
4.32377247410019
9.6957436205514
-0.00173190123192413
-1.43681350020445
-1.79441958446688
2.81586635091931
-11.1182796252477
17.8447243010719
-5.79089666351347
-3.92765790611772
0.770433951354802
6.58226643509179
12.6576723220726
9.63799481744186
4.71337503959469
8.83695138333441
11.564965235891
-2.46602048048596
-1.74259567985782
2.94104956453658
-5.7236168477318
-1.01172993756165
-3.17996949126395
-5.38102159697309
7.11883067566972

\begin{tabular}{lllllllll}
\hline
Estimated ARIMA Residuals \tabularnewline
Value \tabularnewline
-2.07754137848607 \tabularnewline
0.00800762993765914 \tabularnewline
-0.92704322910018 \tabularnewline
-4.53223294295743 \tabularnewline
5.72472104529253 \tabularnewline
4.65245192790189 \tabularnewline
-2.78613945498538 \tabularnewline
-5.10469887965554 \tabularnewline
-1.37699364277336 \tabularnewline
-4.07635813472983 \tabularnewline
-13.9866648969002 \tabularnewline
-1.34887527239110 \tabularnewline
-7.23437183261364 \tabularnewline
12.1616864663443 \tabularnewline
-7.54251168922427 \tabularnewline
-5.58466634874783 \tabularnewline
4.99584746649809 \tabularnewline
-10.1252971808381 \tabularnewline
-8.68994396706173 \tabularnewline
12.440673885689 \tabularnewline
5.75087712641845 \tabularnewline
-17.2432679290818 \tabularnewline
16.1832231682791 \tabularnewline
4.32377247410019 \tabularnewline
9.6957436205514 \tabularnewline
-0.00173190123192413 \tabularnewline
-1.43681350020445 \tabularnewline
-1.79441958446688 \tabularnewline
2.81586635091931 \tabularnewline
-11.1182796252477 \tabularnewline
17.8447243010719 \tabularnewline
-5.79089666351347 \tabularnewline
-3.92765790611772 \tabularnewline
0.770433951354802 \tabularnewline
6.58226643509179 \tabularnewline
12.6576723220726 \tabularnewline
9.63799481744186 \tabularnewline
4.71337503959469 \tabularnewline
8.83695138333441 \tabularnewline
11.564965235891 \tabularnewline
-2.46602048048596 \tabularnewline
-1.74259567985782 \tabularnewline
2.94104956453658 \tabularnewline
-5.7236168477318 \tabularnewline
-1.01172993756165 \tabularnewline
-3.17996949126395 \tabularnewline
-5.38102159697309 \tabularnewline
7.11883067566972 \tabularnewline
\hline
\end{tabular}
%Source: https://freestatistics.org/blog/index.php?pk=62634&T=2

[TABLE]
[ROW][C]Estimated ARIMA Residuals[/C][/ROW]
[ROW][C]Value[/C][/ROW]
[ROW][C]-2.07754137848607[/C][/ROW]
[ROW][C]0.00800762993765914[/C][/ROW]
[ROW][C]-0.92704322910018[/C][/ROW]
[ROW][C]-4.53223294295743[/C][/ROW]
[ROW][C]5.72472104529253[/C][/ROW]
[ROW][C]4.65245192790189[/C][/ROW]
[ROW][C]-2.78613945498538[/C][/ROW]
[ROW][C]-5.10469887965554[/C][/ROW]
[ROW][C]-1.37699364277336[/C][/ROW]
[ROW][C]-4.07635813472983[/C][/ROW]
[ROW][C]-13.9866648969002[/C][/ROW]
[ROW][C]-1.34887527239110[/C][/ROW]
[ROW][C]-7.23437183261364[/C][/ROW]
[ROW][C]12.1616864663443[/C][/ROW]
[ROW][C]-7.54251168922427[/C][/ROW]
[ROW][C]-5.58466634874783[/C][/ROW]
[ROW][C]4.99584746649809[/C][/ROW]
[ROW][C]-10.1252971808381[/C][/ROW]
[ROW][C]-8.68994396706173[/C][/ROW]
[ROW][C]12.440673885689[/C][/ROW]
[ROW][C]5.75087712641845[/C][/ROW]
[ROW][C]-17.2432679290818[/C][/ROW]
[ROW][C]16.1832231682791[/C][/ROW]
[ROW][C]4.32377247410019[/C][/ROW]
[ROW][C]9.6957436205514[/C][/ROW]
[ROW][C]-0.00173190123192413[/C][/ROW]
[ROW][C]-1.43681350020445[/C][/ROW]
[ROW][C]-1.79441958446688[/C][/ROW]
[ROW][C]2.81586635091931[/C][/ROW]
[ROW][C]-11.1182796252477[/C][/ROW]
[ROW][C]17.8447243010719[/C][/ROW]
[ROW][C]-5.79089666351347[/C][/ROW]
[ROW][C]-3.92765790611772[/C][/ROW]
[ROW][C]0.770433951354802[/C][/ROW]
[ROW][C]6.58226643509179[/C][/ROW]
[ROW][C]12.6576723220726[/C][/ROW]
[ROW][C]9.63799481744186[/C][/ROW]
[ROW][C]4.71337503959469[/C][/ROW]
[ROW][C]8.83695138333441[/C][/ROW]
[ROW][C]11.564965235891[/C][/ROW]
[ROW][C]-2.46602048048596[/C][/ROW]
[ROW][C]-1.74259567985782[/C][/ROW]
[ROW][C]2.94104956453658[/C][/ROW]
[ROW][C]-5.7236168477318[/C][/ROW]
[ROW][C]-1.01172993756165[/C][/ROW]
[ROW][C]-3.17996949126395[/C][/ROW]
[ROW][C]-5.38102159697309[/C][/ROW]
[ROW][C]7.11883067566972[/C][/ROW]
[/TABLE]
Source: https://freestatistics.org/blog/index.php?pk=62634&T=2

Globally Unique Identifier (entire table): ba.freestatistics.org/blog/index.php?pk=62634&T=2

As an alternative you can also use a QR Code:  

The GUIDs for individual cells are displayed in the table below:

Estimated ARIMA Residuals
Value
-2.07754137848607
0.00800762993765914
-0.92704322910018
-4.53223294295743
5.72472104529253
4.65245192790189
-2.78613945498538
-5.10469887965554
-1.37699364277336
-4.07635813472983
-13.9866648969002
-1.34887527239110
-7.23437183261364
12.1616864663443
-7.54251168922427
-5.58466634874783
4.99584746649809
-10.1252971808381
-8.68994396706173
12.440673885689
5.75087712641845
-17.2432679290818
16.1832231682791
4.32377247410019
9.6957436205514
-0.00173190123192413
-1.43681350020445
-1.79441958446688
2.81586635091931
-11.1182796252477
17.8447243010719
-5.79089666351347
-3.92765790611772
0.770433951354802
6.58226643509179
12.6576723220726
9.63799481744186
4.71337503959469
8.83695138333441
11.564965235891
-2.46602048048596
-1.74259567985782
2.94104956453658
-5.7236168477318
-1.01172993756165
-3.17996949126395
-5.38102159697309
7.11883067566972



Parameters (Session):
par1 = 1 ; par2 = 0 ; par3 = 0 ; par4 = 12 ;
Parameters (R input):
par1 = TRUE ; par2 = 1 ; par3 = 1 ; par4 = 1 ; par5 = 12 ; par6 = 1 ; par7 = 1 ; par8 = 0 ; 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, ncol=nrc)
pval <- matrix(NA, nrow=nrc, 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)
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')
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')