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 computationMon, 23 Jan 2017 09:20:31 +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/2017/Jan/23/t1485159649qnojd8m2z2oivt9.htm/, Retrieved Wed, 15 May 2024 21:11:34 +0000
Statistical Computations at FreeStatistics.org, Office for Research Development and Education, URL https://freestatistics.org/blog/index.php?pk=303735, Retrieved Wed, 15 May 2024 21:11:34 +0000
QR Codes:

Original text written by user:
IsPrivate?No (this computation is public)
User-defined keywords
Estimated Impact50
Family? (F = Feedback message, R = changed R code, M = changed R Module, P = changed Parameters, D = changed Data)
-       [ARIMA Forecasting] [] [2017-01-23 08:20:31] [863feeaf19a0ddfce7bd9c25059c4d8a] [Current]
Feedback Forum

Post a new message
Dataseries X:
3035
2552
2704
2554
2014
1655
1721
1524
1596
2074
2199
2512
2933
2889
2938
2497
1870
1726
1607
1545
1396
1787
2076
2837
2787
3891
3179
2011
1636
1580
1489
1300
1356
1653
2013
2823
3102
2294
2385
2444
1748
1554
1498
1361
1346
1564
1640
2293
2815
3137
2679
1969
1870
1633
1529
1366
1357
1570
1535
2491
3084
2605
2573
2143
1693
1504
1461
1354
1333
1492
1781
1915




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

Globally Unique Identifier (entire table): ba.freestatistics.org/blog/index.php?pk=303735&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[72])
681354-------
691333-------
701492-------
711781-------
721915-------
73NA2930.72142249.22683723.0945NA0.99410.994
74NA2508.08761890.51693233.1336NANA0.9970.9456
75NA2499.16551882.98763222.7421NANA0.97410.9432
76NA2112.8211558.95052770.5392NANA0.72220.7222
77NA1745.12081254.10152336.4086NANANA0.2867
78NA1552.64151097.01352106.2185NANANA0.0998
79NA1516.92421068.0462063.2959NANANA0.0766
80NA1401.3752974.76581923.9431NANANA0.027

\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[72]) \tabularnewline
68 & 1354 & - & - & - & - & - & - & - \tabularnewline
69 & 1333 & - & - & - & - & - & - & - \tabularnewline
70 & 1492 & - & - & - & - & - & - & - \tabularnewline
71 & 1781 & - & - & - & - & - & - & - \tabularnewline
72 & 1915 & - & - & - & - & - & - & - \tabularnewline
73 & NA & 2930.7214 & 2249.2268 & 3723.0945 & NA & 0.994 & 1 & 0.994 \tabularnewline
74 & NA & 2508.0876 & 1890.5169 & 3233.1336 & NA & NA & 0.997 & 0.9456 \tabularnewline
75 & NA & 2499.1655 & 1882.9876 & 3222.7421 & NA & NA & 0.9741 & 0.9432 \tabularnewline
76 & NA & 2112.821 & 1558.9505 & 2770.5392 & NA & NA & 0.7222 & 0.7222 \tabularnewline
77 & NA & 1745.1208 & 1254.1015 & 2336.4086 & NA & NA & NA & 0.2867 \tabularnewline
78 & NA & 1552.6415 & 1097.0135 & 2106.2185 & NA & NA & NA & 0.0998 \tabularnewline
79 & NA & 1516.9242 & 1068.046 & 2063.2959 & NA & NA & NA & 0.0766 \tabularnewline
80 & NA & 1401.3752 & 974.7658 & 1923.9431 & NA & NA & NA & 0.027 \tabularnewline
\hline
\end{tabular}
%Source: https://freestatistics.org/blog/index.php?pk=303735&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[72])[/C][/ROW]
[ROW][C]68[/C][C]1354[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][/ROW]
[ROW][C]69[/C][C]1333[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][/ROW]
[ROW][C]70[/C][C]1492[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][/ROW]
[ROW][C]71[/C][C]1781[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][/ROW]
[ROW][C]72[/C][C]1915[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][/ROW]
[ROW][C]73[/C][C]NA[/C][C]2930.7214[/C][C]2249.2268[/C][C]3723.0945[/C][C]NA[/C][C]0.994[/C][C]1[/C][C]0.994[/C][/ROW]
[ROW][C]74[/C][C]NA[/C][C]2508.0876[/C][C]1890.5169[/C][C]3233.1336[/C][C]NA[/C][C]NA[/C][C]0.997[/C][C]0.9456[/C][/ROW]
[ROW][C]75[/C][C]NA[/C][C]2499.1655[/C][C]1882.9876[/C][C]3222.7421[/C][C]NA[/C][C]NA[/C][C]0.9741[/C][C]0.9432[/C][/ROW]
[ROW][C]76[/C][C]NA[/C][C]2112.821[/C][C]1558.9505[/C][C]2770.5392[/C][C]NA[/C][C]NA[/C][C]0.7222[/C][C]0.7222[/C][/ROW]
[ROW][C]77[/C][C]NA[/C][C]1745.1208[/C][C]1254.1015[/C][C]2336.4086[/C][C]NA[/C][C]NA[/C][C]NA[/C][C]0.2867[/C][/ROW]
[ROW][C]78[/C][C]NA[/C][C]1552.6415[/C][C]1097.0135[/C][C]2106.2185[/C][C]NA[/C][C]NA[/C][C]NA[/C][C]0.0998[/C][/ROW]
[ROW][C]79[/C][C]NA[/C][C]1516.9242[/C][C]1068.046[/C][C]2063.2959[/C][C]NA[/C][C]NA[/C][C]NA[/C][C]0.0766[/C][/ROW]
[ROW][C]80[/C][C]NA[/C][C]1401.3752[/C][C]974.7658[/C][C]1923.9431[/C][C]NA[/C][C]NA[/C][C]NA[/C][C]0.027[/C][/ROW]
[/TABLE]
Source: https://freestatistics.org/blog/index.php?pk=303735&T=1

