Free Statistics

of Irreproducible Research!

Author's title

Author*Unverified author*
R Software Modulerwasp_arimabackwardselection.wasp
Title produced by softwareARIMA Backward Selection
Date of computationSun, 30 Dec 2007 09:39:26 -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/2007/Dec/30/t1199031517bcq009yft6ayptg.htm/, Retrieved Sat, 04 May 2024 07:15:00 +0000
Statistical Computations at FreeStatistics.org, Office for Research Development and Education, URL https://freestatistics.org/blog/index.php?pk=4935, Retrieved Sat, 04 May 2024 07:15:00 +0000
QR Codes:

Original text written by user:
IsPrivate?No (this computation is public)
User-defined keywords
Estimated Impact289
Family? (F = Feedback message, R = changed R code, M = changed R Module, P = changed Parameters, D = changed Data)
-       [ARIMA Backward Selection] [] [2007-12-30 16:39:26] [5ab9c9a9553a1280610271cc4d1472e3] [Current]
Feedback Forum

Post a new message
Dataseries X:
163414
163652
164603
165257
168731
171848
175032
179187
187369
194147
200145
203750
206464
205034
211782
244562
247059
255703
260218
268852
279436
281514
285458
288338
296369
302221
311016




Summary of compuational transaction
Raw Inputview raw input (R code)
Raw Outputview raw output of R engine
Computing time5 seconds
R Server'Herman Ole Andreas Wold' @ 193.190.124.10:1001

\begin{tabular}{lllllllll}
\hline
Summary of compuational transaction \tabularnewline
Raw Input & view raw input (R code)  \tabularnewline
Raw Output & view raw output of R engine  \tabularnewline
Computing time & 5 seconds \tabularnewline
R Server & 'Herman Ole Andreas Wold' @ 193.190.124.10:1001 \tabularnewline
\hline
\end{tabular}
%Source: https://freestatistics.org/blog/index.php?pk=4935&T=0

[TABLE]
[ROW][C]Summary of compuational 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]5 seconds[/C][/ROW]
[ROW][C]R Server[/C][C]'Herman Ole Andreas Wold' @ 193.190.124.10:1001[/C][/ROW]
[/TABLE]
Source: https://freestatistics.org/blog/index.php?pk=4935&T=0

Globally Unique Identifier (entire table): ba.freestatistics.org/blog/index.php?pk=4935&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 compuational transaction
Raw Inputview raw input (R code)
Raw Outputview raw output of R engine
Computing time5 seconds
R Server'Herman Ole Andreas Wold' @ 193.190.124.10:1001







ARIMA Parameter Estimation and Backward Selection
Iterationar1ar2ar3ma1
Estimates ( 1 )0.9649-0.0590.0769-0.8377
(p-val)(0.001 )(0.8284 )(0.725 )(4e-04 )
Estimates ( 2 )0.931400.0505-0.8329
(p-val)(1e-04 )(NA )(0.7823 )(4e-04 )
Estimates ( 3 )0.987200-0.8664
(p-val)(0 )(NA )(NA )(0 )
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 )

\begin{tabular}{lllllllll}
\hline
ARIMA Parameter Estimation and Backward Selection \tabularnewline
Iteration & ar1 & ar2 & ar3 & ma1 \tabularnewline
Estimates ( 1 ) & 0.9649 & -0.059 & 0.0769 & -0.8377 \tabularnewline
(p-val) & (0.001 ) & (0.8284 ) & (0.725 ) & (4e-04 ) \tabularnewline
Estimates ( 2 ) & 0.9314 & 0 & 0.0505 & -0.8329 \tabularnewline
(p-val) & (1e-04 ) & (NA ) & (0.7823 ) & (4e-04 ) \tabularnewline
Estimates ( 3 ) & 0.9872 & 0 & 0 & -0.8664 \tabularnewline
(p-val) & (0 ) & (NA ) & (NA ) & (0 ) \tabularnewline
Estimates ( 4 ) & NA & NA & NA & NA \tabularnewline
(p-val) & (NA ) & (NA ) & (NA ) & (NA ) \tabularnewline
Estimates ( 5 ) & NA & NA & NA & NA \tabularnewline
(p-val) & (NA ) & (NA ) & (NA ) & (NA ) \tabularnewline
Estimates ( 6 ) & NA & NA & NA & NA \tabularnewline
(p-val) & (NA ) & (NA ) & (NA ) & (NA ) \tabularnewline
Estimates ( 7 ) & NA & NA & NA & NA \tabularnewline
(p-val) & (NA ) & (NA ) & (NA ) & (NA ) \tabularnewline
\hline
\end{tabular}
%Source: https://freestatistics.org/blog/index.php?pk=4935&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][C]ma1[/C][/ROW]
[ROW][C]Estimates ( 1 )[/C][C]0.9649[/C][C]-0.059[/C][C]0.0769[/C][C]-0.8377[/C][/ROW]
[ROW][C](p-val)[/C][C](0.001 )[/C][C](0.8284 )[/C][C](0.725 )[/C][C](4e-04 )[/C][/ROW]
[ROW][C]Estimates ( 2 )[/C][C]0.9314[/C][C]0[/C][C]0.0505[/C][C]-0.8329[/C][/ROW]
[ROW][C](p-val)[/C][C](1e-04 )[/C][C](NA )[/C][C](0.7823 )[/C][C](4e-04 )[/C][/ROW]
[ROW][C]Estimates ( 3 )[/C][C]0.9872[/C][C]0[/C][C]0[/C][C]-0.8664[/C][/ROW]
[ROW][C](p-val)[/C][C](0 )[/C][C](NA )[/C][C](NA )[/C][C](0 )[/C][/ROW]
[ROW][C]Estimates ( 4 )[/C][C]NA[/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][C](NA )[/C][/ROW]
[ROW][C]Estimates ( 5 )[/C][C]NA[/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][C](NA )[/C][/ROW]
[ROW][C]Estimates ( 6 )[/C][C]NA[/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][C](NA )[/C][/ROW]
[ROW][C]Estimates ( 7 )[/C][C]NA[/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][C](NA )[/C][/ROW]
[/TABLE]
Source: https://freestatistics.org/blog/index.php?pk=4935&T=1

