Free Statistics

of Irreproducible Research!

Author's title

Author*The author of this computation has been verified*
R Software Modulerwasp_arimaforecasting.wasp
Title produced by softwareARIMA Forecasting
Date of computationFri, 16 Dec 2016 17:46:28 +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/t1481906803pi600n3hl0ofyua.htm/, Retrieved Thu, 02 May 2024 15:19:00 +0000
Statistical Computations at FreeStatistics.org, Office for Research Development and Education, URL https://freestatistics.org/blog/index.php?pk=300443, Retrieved Thu, 02 May 2024 15:19:00 +0000
QR Codes:

Original text written by user:
IsPrivate?No (this computation is public)
User-defined keywords
Estimated Impact60
Family? (F = Feedback message, R = changed R code, M = changed R Module, P = changed Parameters, D = changed Data)
-     [ARIMA Backward Selection] [] [2016-12-16 13:36:55] [683f400e1b95307fc738e729f07c4fce]
-    D  [ARIMA Backward Selection] [] [2016-12-16 14:17:56] [683f400e1b95307fc738e729f07c4fce]
- R  D    [ARIMA Backward Selection] [] [2016-12-16 14:51:40] [683f400e1b95307fc738e729f07c4fce]
- RM D        [ARIMA Forecasting] [] [2016-12-16 16:46:28] [404ac5ee4f7301873f6a96ef36861981] [Current]
Feedback Forum

Post a new message
Dataseries X:
5190
4805
4935
3675
3805
5260
6735
5435
3090
4750
3110
3135
4985
3665
3535
4195
3960
3150
3330
4265
4240
4255
3685
3525
4000
3050
3800
3035
3095
2820
2760
4435
3665
4140
2890
3295
2660
2950
2770
3365
3090
3275
3370
2685
2760
3030
2410
2570
2675
3100
3025




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=300443&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=300443&T=0

Globally Unique Identifier (entire table): ba.freestatistics.org/blog/index.php?pk=300443&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[46])
452760-------
463030-------
4724103171.43861785.69364557.18370.14070.57930.57930.5793
4825703063.98711582.21284545.76130.25670.80650.80650.5179
4926753182.60351695.96864669.23850.25170.79040.79040.5797
5031002975.28491470.6694479.90070.43550.65220.65220.4716
5130253048.52791543.69644553.35930.48780.47330.47330.5096

\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[46]) \tabularnewline
45 & 2760 & - & - & - & - & - & - & - \tabularnewline
46 & 3030 & - & - & - & - & - & - & - \tabularnewline
47 & 2410 & 3171.4386 & 1785.6936 & 4557.1837 & 0.1407 & 0.5793 & 0.5793 & 0.5793 \tabularnewline
48 & 2570 & 3063.9871 & 1582.2128 & 4545.7613 & 0.2567 & 0.8065 & 0.8065 & 0.5179 \tabularnewline
49 & 2675 & 3182.6035 & 1695.9686 & 4669.2385 & 0.2517 & 0.7904 & 0.7904 & 0.5797 \tabularnewline
50 & 3100 & 2975.2849 & 1470.669 & 4479.9007 & 0.4355 & 0.6522 & 0.6522 & 0.4716 \tabularnewline
51 & 3025 & 3048.5279 & 1543.6964 & 4553.3593 & 0.4878 & 0.4733 & 0.4733 & 0.5096 \tabularnewline
\hline
\end{tabular}
%Source: https://freestatistics.org/blog/index.php?pk=300443&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[46])[/C][/ROW]
[ROW][C]45[/C][C]2760[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][/ROW]
[ROW][C]46[/C][C]3030[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][/ROW]
[ROW][C]47[/C][C]2410[/C][C]3171.4386[/C][C]1785.6936[/C][C]4557.1837[/C][C]0.1407[/C][C]0.5793[/C][C]0.5793[/C][C]0.5793[/C][/ROW]
[ROW][C]48[/C][C]2570[/C][C]3063.9871[/C][C]1582.2128[/C][C]4545.7613[/C][C]0.2567[/C][C]0.8065[/C][C]0.8065[/C][C]0.5179[/C][/ROW]
[ROW][C]49[/C][C]2675[/C][C]3182.6035[/C][C]1695.9686[/C][C]4669.2385[/C][C]0.2517[/C][C]0.7904[/C][C]0.7904[/C][C]0.5797[/C][/ROW]
[ROW][C]50[/C][C]3100[/C][C]2975.2849[/C][C]1470.669[/C][C]4479.9007[/C][C]0.4355[/C][C]0.6522[/C][C]0.6522[/C][C]0.4716[/C][/ROW]
[ROW][C]51[/C][C]3025[/C][C]3048.5279[/C][C]1543.6964[/C][C]4553.3593[/C][C]0.4878[/C][C]0.4733[/C][C]0.4733[/C][C]0.5096[/C][/ROW]
[/TABLE]
Source: https://freestatistics.org/blog/index.php?pk=300443&T=1

