Free Statistics

of Irreproducible Research!

Author's title

Author*Unverified author*
R Software Modulerwasp_arimaforecasting.wasp
Title produced by softwareARIMA Forecasting
Date of computationFri, 23 Dec 2016 09:37:59 +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/23/t1482482318gifrybwzv8wqf5p.htm/, Retrieved Tue, 07 May 2024 19:13:02 +0000
Statistical Computations at FreeStatistics.org, Office for Research Development and Education, URL https://freestatistics.org/blog/index.php?pk=302781, Retrieved Tue, 07 May 2024 19:13:02 +0000
QR Codes:

Original text written by user:
IsPrivate?No (this computation is public)
User-defined keywords
Estimated Impact90
Family? (F = Feedback message, R = changed R code, M = changed R Module, P = changed Parameters, D = changed Data)
-     [ARIMA Forecasting] [] [2016-12-21 12:04:22] [18cdc3a4292fc57d63398df4d659b9a6]
- R P     [ARIMA Forecasting] [] [2016-12-23 08:37:59] [d41d8cd98f00b204e9800998ecf8427e] [Current]
Feedback Forum

Post a new message
Dataseries X:
5283.5
5298.3
5313
5332.2
5348.9
5411.6
5474.6
5463.6
5477.3
5530.4
5584.1
5605.5
5626.6
5659
5697.6
5705.9
5633.3
5671.2
5709.5
5723.8
5754.2
5775.7
5803.6
5846.5
5849.6
5866
5900
5949.6
5886.2
5896.7
5913.4
5963.1
5905.2
5912.2
5928.9
5990.6
5853.6
5976.1
6002.5
6091.9
5917.8
6010.3
6087.7
6192.9




Summary of computational transaction
Raw Input view raw input (R code)
Raw Outputview raw output of R engine
Computing time0 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 time0 seconds \tabularnewline
R ServerBig Analytics Cloud Computing Center \tabularnewline
\hline
\end{tabular}
%Source: https://freestatistics.org/blog/index.php?pk=302781&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]0 seconds[/C][/ROW] [ROW]R Server[/C]Big Analytics Cloud Computing Center[/C][/ROW] [/TABLE] Source: https://freestatistics.org/blog/index.php?pk=302781&T=0

Globally Unique Identifier (entire table): ba.freestatistics.org/blog/index.php?pk=302781&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 time0 seconds
R ServerBig Analytics Cloud Computing Center







Univariate ARIMA Extrapolation Forecast
timeY[t]F[t]95% LB95% UBp-value(H0: Y[t] = F[t])P(F[t]>Y[t-1])P(F[t]>Y[t-s])P(F[t]>Y[44])
406091.9-------
415917.8-------
426010.3-------
436087.7-------
446192.9-------
45NA6014.30855942.86676085.7504NA00.99590
46NA6101.74716013.30936190.1848NANA0.97870.0217
47NA6174.36616075.99226272.7401NANA0.95790.356
48NA6276.10626172.88596379.3265NANA0.94290.9429
49NA6095.04125954.73526235.3472NANANA0.0858
50NA6180.77516024.06386337.4864NANANA0.4397
51NA6252.22296085.57926418.8667NANANA0.7573
52NA6353.16356181.33856524.9886NANANA0.9662

