Free Statistics

of Irreproducible Research!

Author's title

Author*Unverified author*
R Software Modulerwasp_arimaforecasting.wasp
Title produced by softwareARIMA Forecasting
Date of computationThu, 24 Jun 2021 15:54:30 +0200
Cite this page as followsStatistical Computations at FreeStatistics.org, Office for Research Development and Education, URL https://freestatistics.org/blog/index.php?v=date/2021/Jun/24/t162454289988140t14nla4amc.htm/, Retrieved Thu, 25 Apr 2024 20:05:30 +0000
Statistical Computations at FreeStatistics.org, Office for Research Development and Education, URL https://freestatistics.org/blog/index.php?pk=319463, Retrieved Thu, 25 Apr 2024 20:05:30 +0000
QR Codes:

Original text written by user:
IsPrivate?No (this computation is public)
User-defined keywords
Estimated Impact84
Family? (F = Feedback message, R = changed R code, M = changed R Module, P = changed Parameters, D = changed Data)
-       [ARIMA Forecasting] [] [2021-06-24 13:54:30] [d41d8cd98f00b204e9800998ecf8427e] [Current]
Feedback Forum

Post a new message
Dataseries X:
124
120
84
120
72
71
103
115
106
134
139
183
170
233
140
185
172
127
266
136
132
125
155
148




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

Globally Unique Identifier (entire table): ba.freestatistics.org/blog/index.php?pk=319463&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 time1 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[19])
16185-------
17172-------
18127-------
19266-------
20136186.796995.3314278.26240.13820.04480.62440.0448
21132129.703136.7239222.68220.48070.44720.52270.002
22125266.4938173.4646359.5230.00140.99770.50420.5042
23155186.887156.0334317.74080.31650.8230.7770.118
24148129.7195-2.2095261.64860.3930.35360.48650.0215

\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[19]) \tabularnewline
16 & 185 & - & - & - & - & - & - & - \tabularnewline
17 & 172 & - & - & - & - & - & - & - \tabularnewline
18 & 127 & - & - & - & - & - & - & - \tabularnewline
19 & 266 & - & - & - & - & - & - & - \tabularnewline
20 & 136 & 186.7969 & 95.3314 & 278.2624 & 0.1382 & 0.0448 & 0.6244 & 0.0448 \tabularnewline
21 & 132 & 129.7031 & 36.7239 & 222.6822 & 0.4807 & 0.4472 & 0.5227 & 0.002 \tabularnewline
22 & 125 & 266.4938 & 173.4646 & 359.523 & 0.0014 & 0.9977 & 0.5042 & 0.5042 \tabularnewline
23 & 155 & 186.8871 & 56.0334 & 317.7408 & 0.3165 & 0.823 & 0.777 & 0.118 \tabularnewline
24 & 148 & 129.7195 & -2.2095 & 261.6486 & 0.393 & 0.3536 & 0.4865 & 0.0215 \tabularnewline
\hline
\end{tabular}
%Source: https://freestatistics.org/blog/index.php?pk=319463&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[19])[/C][/ROW]
[ROW][C]16[/C][C]185[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][/ROW]
[ROW][C]17[/C][C]172[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][/ROW]
[ROW][C]18[/C][C]127[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][/ROW]
[ROW][C]19[/C][C]266[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][/ROW]
[ROW][C]20[/C][C]136[/C][C]186.7969[/C][C]95.3314[/C][C]278.2624[/C][C]0.1382[/C][C]0.0448[/C][C]0.6244[/C][C]0.0448[/C][/ROW]
[ROW][C]21[/C][C]132[/C][C]129.7031[/C][C]36.7239[/C][C]222.6822[/C][C]0.4807[/C][C]0.4472[/C][C]0.5227[/C][C]0.002[/C][/ROW]
[ROW][C]22[/C][C]125[/C][C]266.4938[/C][C]173.4646[/C][C]359.523[/C][C]0.0014[/C][C]0.9977[/C][C]0.5042[/C][C]0.5042[/C][/ROW]
[ROW][C]23[/C][C]155[/C][C]186.8871[/C][C]56.0334[/C][C]317.7408[/C][C]0.3165[/C][C]0.823[/C][C]0.777[/C][C]0.118[/C][/ROW]
[ROW][C]24[/C][C]148[/C][C]129.7195[/C][C]-2.2095[/C][C]261.6486[/C][C]0.393[/C][C]0.3536[/C][C]0.4865[/C][C]0.0215[/C][/ROW]
[/TABLE]
Source: https://freestatistics.org/blog/index.php?pk=319463&T=1