Globally Unique Identifier (entire table): ba.freestatistics.org/blog/index.php?pk=300443&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[46])
452760-------
463030-------
4724103171.43861785.69364557.18370.14070.57930.57930.5793
4825703063.98711582.21284545.76130.25670.80650.80650.5179
4926753182.60351695.96864669.23850.25170.79040.79040.5797
5031002975.28491470.6694479.90070.43550.65220.65220.4716
5130253048.52791543.69644553.35930.48780.47330.47330.5096







Univariate ARIMA Extrapolation Forecast Performance
time% S.E.PEMAPEsMAPESq.EMSERMSEScaledEMASE
470.2229-0.31590.31590.2728579788.775800-3.98143.9814
480.2467-0.19220.25410.2241244023.2135411905.9946641.799-2.58293.2822
490.2383-0.18980.23260.2072257661.3482360491.1125600.4091-2.65413.0728
500.2580.04020.18450.165615553.8649274256.8006523.69530.65212.4676
510.2518-0.00780.14920.1341553.5609219516.1527468.5255-0.1231.9987

\begin{tabular}{lllllllll}
\hline
Univariate ARIMA Extrapolation Forecast Performance \tabularnewline
time & % S.E. & PE & MAPE & sMAPE & Sq.E & MSE & RMSE & ScaledE & MASE \tabularnewline
47 & 0.2229 & -0.3159 & 0.3159 & 0.2728 & 579788.7758 & 0 & 0 & -3.9814 & 3.9814 \tabularnewline
48 & 0.2467 & -0.1922 & 0.2541 & 0.2241 & 244023.2135 & 411905.9946 & 641.799 & -2.5829 & 3.2822 \tabularnewline
49 & 0.2383 & -0.1898 & 0.2326 & 0.2072 & 257661.3482 & 360491.1125 & 600.4091 & -2.6541 & 3.0728 \tabularnewline
50 & 0.258 & 0.0402 & 0.1845 & 0.1656 & 15553.8649 & 274256.8006 & 523.6953 & 0.6521 & 2.4676 \tabularnewline
51 & 0.2518 & -0.0078 & 0.1492 & 0.1341 & 553.5609 & 219516.1527 & 468.5255 & -0.123 & 1.9987 \tabularnewline
\hline
\end{tabular}
%Source: https://freestatistics.org/blog/index.php?pk=300443&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]47[/C][C]0.2229[/C][C]-0.3159[/C][C]0.3159[/C][C]0.2728[/C][C]579788.7758[/C][C]0[/C][C]0[/C][C]-3.9814[/C][C]3.9814[/C][/ROW]
[ROW][C]48[/C][C]0.2467[/C][C]-0.1922[/C][C]0.2541[/C][C]0.2241[/C][C]244023.2135[/C][C]411905.9946[/C][C]641.799[/C][C]-2.5829[/C][C]3.2822[/C][/ROW]
[ROW][C]49[/C][C]0.2383[/C][C]-0.1898[/C][C]0.2326[/C][C]0.2072[/C][C]257661.3482[/C][C]360491.1125[/C][C]600.4091[/C][C]-2.6541[/C][C]3.0728[/C][/ROW]
[ROW][C]50[/C][C]0.258[/C][C]0.0402[/C][C]0.1845[/C][C]0.1656[/C][C]15553.8649[/C][C]274256.8006[/C][C]523.6953[/C][C]0.6521[/C][C]2.4676[/C][/ROW]
[ROW][C]51[/C][C]0.2518[/C][C]-0.0078[/C][C]0.1492[/C][C]0.1341[/C][C]553.5609[/C][C]219516.1527[/C][C]468.5255[/C][C]-0.123[/C][C]1.9987[/C][/ROW]
[/TABLE]
Source: https://freestatistics.org/blog/index.php?pk=300443&T=2

Globally Unique Identifier (entire table): ba.freestatistics.org/blog/index.php?pk=300443&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
470.2229-0.31590.31590.2728579788.775800-3.98143.9814
480.2467-0.19220.25410.2241244023.2135411905.9946641.799-2.58293.2822
490.2383-0.18980.23260.2072257661.3482360491.1125600.4091-2.65413.0728
500.2580.04020.18450.165615553.8649274256.8006523.69530.65212.4676
510.2518-0.00780.14920.1341553.5609219516.1527468.5255-0.1231.9987



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