Globally Unique Identifier (entire table): ba.freestatistics.org/blog/index.php?pk=4935&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
Iterationar1ar2ar3ma1
Estimates ( 1 )0.9649-0.0590.0769-0.8377
(p-val)(0.001 )(0.8284 )(0.725 )(4e-04 )
Estimates ( 2 )0.931400.0505-0.8329
(p-val)(1e-04 )(NA )(0.7823 )(4e-04 )
Estimates ( 3 )0.987200-0.8664
(p-val)(0 )(NA )(NA )(0 )
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
163.413873189958
190.957766625954
751.886612719851
279.45068818933
2916.31213440319
2075.0583701753
1881.13080810695
2512.22179510240
6158.2845538771
4050.25638614473
2814.09069921838
-60.8260230686774
-1034.00664234818
-5112.31878741769
3642.40538652637
29367.8721547024
-3516.67724349781
3049.07912718700
-2650.67969658921
2095.09749835630
3850.43831976282
-4800.6531230095
-2425.23215366126
-3347.29533509188
2455.71885787564
218.264793269816
3380.86702571120

\begin{tabular}{lllllllll}
\hline
Estimated ARIMA Residuals \tabularnewline
Value \tabularnewline
163.413873189958 \tabularnewline
190.957766625954 \tabularnewline
751.886612719851 \tabularnewline
279.45068818933 \tabularnewline
2916.31213440319 \tabularnewline
2075.0583701753 \tabularnewline
1881.13080810695 \tabularnewline
2512.22179510240 \tabularnewline
6158.2845538771 \tabularnewline
4050.25638614473 \tabularnewline
2814.09069921838 \tabularnewline
-60.8260230686774 \tabularnewline
-1034.00664234818 \tabularnewline
-5112.31878741769 \tabularnewline
3642.40538652637 \tabularnewline
29367.8721547024 \tabularnewline
-3516.67724349781 \tabularnewline
3049.07912718700 \tabularnewline
-2650.67969658921 \tabularnewline
2095.09749835630 \tabularnewline
3850.43831976282 \tabularnewline
-4800.6531230095 \tabularnewline
-2425.23215366126 \tabularnewline
-3347.29533509188 \tabularnewline
2455.71885787564 \tabularnewline
218.264793269816 \tabularnewline
3380.86702571120 \tabularnewline
\hline
\end{tabular}
%Source: https://freestatistics.org/blog/index.php?pk=4935&T=2

[TABLE]
[ROW][C]Estimated ARIMA Residuals[/C][/ROW]
[ROW][C]Value[/C][/ROW]
[ROW][C]163.413873189958[/C][/ROW]
[ROW][C]190.957766625954[/C][/ROW]
[ROW][C]751.886612719851[/C][/ROW]
[ROW][C]279.45068818933[/C][/ROW]
[ROW][C]2916.31213440319[/C][/ROW]
[ROW][C]2075.0583701753[/C][/ROW]
[ROW][C]1881.13080810695[/C][/ROW]
[ROW][C]2512.22179510240[/C][/ROW]
[ROW][C]6158.2845538771[/C][/ROW]
[ROW][C]4050.25638614473[/C][/ROW]
[ROW][C]2814.09069921838[/C][/ROW]
[ROW][C]-60.8260230686774[/C][/ROW]
[ROW][C]-1034.00664234818[/C][/ROW]
[ROW][C]-5112.31878741769[/C][/ROW]
[ROW][C]3642.40538652637[/C][/ROW]
[ROW][C]29367.8721547024[/C][/ROW]
[ROW][C]-3516.67724349781[/C][/ROW]
[ROW][C]3049.07912718700[/C][/ROW]
[ROW][C]-2650.67969658921[/C][/ROW]
[ROW][C]2095.09749835630[/C][/ROW]
[ROW][C]3850.43831976282[/C][/ROW]
[ROW][C]-4800.6531230095[/C][/ROW]
[ROW][C]-2425.23215366126[/C][/ROW]
[ROW][C]-3347.29533509188[/C][/ROW]
[ROW][C]2455.71885787564[/C][/ROW]
[ROW][C]218.264793269816[/C][/ROW]
[ROW][C]3380.86702571120[/C][/ROW]
[/TABLE]
Source: https://freestatistics.org/blog/index.php?pk=4935&T=2

Globally Unique Identifier (entire table): ba.freestatistics.org/blog/index.php?pk=4935&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
163.413873189958
190.957766625954
751.886612719851
279.45068818933
2916.31213440319
2075.0583701753
1881.13080810695
2512.22179510240
6158.2845538771
4050.25638614473
2814.09069921838
-60.8260230686774
-1034.00664234818
-5112.31878741769
3642.40538652637
29367.8721547024
-3516.67724349781
3049.07912718700
-2650.67969658921
2095.09749835630
3850.43831976282
-4800.6531230095
-2425.23215366126
-3347.29533509188
2455.71885787564
218.264793269816
3380.86702571120



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