Globally Unique Identifier (entire table): ba.freestatistics.org/blog/index.php?pk=303735&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[72])
681354-------
691333-------
701492-------
711781-------
721915-------
73NA2930.72142249.22683723.0945NA0.99410.994
74NA2508.08761890.51693233.1336NANA0.9970.9456
75NA2499.16551882.98763222.7421NANA0.97410.9432
76NA2112.8211558.95052770.5392NANA0.72220.7222
77NA1745.12081254.10152336.4086NANANA0.2867
78NA1552.64151097.01352106.2185NANANA0.0998
79NA1516.92421068.0462063.2959NANANA0.0766
80NA1401.3752974.76581923.9431NANANA0.027







Univariate ARIMA Extrapolation Forecast Performance
time% S.E.PEMAPEsMAPESq.EMSERMSEScaledEMASE
730.1379NANANANA00NANA
740.1475NANANANANANANANA
750.1477NANANANANANANANA
760.1588NANANANANANANANA
770.1729NANANANANANANANA
780.1819NANANANANANANANA
790.1838NANANANANANANANA
800.1903NANANANANANANANA

\begin{tabular}{lllllllll}
\hline
Univariate ARIMA Extrapolation Forecast Performance \tabularnewline
time & % S.E. & PE & MAPE & sMAPE & Sq.E & MSE & RMSE & ScaledE & MASE \tabularnewline
73 & 0.1379 & NA & NA & NA & NA & 0 & 0 & NA & NA \tabularnewline
74 & 0.1475 & NA & NA & NA & NA & NA & NA & NA & NA \tabularnewline
75 & 0.1477 & NA & NA & NA & NA & NA & NA & NA & NA \tabularnewline
76 & 0.1588 & NA & NA & NA & NA & NA & NA & NA & NA \tabularnewline
77 & 0.1729 & NA & NA & NA & NA & NA & NA & NA & NA \tabularnewline
78 & 0.1819 & NA & NA & NA & NA & NA & NA & NA & NA \tabularnewline
79 & 0.1838 & NA & NA & NA & NA & NA & NA & NA & NA \tabularnewline
80 & 0.1903 & NA & NA & NA & NA & NA & NA & NA & NA \tabularnewline
\hline
\end{tabular}
%Source: https://freestatistics.org/blog/index.php?pk=303735&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]73[/C][C]0.1379[/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]74[/C][C]0.1475[/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]75[/C][C]0.1477[/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]76[/C][C]0.1588[/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]77[/C][C]0.1729[/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]78[/C][C]0.1819[/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]79[/C][C]0.1838[/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]80[/C][C]0.1903[/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=303735&T=2

Globally Unique Identifier (entire table): ba.freestatistics.org/blog/index.php?pk=303735&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
730.1379NANANANA00NANA
740.1475NANANANANANANANA
750.1477NANANANANANANANA
760.1588NANANANANANANANA
770.1729NANANANANANANANA
780.1819NANANANANANANANA
790.1838NANANANANANANANA
800.1903NANANANANANANANA



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