Globally Unique Identifier (entire table): ba.freestatistics.org/blog/index.php?pk=319463&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[19])
16185-------
17172-------
18127-------
19266-------
20136186.796995.3314278.26240.13820.04480.62440.0448
21132129.703136.7239222.68220.48070.44720.52270.002
22125266.4938173.4646359.5230.00140.99770.50420.5042
23155186.887156.0334317.74080.31650.8230.7770.118
24148129.7195-2.2095261.64860.3930.35360.48650.0215







Univariate ARIMA Extrapolation Forecast Performance
time% S.E.PEMAPEsMAPESq.EMSERMSEScaledEMASE
200.2498-0.37350.37350.31472580.32600-4.23314.2331
210.36570.01740.19550.16615.27591292.80135.95550.19142.2122
220.1781-1.1320.50760.351720020.49287535.364986.8065-11.79115.4052
230.3572-0.20570.43210.31041016.78815905.720776.8487-2.65734.7182
240.51890.12350.37040.2747334.1754791.411669.221.52344.0793

\begin{tabular}{lllllllll}
\hline
Univariate ARIMA Extrapolation Forecast Performance \tabularnewline
time & % S.E. & PE & MAPE & sMAPE & Sq.E & MSE & RMSE & ScaledE & MASE \tabularnewline
20 & 0.2498 & -0.3735 & 0.3735 & 0.3147 & 2580.326 & 0 & 0 & -4.2331 & 4.2331 \tabularnewline
21 & 0.3657 & 0.0174 & 0.1955 & 0.1661 & 5.2759 & 1292.801 & 35.9555 & 0.1914 & 2.2122 \tabularnewline
22 & 0.1781 & -1.132 & 0.5076 & 0.3517 & 20020.4928 & 7535.3649 & 86.8065 & -11.7911 & 5.4052 \tabularnewline
23 & 0.3572 & -0.2057 & 0.4321 & 0.3104 & 1016.7881 & 5905.7207 & 76.8487 & -2.6573 & 4.7182 \tabularnewline
24 & 0.5189 & 0.1235 & 0.3704 & 0.2747 & 334.175 & 4791.4116 & 69.22 & 1.5234 & 4.0793 \tabularnewline
\hline
\end{tabular}
%Source: https://freestatistics.org/blog/index.php?pk=319463&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]20[/C][C]0.2498[/C][C]-0.3735[/C][C]0.3735[/C][C]0.3147[/C][C]2580.326[/C][C]0[/C][C]0[/C][C]-4.2331[/C][C]4.2331[/C][/ROW]
[ROW][C]21[/C][C]0.3657[/C][C]0.0174[/C][C]0.1955[/C][C]0.1661[/C][C]5.2759[/C][C]1292.801[/C][C]35.9555[/C][C]0.1914[/C][C]2.2122[/C][/ROW]
[ROW][C]22[/C][C]0.1781[/C][C]-1.132[/C][C]0.5076[/C][C]0.3517[/C][C]20020.4928[/C][C]7535.3649[/C][C]86.8065[/C][C]-11.7911[/C][C]5.4052[/C][/ROW]
[ROW][C]23[/C][C]0.3572[/C][C]-0.2057[/C][C]0.4321[/C][C]0.3104[/C][C]1016.7881[/C][C]5905.7207[/C][C]76.8487[/C][C]-2.6573[/C][C]4.7182[/C][/ROW]
[ROW][C]24[/C][C]0.5189[/C][C]0.1235[/C][C]0.3704[/C][C]0.2747[/C][C]334.175[/C][C]4791.4116[/C][C]69.22[/C][C]1.5234[/C][C]4.0793[/C][/ROW]
[/TABLE]
Source: https://freestatistics.org/blog/index.php?pk=319463&T=2

Globally Unique Identifier (entire table): ba.freestatistics.org/blog/index.php?pk=319463&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
200.2498-0.37350.37350.31472580.32600-4.23314.2331
210.36570.01740.19550.16615.27591292.80135.95550.19142.2122
220.1781-1.1320.50760.351720020.49287535.364986.8065-11.79115.4052
230.3572-0.20570.43210.31041016.78815905.720776.8487-2.65734.7182
240.51890.12350.37040.2747334.1754791.411669.221.52344.0793



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