\begin{tabular}{lllllllll}
\hline
Univariate ARIMA Extrapolation Forecast \tabularnewline
time & Y[t] & F[t] & 95% LB & 95% UB & p-value(H0: Y[t] = F[t]) & P(F[t]>Y[t-1]) & P(F[t]>Y[t-s]) & P(F[t]>Y[44]) \tabularnewline
40 & 6091.9 & - & - & - & - & - & - & - \tabularnewline
41 & 5917.8 & - & - & - & - & - & - & - \tabularnewline
42 & 6010.3 & - & - & - & - & - & - & - \tabularnewline
43 & 6087.7 & - & - & - & - & - & - & - \tabularnewline
44 & 6192.9 & - & - & - & - & - & - & - \tabularnewline
45 & NA & 6014.3085 & 5942.8667 & 6085.7504 & NA & 0 & 0.9959 & 0 \tabularnewline
46 & NA & 6101.7471 & 6013.3093 & 6190.1848 & NA & NA & 0.9787 & 0.0217 \tabularnewline
47 & NA & 6174.3661 & 6075.9922 & 6272.7401 & NA & NA & 0.9579 & 0.356 \tabularnewline
48 & NA & 6276.1062 & 6172.8859 & 6379.3265 & NA & NA & 0.9429 & 0.9429 \tabularnewline
49 & NA & 6095.0412 & 5954.7352 & 6235.3472 & NA & NA & NA & 0.0858 \tabularnewline
50 & NA & 6180.7751 & 6024.0638 & 6337.4864 & NA & NA & NA & 0.4397 \tabularnewline
51 & NA & 6252.2229 & 6085.5792 & 6418.8667 & NA & NA & NA & 0.7573 \tabularnewline
52 & NA & 6353.1635 & 6181.3385 & 6524.9886 & NA & NA & NA & 0.9662 \tabularnewline
\hline
\end{tabular}
%Source: https://freestatistics.org/blog/index.php?pk=302781&T=1

[TABLE]
[ROW][C]Univariate ARIMA Extrapolation Forecast[/C][/ROW]
[ROW][C]time[/C][C]Y[t][/C][C]F[t][/C][C]95% LB[/C][C]95% UB[/C][C]p-value(H0: Y[t] = F[t])[/C][C]P(F[t]>Y[t-1])[/C][C]P(F[t]>Y[t-s])[/C][C]P(F[t]>Y[44])[/C][/ROW]
[ROW][C]40[/C][C]6091.9[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][/ROW]
[ROW][C]41[/C][C]5917.8[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][/ROW]
[ROW][C]42[/C][C]6010.3[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][/ROW]
[ROW][C]43[/C][C]6087.7[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][/ROW]
[ROW][C]44[/C][C]6192.9[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][/ROW]
[ROW][C]45[/C][C]NA[/C][C]6014.3085[/C][C]5942.8667[/C][C]6085.7504[/C][C]NA[/C][C]0[/C][C]0.9959[/C][C]0[/C][/ROW]
[ROW][C]46[/C][C]NA[/C][C]6101.7471[/C][C]6013.3093[/C][C]6190.1848[/C][C]NA[/C][C]NA[/C][C]0.9787[/C][C]0.0217[/C][/ROW]
[ROW][C]47[/C][C]NA[/C][C]6174.3661[/C][C]6075.9922[/C][C]6272.7401[/C][C]NA[/C][C]NA[/C][C]0.9579[/C][C]0.356[/C][/ROW]
[ROW][C]48[/C][C]NA[/C][C]6276.1062[/C][C]6172.8859[/C][C]6379.3265[/C][C]NA[/C][C]NA[/C][C]0.9429[/C][C]0.9429[/C][/ROW]
[ROW][C]49[/C][C]NA[/C][C]6095.0412[/C][C]5954.7352[/C][C]6235.3472[/C][C]NA[/C][C]NA[/C][C]NA[/C][C]0.0858[/C][/ROW]
[ROW][C]50[/C][C]NA[/C][C]6180.7751[/C][C]6024.0638[/C][C]6337.4864[/C][C]NA[/C][C]NA[/C][C]NA[/C][C]0.4397[/C][/ROW]
[ROW][C]51[/C][C]NA[/C][C]6252.2229[/C][C]6085.5792[/C][C]6418.8667[/C][C]NA[/C][C]NA[/C][C]NA[/C][C]0.7573[/C][/ROW]
[ROW][C]52[/C][C]NA[/C][C]6353.1635[/C][C]6181.3385[/C][C]6524.9886[/C][C]NA[/C][C]NA[/C][C]NA[/C][C]0.9662[/C][/ROW]
[/TABLE]
Source: https://freestatistics.org/blog/index.php?pk=302781&T=1

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

