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 computationTue, 20 Dec 2016 20:47:09 +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/20/t1482263259qy7cxbkit9aqaog.htm/, Retrieved Sat, 27 Apr 2024 18:03:41 +0000
Statistical Computations at FreeStatistics.org, Office for Research Development and Education, URL https://freestatistics.org/blog/index.php?pk=301792, Retrieved Sat, 27 Apr 2024 18:03:41 +0000
QR Codes:

Original text written by user:
IsPrivate?No (this computation is public)
User-defined keywords
Estimated Impact71
Family? (F = Feedback message, R = changed R code, M = changed R Module, P = changed Parameters, D = changed Data)
-       [ARIMA Forecasting] [] [2016-12-20 19:47:09] [2e11ca31a00cf8de75c33c1af2d59434] [Current]
Feedback Forum

Post a new message
Dataseries X:
2298.3
2424.67
2584.65
2639.42
2452.02
2537.49
2726.36
2843.85
2615.11
2778.08
2918.75
3023.41
2733.07
2933.31
3089.19
3256.6
2968.74
3101.7
3277.21
3420.1
3097.55
3286.21
3491.96
3608.53
3259.04
3492.27
3665.64
3808.02
3397.47
3644.83
3812.8
3958.78
3602.73
3845.49
4022.27
4195.29
3867.28
4142.62
4217.79
4487.61
4089.69
4431.36
4629.82
4832.81




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

Globally Unique Identifier (entire table): ba.freestatistics.org/blog/index.php?pk=301792&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 time2 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])
404487.61-------
414089.69-------
424431.36-------
434629.82-------
444832.81-------
45NA4424.56294326.55714524.7887NA010
46NA4768.79114652.7214887.7568NANA10.1458
47NA4923.0264793.34755056.2129NANA10.9079
48NA5184.60025038.41585335.0259NANA11
49NA4736.53064567.89224911.3947NANANA0.1403
50NA5117.63374919.25235324.0153NANANA0.9966
51NA5312.59385091.20435543.6105NANANA1
52NA5571.9225324.64435830.6834NANANA1

\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 & 4487.61 & - & - & - & - & - & - & - \tabularnewline
41 & 4089.69 & - & - & - & - & - & - & - \tabularnewline
42 & 4431.36 & - & - & - & - & - & - & - \tabularnewline
43 & 4629.82 & - & - & - & - & - & - & - \tabularnewline
44 & 4832.81 & - & - & - & - & - & - & - \tabularnewline
45 & NA & 4424.5629 & 4326.5571 & 4524.7887 & NA & 0 & 1 & 0 \tabularnewline
46 & NA & 4768.7911 & 4652.721 & 4887.7568 & NA & NA & 1 & 0.1458 \tabularnewline
47 & NA & 4923.026 & 4793.3475 & 5056.2129 & NA & NA & 1 & 0.9079 \tabularnewline
48 & NA & 5184.6002 & 5038.4158 & 5335.0259 & NA & NA & 1 & 1 \tabularnewline
49 & NA & 4736.5306 & 4567.8922 & 4911.3947 & NA & NA & NA & 0.1403 \tabularnewline
50 & NA & 5117.6337 & 4919.2523 & 5324.0153 & NA & NA & NA & 0.9966 \tabularnewline
51 & NA & 5312.5938 & 5091.2043 & 5543.6105 & NA & NA & NA & 1 \tabularnewline
52 & NA & 5571.922 & 5324.6443 & 5830.6834 & NA & NA & NA & 1 \tabularnewline
\hline
\end{tabular}
%Source: https://freestatistics.org/blog/index.php?pk=301792&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]4487.61[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][/ROW]
[ROW][C]41[/C][C]4089.69[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][/ROW]
[ROW][C]42[/C][C]4431.36[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][/ROW]
[ROW][C]43[/C][C]4629.82[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][/ROW]
[ROW][C]44[/C][C]4832.81[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][/ROW]
[ROW][C]45[/C][C]NA[/C][C]4424.5629[/C][C]4326.5571[/C][C]4524.7887[/C][C]NA[/C][C]0[/C][C]1[/C][C]0[/C][/ROW]
[ROW][C]46[/C][C]NA[/C][C]4768.7911[/C][C]4652.721[/C][C]4887.7568[/C][C]NA[/C][C]NA[/C][C]1[/C][C]0.1458[/C][/ROW]
[ROW][C]47[/C][C]NA[/C][C]4923.026[/C][C]4793.3475[/C][C]5056.2129[/C][C]NA[/C][C]NA[/C][C]1[/C][C]0.9079[/C][/ROW]
[ROW][C]48[/C][C]NA[/C][C]5184.6002[/C][C]5038.4158[/C][C]5335.0259[/C][C]NA[/C][C]NA[/C][C]1[/C][C]1[/C][/ROW]
[ROW][C]49[/C][C]NA[/C][C]4736.5306[/C][C]4567.8922[/C][C]4911.3947[/C][C]NA[/C][C]NA[/C][C]NA[/C][C]0.1403[/C][/ROW]
[ROW][C]50[/C][C]NA[/C][C]5117.6337[/C][C]4919.2523[/C][C]5324.0153[/C][C]NA[/C][C]NA[/C][C]NA[/C][C]0.9966[/C][/ROW]
[ROW][C]51[/C][C]NA[/C][C]5312.5938[/C][C]5091.2043[/C][C]5543.6105[/C][C]NA[/C][C]NA[/C][C]NA[/C][C]1[/C][/ROW]
[ROW][C]52[/C][C]NA[/C][C]5571.922[/C][C]5324.6443[/C][C]5830.6834[/C][C]NA[/C][C]NA[/C][C]NA[/C][C]1[/C][/ROW]
[/TABLE]
Source: https://freestatistics.org/blog/index.php?pk=301792&T=1

