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 computationFri, 16 Dec 2016 09:30:36 +0100
Cite this page as followsStatistical Computations at FreeStatistics.org, Office for Research Development and Education, URL https://freestatistics.org/blog/index.php?v=date/2016/Dec/16/t1481877453v2zdyr531vkck8x.htm/, Retrieved Thu, 02 May 2024 21:05:03 +0000
Statistical Computations at FreeStatistics.org, Office for Research Development and Education, URL https://freestatistics.org/blog/index.php?pk=300119, Retrieved Thu, 02 May 2024 21:05:03 +0000
QR Codes:

Original text written by user:
IsPrivate?No (this computation is public)
User-defined keywords
Estimated Impact45
Family? (F = Feedback message, R = changed R code, M = changed R Module, P = changed Parameters, D = changed Data)
-       [ARIMA Backward Selection] [] [2016-12-16 08:30:36] [9ac947b5174fcc9cd01e144b03ceb277] [Current]
Feedback Forum

Post a new message
Dataseries X:
938
767.2
811.2
929.2
911.6
1096
902
1140.8
1016.6
867.6
904.4
956
1054.4
1134
1328.6
1283
1257.2
1348.6
1511.4
1483
1788.2
2245
2709.2
2992.4
3564.6
4282
4864




Summary of computational transaction
Raw Input view raw input (R code)
Raw Outputview raw output of R engine
Computing time3 seconds
R ServerBig Analytics Cloud Computing Center

\begin{tabular}{lllllllll}
\hline
Summary of computational transaction \tabularnewline
Raw Input view raw input (R code)  \tabularnewline
Raw Outputview raw output of R engine  \tabularnewline
Computing time3 seconds \tabularnewline
R ServerBig Analytics Cloud Computing Center \tabularnewline
\hline
\end{tabular}
%Source: https://freestatistics.org/blog/index.php?pk=300119&T=0

[TABLE]
[ROW]
Summary of computational transaction[/C][/ROW] [ROW]Raw Input[/C] view raw input (R code) [/C][/ROW] [ROW]Raw Output[/C]view raw output of R engine [/C][/ROW] [ROW]Computing time[/C]3 seconds[/C][/ROW] [ROW]R Server[/C]Big Analytics Cloud Computing Center[/C][/ROW] [/TABLE] Source: https://freestatistics.org/blog/index.php?pk=300119&T=0

Globally Unique Identifier (entire table): ba.freestatistics.org/blog/index.php?pk=300119&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 Input view raw input (R code)
Raw Outputview raw output of R engine
Computing time3 seconds
R ServerBig Analytics Cloud Computing Center







ARIMA Parameter Estimation and Backward Selection
Iterationar1ar2ar3
Estimates ( 1 )-0.6441-0.3145-0.0924
(p-val)(0.0044 )(0.2121 )(0.6759 )
Estimates ( 2 )-0.6234-0.25150
(p-val)(0.0044 )(0.2108 )(NA )
Estimates ( 3 )-0.490800
(p-val)(0.0091 )(NA )(NA )
Estimates ( 4 )NANANA
(p-val)(NA )(NA )(NA )
Estimates ( 5 )NANANA
(p-val)(NA )(NA )(NA )

\begin{tabular}{lllllllll}
\hline
ARIMA Parameter Estimation and Backward Selection \tabularnewline
Iteration & ar1 & ar2 & ar3 \tabularnewline
Estimates ( 1 ) & -0.6441 & -0.3145 & -0.0924 \tabularnewline
(p-val) & (0.0044 ) & (0.2121 ) & (0.6759 ) \tabularnewline
Estimates ( 2 ) & -0.6234 & -0.2515 & 0 \tabularnewline
(p-val) & (0.0044 ) & (0.2108 ) & (NA ) \tabularnewline
Estimates ( 3 ) & -0.4908 & 0 & 0 \tabularnewline
(p-val) & (0.0091 ) & (NA ) & (NA ) \tabularnewline
Estimates ( 4 ) & NA & NA & NA \tabularnewline
(p-val) & (NA ) & (NA ) & (NA ) \tabularnewline
Estimates ( 5 ) & NA & NA & NA \tabularnewline
(p-val) & (NA ) & (NA ) & (NA ) \tabularnewline
\hline
\end{tabular}
%Source: https://freestatistics.org/blog/index.php?pk=300119&T=1

[TABLE]
[ROW][C]ARIMA Parameter Estimation and Backward Selection[/C][/ROW]
[ROW][C]Iteration[/C][C]ar1[/C][C]ar2[/C][C]ar3[/C][/ROW]
[ROW][C]Estimates ( 1 )[/C][C]-0.6441[/C][C]-0.3145[/C][C]-0.0924[/C][/ROW]
[ROW][C](p-val)[/C][C](0.0044 )[/C][C](0.2121 )[/C][C](0.6759 )[/C][/ROW]
[ROW][C]Estimates ( 2 )[/C][C]-0.6234[/C][C]-0.2515[/C][C]0[/C][/ROW]
[ROW][C](p-val)[/C][C](0.0044 )[/C][C](0.2108 )[/C][C](NA )[/C][/ROW]
[ROW][C]Estimates ( 3 )[/C][C]-0.4908[/C][C]0[/C][C]0[/C][/ROW]
[ROW][C](p-val)[/C][C](0.0091 )[/C][C](NA )[/C][C](NA )[/C][/ROW]
[ROW][C]Estimates ( 4 )[/C][C]NA[/C][C]NA[/C][C]NA[/C][/ROW]
[ROW][C](p-val)[/C][C](NA )[/C][C](NA )[/C][C](NA )[/C][/ROW]
[ROW][C]Estimates ( 5 )[/C][C]NA[/C][C]NA[/C][C]NA[/C][/ROW]
[ROW][C](p-val)[/C][C](NA )[/C][C](NA )[/C][C](NA )[/C][/ROW]
[/TABLE]
Source: https://freestatistics.org/blog/index.php?pk=300119&T=1