As an alternative you can also use a QR Code:  

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

Univariate ARIMA Extrapolation Forecast
timeY[t]F[t]95% LB95% UBp-value(H0: Y[t] = F[t])P(F[t]>Y[t-1])P(F[t]>Y[t-s])P(F[t]>Y[44])
406091.9-------
415917.8-------
426010.3-------
436087.7-------
446192.9-------
45NA6014.30855942.86676085.7504NA00.99590
46NA6101.74716013.30936190.1848NANA0.97870.0217
47NA6174.36616075.99226272.7401NANA0.95790.356
48NA6276.10626172.88596379.3265NANA0.94290.9429
49NA6095.04125954.73526235.3472NANANA0.0858
50NA6180.77516024.06386337.4864NANANA0.4397
51NA6252.22296085.57926418.8667NANANA0.7573
52NA6353.16356181.33856524.9886NANANA0.9662







Univariate ARIMA Extrapolation Forecast Performance
time% S.E.PEMAPEsMAPESq.EMSERMSEScaledEMASE
450.0061NANANANA00NANA
460.0074NANANANANANANANA
470.0081NANANANANANANANA
480.0084NANANANANANANANA
490.0117NANANANANANANANA
500.0129NANANANANANANANA
510.0136NANANANANANANANA
520.0138NANANANANANANANA

\begin{tabular}{lllllllll}
\hline
Univariate ARIMA Extrapolation Forecast Performance \tabularnewline
time & % S.E. & PE & MAPE & sMAPE & Sq.E & MSE & RMSE & ScaledE & MASE \tabularnewline
45 & 0.0061 & NA & NA & NA & NA & 0 & 0 & NA & NA \tabularnewline
46 & 0.0074 & NA & NA & NA & NA & NA & NA & NA & NA \tabularnewline
47 & 0.0081 & NA & NA & NA & NA & NA & NA & NA & NA \tabularnewline
48 & 0.0084 & NA & NA & NA & NA & NA & NA & NA & NA \tabularnewline
49 & 0.0117 & NA & NA & NA & NA & NA & NA & NA & NA \tabularnewline
50 & 0.0129 & NA & NA & NA & NA & NA & NA & NA & NA \tabularnewline
51 & 0.0136 & NA & NA & NA & NA & NA & NA & NA & NA \tabularnewline
52 & 0.0138 & NA & NA & NA & NA & NA & NA & NA & NA \tabularnewline
\hline
\end{tabular}
%Source: https://freestatistics.org/blog/index.php?pk=302781&T=2