Globally Unique Identifier (entire table): ba.freestatistics.org/blog/index.php?pk=301792&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])
404487.61-------
414089.69-------
424431.36-------
434629.82-------
444832.81-------
45NA4424.56294326.55714524.7887NA010
46NA4768.79114652.7214887.7568NANA10.1458
47NA4923.0264793.34755056.2129NANA10.9079
48NA5184.60025038.41585335.0259NANA11
49NA4736.53064567.89224911.3947NANANA0.1403
50NA5117.63374919.25235324.0153NANANA0.9966
51NA5312.59385091.20435543.6105NANANA1
52NA5571.9225324.64435830.6834NANANA1







Univariate ARIMA Extrapolation Forecast Performance
time% S.E.PEMAPEsMAPESq.EMSERMSEScaledEMASE
450.0116NANANANA00NANA
460.0127NANANANANANANANA
470.0138NANANANANANANANA
480.0148NANANANANANANANA
490.0188NANANANANANANANA
500.0206NANANANANANANANA
510.0222NANANANANANANANA
520.0237NANANANANANANANA

\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.0116 & NA & NA & NA & NA & 0 & 0 & NA & NA \tabularnewline
46 & 0.0127 & NA & NA & NA & NA & NA & NA & NA & NA \tabularnewline
47 & 0.0138 & NA & NA & NA & NA & NA & NA & NA & NA \tabularnewline
48 & 0.0148 & NA & NA & NA & NA & NA & NA & NA & NA \tabularnewline
49 & 0.0188 & NA & NA & NA & NA & NA & NA & NA & NA \tabularnewline
50 & 0.0206 & NA & NA & NA & NA & NA & NA & NA & NA \tabularnewline
51 & 0.0222 & NA & NA & NA & NA & NA & NA & NA & NA \tabularnewline
52 & 0.0237 & NA & NA & NA & NA & NA & NA & NA & NA \tabularnewline
\hline
\end{tabular}
%Source: https://freestatistics.org/blog/index.php?pk=301792&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.0116[/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.0127[/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.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]
[ROW][C]48[/C][C]0.0148[/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.0188[/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.0206[/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.0222[/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.0237[/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=301792&T=2

Globally Unique Identifier (entire table): ba.freestatistics.org/blog/index.php?pk=301792&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.0116NANANANA00NANA
460.0127NANANANANANANANA
470.0138NANANANANANANANA
480.0148NANANANANANANANA
490.0188NANANANANANANANA
500.0206NANANANANANANANA
510.0222NANANANANANANANA
520.0237NANANANANANANANA



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