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 computationSun, 07 Dec 2008 08:45:38 -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/2008/Dec/07/t12286649248qi0gg75odabhps.htm/, Retrieved Sun, 19 May 2024 11:35:56 +0000
Statistical Computations at FreeStatistics.org, Office for Research Development and Education, URL https://freestatistics.org/blog/index.php?pk=30114, Retrieved Sun, 19 May 2024 11:35:56 +0000
QR Codes:

Original text written by user:
IsPrivate?No (this computation is public)
User-defined keywords
Estimated Impact232
Family? (F = Feedback message, R = changed R code, M = changed R Module, P = changed Parameters, D = changed Data)
-     [Univariate Data Series] [data set] [2008-12-01 19:54:57] [b98453cac15ba1066b407e146608df68]
- RMPD  [Standard Deviation-Mean Plot] [Identification an...] [2008-12-07 14:45:52] [b943bd7078334192ff8343563ee31113]
- RM      [Variance Reduction Matrix] [Identification an...] [2008-12-07 14:47:22] [b943bd7078334192ff8343563ee31113]
- RMP       [(Partial) Autocorrelation Function] [Identification an...] [2008-12-07 14:51:36] [b943bd7078334192ff8343563ee31113]
F   P         [(Partial) Autocorrelation Function] [Identification an...] [2008-12-07 14:54:30] [b943bd7078334192ff8343563ee31113]
-   P           [(Partial) Autocorrelation Function] [Identification an...] [2008-12-07 14:58:01] [b943bd7078334192ff8343563ee31113]
F RMP             [Spectral Analysis] [Identification an...] [2008-12-07 15:02:51] [b943bd7078334192ff8343563ee31113]
F RMP               [(Partial) Autocorrelation Function] [Identification an...] [2008-12-07 15:05:29] [b943bd7078334192ff8343563ee31113]
F RMP                   [ARIMA Backward Selection] [Identification an...] [2008-12-07 15:45:38] [620b6ad5c4696049e39cb73ce029682c] [Current]
-   P                     [ARIMA Backward Selection] [ARIMA Backward Mo...] [2008-12-12 14:40:13] [b943bd7078334192ff8343563ee31113]
- RMP                       [ARIMA Forecasting] [ARIMA Forecasting...] [2008-12-15 17:00:29] [b943bd7078334192ff8343563ee31113]
F   P                         [ARIMA Forecasting] [ARIMA Forecasting...] [2008-12-15 18:00:13] [b943bd7078334192ff8343563ee31113]
-   P                     [ARIMA Backward Selection] [ARIMA Backward Mo...] [2008-12-12 14:46:56] [b943bd7078334192ff8343563ee31113]
-   P                       [ARIMA Backward Selection] [ARIMA ciska] [2008-12-20 21:03:45] [ed2ba3b6182103c15c0ab511ae4e6284]
-   P                       [ARIMA Backward Selection] [] [2008-12-20 22:26:43] [b98453cac15ba1066b407e146608df68]
- RMP                       [ARIMA Forecasting] [] [2008-12-20 22:29:20] [b98453cac15ba1066b407e146608df68]
- R PD                    [ARIMA Backward Selection] [ARIMA olie] [2008-12-20 13:29:28] [7458e879e85b911182071700fff19fbd]
-    D                      [ARIMA Backward Selection] [Arima BEL20] [2008-12-22 11:36:19] [7458e879e85b911182071700fff19fbd]
- RMP                       [ARIMA Backward Selection] [] [2009-12-28 20:46:18] [a171cf7519360d15de770637ace99f7a]
- RMPD                      [ARIMA Backward Selection] [] [2009-12-28 20:54:47] [a171cf7519360d15de770637ace99f7a]
Feedback Forum
2008-12-12 15:02:30 [Ciska Tanghe] [reply
Bij p, q, P en Q moet de hoogste waarde ingevuld worden, zodat de computer alle mogelijke modellen kan berekenen. Bij het bepalen van deze waarden kunnen wij ons vergist hebben, daardoor laten we de computer alles narekenen.

Vul ik bij D 0 in, dan krijg ik een foutmelding.
Vul ik bij D 1 in, dan krijg ik een model.

De VRM zegt me dat D gelijk moet zijn aan 0, terwijl ikzelf denk dat er wel seizoenaliteit is (elke twee jaar, lag 12, 36 en 60) en dat D dus gelijk is aan 1.

Een verklaring voor dit verschil heb ik nog niet.

Post a new message
Dataseries X:
1593
1477.9
1733.7
1569.7
1843.7
1950.3
1657.5
1772.1
1568.3
1809.8
1646.7
1808.5
1763.9
1625.5
1538.8
1342.4
1645.1
1619.9
1338.1
1505.5
1529.1
1511.9
1656.7
1694.4
1662.3
1588.7
1483.3
1585.6
1658.9
1584.4
1470.6
1618.7
1407.6
1473.9
1515.3
1485.4
1496.1
1493.5
1298.4
1375.3
1507.9
1455.3
1363.3
1392.8
1348.8
1880.3
1669.2
1543.6
1701.2
1516.5
1466.8
1484.1
1577.2
1684.5
1414.7
1674.5
1598.7
1739.1
1674.6
1671.8
1802
1526.8
1580.9
1634.8
1610.3
1712
1678.8
1708.1
1680.6
2056
1624
2021.4
1861.1
1750.8
1767.5
1710.3
2151.5
2047.9
1915.4
1984.7
1896.5
2170.8
2139.9
2330.5
2121.8
2226.8
1857.9
2155.9
2341.7
2290.2
2006.5
2111.9
1731.3
1762.2
1863.2
1943.5
1975.2




\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 & 2 seconds \tabularnewline
R Server & 'George Udny Yule' @ 72.249.76.132 \tabularnewline
R Engine error message & 
Error in optim(init[mask], armafn, method = "BFGS", hessian = TRUE, control = optim.control,  : 
  non-finite finite-difference value [4]
Calls: arimaSelect -> arima -> optim
In addition: Warning messages:
1: In arima(series, order = order, seasonal = seasonal, include.mean = include.mean,  :
  some AR parameters were fixed: setting transform.pars = FALSE
2: In log(s2) : NaNs produced
Execution halted
\tabularnewline \hline \end{tabular} %Source: https://freestatistics.org/blog/index.php?pk=30114&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]2 seconds[/C][/ROW]
[ROW][C]R Server[/C][C]'George Udny Yule' @ 72.249.76.132[/C][/ROW]
[ROW][C]R Engine error message[/C][C]
Error in optim(init[mask], armafn, method = "BFGS", hessian = TRUE, control = optim.control,  : 
  non-finite finite-difference value [4]
Calls: arimaSelect -> arima -> optim
In addition: Warning messages:
1: In arima(series, order = order, seasonal = seasonal, include.mean = include.mean,  :
  some AR parameters were fixed: setting transform.pars = FALSE
2: In log(s2) : NaNs produced
Execution halted
[/C][/ROW] [/TABLE] Source: https://freestatistics.org/blog/index.php?pk=30114&T=0



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