[TABLE]
[ROW][C]Univariate ARIMA Extrapolation Forecast Performance[/C][/ROW]
[ROW][C]time[/C][C]% S.E.[/C][C]PE[/C][C]MAPE[/C][C]sMAPE[/C][C]Sq.E[/C][C]MSE[/C][C]RMSE[/C][C]ScaledE[/C][C]MASE[/C][/ROW]
[ROW][C]45[/C][C]0.0061[/C][C]NA[/C][C]NA[/C][C]NA[/C][C]NA[/C][C]0[/C][C]0[/C][C]NA[/C][C]NA[/C][/ROW]
[ROW][C]46[/C][C]0.0074[/C][C]NA[/C][C]NA[/C][C]NA[/C][C]NA[/C][C]NA[/C][C]NA[/C][C]NA[/C][C]NA[/C][/ROW]
[ROW][C]47[/C][C]0.0081[/C][C]NA[/C][C]NA[/C][C]NA[/C][C]NA[/C][C]NA[/C][C]NA[/C][C]NA[/C][C]NA[/C][/ROW]
[ROW][C]48[/C][C]0.0084[/C][C]NA[/C][C]NA[/C][C]NA[/C][C]NA[/C][C]NA[/C][C]NA[/C][C]NA[/C][C]NA[/C][/ROW]
[ROW][C]49[/C][C]0.0117[/C][C]NA[/C][C]NA[/C][C]NA[/C][C]NA[/C][C]NA[/C][C]NA[/C][C]NA[/C][C]NA[/C][/ROW]
[ROW][C]50[/C][C]0.0129[/C][C]NA[/C][C]NA[/C][C]NA[/C][C]NA[/C][C]NA[/C][C]NA[/C][C]NA[/C][C]NA[/C][/ROW]
[ROW][C]51[/C][C]0.0136[/C][C]NA[/C][C]NA[/C][C]NA[/C][C]NA[/C][C]NA[/C][C]NA[/C][C]NA[/C][C]NA[/C][/ROW]
[ROW][C]52[/C][C]0.0138[/C][C]NA[/C][C]NA[/C][C]NA[/C][C]NA[/C][C]NA[/C][C]NA[/C][C]NA[/C][C]NA[/C][/ROW]
[/TABLE]
Source: https://freestatistics.org/blog/index.php?pk=302781&T=2

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

As an alternative you can also use a QR Code:  

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

Univariate ARIMA Extrapolation Forecast Performance
time% S.E.PEMAPEsMAPESq.EMSERMSEScaledEMASE
450.0061NANANANA00NANA
460.0074NANANANANANANANA
470.0081NANANANANANANANA
480.0084NANANANANANANANA
490.0117NANANANANANANANA
500.0129NANANANANANANANA
510.0136NANANANANANANANA
520.0138NANANANANANANANA