Globally Unique Identifier (entire table): ba.freestatistics.org/blog/index.php?pk=300119&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
Iterationar1ar2ar3
Estimates ( 1 )-0.6441-0.3145-0.0924
(p-val)(0.0044 )(0.2121 )(0.6759 )
Estimates ( 2 )-0.6234-0.25150
(p-val)(0.0044 )(0.2108 )(NA )
Estimates ( 3 )-0.490800
(p-val)(0.0091 )(NA )(NA )
Estimates ( 4 )NANANA
(p-val)(NA )(NA )(NA )
Estimates ( 5 )NANANA
(p-val)(NA )(NA )(NA )







Estimated ARIMA Residuals
Value
-1.64037497604302
180.269198587647
175.17549566328
-35.4536216395317
136.080979431164
-286.580524076316
247.716967755491
-188.366499515575
-142.242227479347
79.054251820547
124.384649683864
102.750303720573
14.0953651520645
115.049871846358
-173.240755338805
-101.012467531041
69.1377694778953
149.437675130673
-117.218563314552
232.368022847993
311.472218627661
185.795044224205
-138.26312630739
178.031797863342
279.835191663651
27.7896148955374

\begin{tabular}{lllllllll}
\hline
Estimated ARIMA Residuals \tabularnewline
Value \tabularnewline
-1.64037497604302 \tabularnewline
180.269198587647 \tabularnewline
175.17549566328 \tabularnewline
-35.4536216395317 \tabularnewline
136.080979431164 \tabularnewline
-286.580524076316 \tabularnewline
247.716967755491 \tabularnewline
-188.366499515575 \tabularnewline
-142.242227479347 \tabularnewline
79.054251820547 \tabularnewline
124.384649683864 \tabularnewline
102.750303720573 \tabularnewline
14.0953651520645 \tabularnewline
115.049871846358 \tabularnewline
-173.240755338805 \tabularnewline
-101.012467531041 \tabularnewline
69.1377694778953 \tabularnewline
149.437675130673 \tabularnewline
-117.218563314552 \tabularnewline
232.368022847993 \tabularnewline
311.472218627661 \tabularnewline
185.795044224205 \tabularnewline
-138.26312630739 \tabularnewline
178.031797863342 \tabularnewline
279.835191663651 \tabularnewline
27.7896148955374 \tabularnewline
\hline
\end{tabular}
%Source: https://freestatistics.org/blog/index.php?pk=300119&T=2

[TABLE]
[ROW][C]Estimated ARIMA Residuals[/C][/ROW]
[ROW][C]Value[/C][/ROW]
[ROW][C]-1.64037497604302[/C][/ROW]
[ROW][C]180.269198587647[/C][/ROW]
[ROW][C]175.17549566328[/C][/ROW]
[ROW][C]-35.4536216395317[/C][/ROW]
[ROW][C]136.080979431164[/C][/ROW]
[ROW][C]-286.580524076316[/C][/ROW]
[ROW][C]247.716967755491[/C][/ROW]
[ROW][C]-188.366499515575[/C][/ROW]
[ROW][C]-142.242227479347[/C][/ROW]
[ROW][C]79.054251820547[/C][/ROW]
[ROW][C]124.384649683864[/C][/ROW]
[ROW][C]102.750303720573[/C][/ROW]
[ROW][C]14.0953651520645[/C][/ROW]
[ROW][C]115.049871846358[/C][/ROW]
[ROW][C]-173.240755338805[/C][/ROW]
[ROW][C]-101.012467531041[/C][/ROW]
[ROW][C]69.1377694778953[/C][/ROW]
[ROW][C]149.437675130673[/C][/ROW]
[ROW][C]-117.218563314552[/C][/ROW]
[ROW][C]232.368022847993[/C][/ROW]
[ROW][C]311.472218627661[/C][/ROW]
[ROW][C]185.795044224205[/C][/ROW]
[ROW][C]-138.26312630739[/C][/ROW]
[ROW][C]178.031797863342[/C][/ROW]
[ROW][C]279.835191663651[/C][/ROW]
[ROW][C]27.7896148955374[/C][/ROW]
[/TABLE]
Source: https://freestatistics.org/blog/index.php?pk=300119&T=2

Globally Unique Identifier (entire table): ba.freestatistics.org/blog/index.php?pk=300119&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
-1.64037497604302
180.269198587647
175.17549566328
-35.4536216395317
136.080979431164
-286.580524076316
247.716967755491
-188.366499515575
-142.242227479347
79.054251820547
124.384649683864
102.750303720573
14.0953651520645
115.049871846358
-173.240755338805
-101.012467531041
69.1377694778953
149.437675130673
-117.218563314552
232.368022847993
311.472218627661
185.795044224205
-138.26312630739
178.031797863342
279.835191663651
27.7896148955374



Parameters (Session):
Parameters (R input):
par1 = FALSE ; par2 = 1 ; par3 = 2 ; par4 = 0 ; par5 = 1 ; par6 = 3 ; par7 = 0 ; par8 = 0 ; par9 = 0 ;
R code (references can be found in the software module):
par9 <- '0'
par8 <- '0'
par7 <- '1'
par6 <- '3'
par5 <- '1'
par4 <- '0'
par3 <- '2'
par2 <- '1'
par1 <- 'FALSE'
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')