Parameters (Session):
par1 = 0 ; par2 = 1 ; par3 = 1 ; par4 = 1 ; par5 = 4 ; par6 = 3 ; par7 = 1 ; par8 = 0 ; par9 = 0 ; par10 = FALSE ;
Parameters (R input):
par1 = 0 ; par2 = 1 ; par3 = 1 ; par4 = 1 ; par5 = 4 ; par6 = 3 ; par7 = 1 ; par8 = 0 ; par9 = 0 ; par10 = FALSE ;
R code (references can be found in the software module):
par1 <- as.numeric(par1) #cut off periods
par2 <- as.numeric(par2) #lambda
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) #p
par7 <- as.numeric(par7) #q
par8 <- as.numeric(par8) #P
par9 <- as.numeric(par9) #Q
if (par10 == 'TRUE') par10 <- TRUE
if (par10 == 'FALSE') par10 <- FALSE
if (par2 == 0) x <- log(x)
if (par2 != 0) x <- x^par2
lx <- length(x)
first <- lx - 2*par1
nx <- lx - par1
nx1 <- nx + 1
fx <- lx - nx
if (fx < 1) {
fx <- par5*2
nx1 <- lx + fx - 1
first <- lx - 2*fx
}
first <- 1
if (fx < 3) fx <- round(lx/10,0)
(arima.out <- arima(x[1:nx], order=c(par6,par3,par7), seasonal=list(order=c(par8,par4,par9), period=par5), include.mean=par10, method='ML'))
(forecast <- predict(arima.out,fx))
(lb <- forecast$pred - 1.96 * forecast$se)
(ub <- forecast$pred + 1.96 * forecast$se)
if (par2 == 0) {
x <- exp(x)
forecast$pred <- exp(forecast$pred)
lb <- exp(lb)
ub <- exp(ub)
}
if (par2 != 0) {
x <- x^(1/par2)
forecast$pred <- forecast$pred^(1/par2)
lb <- lb^(1/par2)
ub <- ub^(1/par2)
}
if (par2 < 0) {
olb <- lb
lb <- ub
ub <- olb
}
(actandfor <- c(x[1:nx], forecast$pred))
(perc.se <- (ub-forecast$pred)/1.96/forecast$pred)
bitmap(file='test1.png')
opar <- par(mar=c(4,4,2,2),las=1)
ylim <- c( min(x[first:nx],lb), max(x[first:nx],ub))
plot(x,ylim=ylim,type='n',xlim=c(first,lx))
usr <- par('usr')
rect(usr[1],usr[3],nx+1,usr[4],border=NA,col='lemonchiffon')
rect(nx1,usr[3],usr[2],usr[4],border=NA,col='lavender')
abline(h= (-3:3)*2 , col ='gray', lty =3)
polygon( c(nx1:lx,lx:nx1), c(lb,rev(ub)), col = 'orange', lty=2,border=NA)
lines(nx1:lx, lb , lty=2)
lines(nx1:lx, ub , lty=2)
lines(x, lwd=2)
lines(nx1:lx, forecast$pred , lwd=2 , col ='white')
box()
par(opar)
dev.off()
prob.dec <- array(NA, dim=fx)
prob.sdec <- array(NA, dim=fx)
prob.ldec <- array(NA, dim=fx)
prob.pval <- array(NA, dim=fx)
perf.pe <- array(0, dim=fx)
perf.spe <- array(0, dim=fx)
perf.scalederr <- array(0, dim=fx)
perf.mase <- array(0, dim=fx)
perf.mase1 <- array(0, dim=fx)
perf.mape <- array(0, dim=fx)
perf.smape <- array(0, dim=fx)
perf.mape1 <- array(0, dim=fx)
perf.smape1 <- array(0,dim=fx)
perf.se <- array(0, dim=fx)
perf.mse <- array(0, dim=fx)
perf.mse1 <- array(0, dim=fx)
perf.rmse <- array(0, dim=fx)
perf.scaleddenom <- 0
for (i in 2:fx) {
perf.scaleddenom = perf.scaleddenom + abs(x[nx+i] - x[nx+i-1])
}
perf.scaleddenom = perf.scaleddenom / (fx-1)
for (i in 1:fx) {
locSD <- (ub[i] - forecast$pred[i]) / 1.96
perf.scalederr[i] = (x[nx+i] - forecast$pred[i]) / perf.scaleddenom
perf.pe[i] = (x[nx+i] - forecast$pred[i]) / x[nx+i]
perf.spe[i] = 2*(x[nx+i] - forecast$pred[i]) / (x[nx+i] + forecast$pred[i])
perf.se[i] = (x[nx+i] - forecast$pred[i])^2
prob.dec[i] = pnorm((x[nx+i-1] - forecast$pred[i]) / locSD)
prob.sdec[i] = pnorm((x[nx+i-par5] - forecast$pred[i]) / locSD)
prob.ldec[i] = pnorm((x[nx] - forecast$pred[i]) / locSD)
prob.pval[i] = pnorm(abs(x[nx+i] - forecast$pred[i]) / locSD)
}
perf.mape[1] = abs(perf.pe[1])
perf.smape[1] = abs(perf.spe[1])
perf.mape1[1] = perf.mape[1]
perf.smape1[1] = perf.smape[1]
perf.mse[1] = perf.se[1]
perf.mase[1] = abs(perf.scalederr[1])
perf.mase1[1] = perf.mase[1]
for (i in 2:fx) {
perf.mape[i] = perf.mape[i-1] + abs(perf.pe[i])
perf.mape1[i] = perf.mape[i] / i
perf.smape[i] = perf.smape[i-1] + abs(perf.spe[i])
perf.smape1[i] = perf.smape[i] / i
perf.mse[i] = perf.mse[i-1] + perf.se[i]
perf.mse1[i] = perf.mse[i] / i
perf.mase[i] = perf.mase[i-1] + abs(perf.scalederr[i])
perf.mase1[i] = perf.mase[i] / i
}
perf.rmse = sqrt(perf.mse1)
bitmap(file='test2.png')
plot(forecast$pred, pch=19, type='b',main='ARIMA Extrapolation Forecast', ylab='Forecast and 95% CI', xlab='time',ylim=c(min(lb),max(ub)))
dum <- forecast$pred
dum[1:par1] <- x[(nx+1):lx]
lines(dum, lty=1)
lines(ub,lty=3)
lines(lb,lty=3)
dev.off()
load(file='createtable')
a<-table.start()
a<-table.row.start(a)
a<-table.element(a,'Univariate ARIMA Extrapolation Forecast',9,TRUE)
a<-table.row.end(a)
a<-table.row.start(a)
a<-table.element(a,'time',1,header=TRUE)
a<-table.element(a,'Y[t]',1,header=TRUE)
a<-table.element(a,'F[t]',1,header=TRUE)
a<-table.element(a,'95% LB',1,header=TRUE)
a<-table.element(a,'95% UB',1,header=TRUE)
a<-table.element(a,'p-value
(H0: Y[t] = F[t])',1,header=TRUE)
a<-table.element(a,'P(F[t]>Y[t-1])',1,header=TRUE)
a<-table.element(a,'P(F[t]>Y[t-s])',1,header=TRUE)
mylab <- paste('P(F[t]>Y[',nx,sep='')
mylab <- paste(mylab,'])',sep='')
a<-table.element(a,mylab,1,header=TRUE)
a<-table.row.end(a)
for (i in (nx-par5):nx) {
a<-table.row.start(a)
a<-table.element(a,i,header=TRUE)
a<-table.element(a,x[i])
a<-table.element(a,'-')
a<-table.element(a,'-')
a<-table.element(a,'-')
a<-table.element(a,'-')
a<-table.element(a,'-')
a<-table.element(a,'-')
a<-table.element(a,'-')
a<-table.row.end(a)
}
for (i in 1:fx) {
a<-table.row.start(a)
a<-table.element(a,nx+i,header=TRUE)
a<-table.element(a,round(x[nx+i],4))
a<-table.element(a,round(forecast$pred[i],4))
a<-table.element(a,round(lb[i],4))
a<-table.element(a,round(ub[i],4))
a<-table.element(a,round((1-prob.pval[i]),4))
a<-table.element(a,round((1-prob.dec[i]),4))
a<-table.element(a,round((1-prob.sdec[i]),4))
a<-table.element(a,round((1-prob.ldec[i]),4))
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,'Univariate ARIMA Extrapolation Forecast Performance',10,TRUE)
a<-table.row.end(a)
a<-table.row.start(a)
a<-table.element(a,'time',1,header=TRUE)
a<-table.element(a,'% S.E.',1,header=TRUE)
a<-table.element(a,'PE',1,header=TRUE)
a<-table.element(a,'MAPE',1,header=TRUE)
a<-table.element(a,'sMAPE',1,header=TRUE)
a<-table.element(a,'Sq.E',1,header=TRUE)
a<-table.element(a,'MSE',1,header=TRUE)
a<-table.element(a,'RMSE',1,header=TRUE)
a<-table.element(a,'ScaledE',1,header=TRUE)
a<-table.element(a,'MASE',1,header=TRUE)
a<-table.row.end(a)
for (i in 1:fx) {
a<-table.row.start(a)
a<-table.element(a,nx+i,header=TRUE)
a<-table.element(a,round(perc.se[i],4))
a<-table.element(a,round(perf.pe[i],4))
a<-table.element(a,round(perf.mape1[i],4))
a<-table.element(a,round(perf.smape1[i],4))
a<-table.element(a,round(perf.se[i],4))
a<-table.element(a,round(perf.mse1[i],4))
a<-table.element(a,round(perf.rmse[i],4))
a<-table.element(a,round(perf.scalederr[i],4))
a<-table.element(a,round(perf.mase1[i],4))
a<-table.row.end(a)
}
a<-table.end(a)
table.save(a,file='mytable1.tab')