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, 23 Dec 2016 10:24:05 +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/t1482485249jl5lnu1qqmdanp2.htm/, Retrieved Wed, 08 May 2024 00:36:00 +0000
Statistical Computations at FreeStatistics.org, Office for Research Development and Education, URL https://freestatistics.org/blog/index.php?pk=302807, Retrieved Wed, 08 May 2024 00:36:00 +0000
QR Codes:

Original text written by user:
IsPrivate?No (this computation is public)
User-defined keywords
Estimated Impact57
Family? (F = Feedback message, R = changed R code, M = changed R Module, P = changed Parameters, D = changed Data)
-       [ARIMA Forecasting] [ARIMA Forecasting] [2016-12-23 09:24:05] [02b5df5aa2382aa6805f6181aa5e25f1] [Current]
Feedback Forum

Post a new message
Dataseries X:
3800
4150
4200
3650
3750
4250
2700
3950
4400
4500
4500
4050
4250
4450
4500
3950
4300
4500
2800
4300
4750
4900
5000
4500
4500
4800
4450
4550
4150
4750
2950
4650
4950
5050
5300
4650
4600
4950
4950
4400
4550
4900
3100
4800
5200
5350
5450
4700
4800
5200
5200
4550
4800
5200
3350
5050
5550
5650
5700
5100
5200
5500
5200
5700
5200
5800
3700
5450
5950
6000
6200
5500
5550
6100
6150
5500
5700
6000
3750
5900
6350
6350
6500
5750
5850
6300
6550
5450
5750
6600
3850
6000
6750
6750
6850
6100
6400
6750
5800
6750
5850
6800
3800
6400
6800
7000
7300
6300
6500
6950
7100
6100
6550
6800




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

Globally Unique Identifier (entire table): ba.freestatistics.org/blog/index.php?pk=302807&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[110])
986750-------
995800-------
1006750-------
1015850-------
1026800-------
1033800-------
1046400-------
1056800-------
1067000-------
1077300-------
1086300-------
1096500-------
1106950-------
11171006613.91776224.20517003.63030.00720.045510.0455
11261006572.02426178.78396965.26440.00930.00420.18750.0298
11365506346.90055907.03016786.77090.18270.86440.98660.0036
11468006878.2016398.6537357.7490.37460.91010.62540.3846

\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[110]) \tabularnewline
98 & 6750 & - & - & - & - & - & - & - \tabularnewline
99 & 5800 & - & - & - & - & - & - & - \tabularnewline
100 & 6750 & - & - & - & - & - & - & - \tabularnewline
101 & 5850 & - & - & - & - & - & - & - \tabularnewline
102 & 6800 & - & - & - & - & - & - & - \tabularnewline
103 & 3800 & - & - & - & - & - & - & - \tabularnewline
104 & 6400 & - & - & - & - & - & - & - \tabularnewline
105 & 6800 & - & - & - & - & - & - & - \tabularnewline
106 & 7000 & - & - & - & - & - & - & - \tabularnewline
107 & 7300 & - & - & - & - & - & - & - \tabularnewline
108 & 6300 & - & - & - & - & - & - & - \tabularnewline
109 & 6500 & - & - & - & - & - & - & - \tabularnewline
110 & 6950 & - & - & - & - & - & - & - \tabularnewline
111 & 7100 & 6613.9177 & 6224.2051 & 7003.6303 & 0.0072 & 0.0455 & 1 & 0.0455 \tabularnewline
112 & 6100 & 6572.0242 & 6178.7839 & 6965.2644 & 0.0093 & 0.0042 & 0.1875 & 0.0298 \tabularnewline
113 & 6550 & 6346.9005 & 5907.0301 & 6786.7709 & 0.1827 & 0.8644 & 0.9866 & 0.0036 \tabularnewline
114 & 6800 & 6878.201 & 6398.653 & 7357.749 & 0.3746 & 0.9101 & 0.6254 & 0.3846 \tabularnewline
\hline
\end{tabular}
%Source: https://freestatistics.org/blog/index.php?pk=302807&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[110])[/C][/ROW]
[ROW][C]98[/C][C]6750[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][/ROW]
[ROW][C]99[/C][C]5800[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][/ROW]
[ROW][C]100[/C][C]6750[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][/ROW]
[ROW][C]101[/C][C]5850[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][/ROW]
[ROW][C]102[/C][C]6800[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][/ROW]
[ROW][C]103[/C][C]3800[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][/ROW]
[ROW][C]104[/C][C]6400[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][/ROW]
[ROW][C]105[/C][C]6800[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][/ROW]
[ROW][C]106[/C][C]7000[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][/ROW]
[ROW][C]107[/C][C]7300[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][/ROW]
[ROW][C]108[/C][C]6300[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][/ROW]
[ROW][C]109[/C][C]6500[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][/ROW]
[ROW][C]110[/C][C]6950[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][C]-[/C][/ROW]
[ROW][C]111[/C][C]7100[/C][C]6613.9177[/C][C]6224.2051[/C][C]7003.6303[/C][C]0.0072[/C][C]0.0455[/C][C]1[/C][C]0.0455[/C][/ROW]
[ROW][C]112[/C][C]6100[/C][C]6572.0242[/C][C]6178.7839[/C][C]6965.2644[/C][C]0.0093[/C][C]0.0042[/C][C]0.1875[/C][C]0.0298[/C][/ROW]
[ROW][C]113[/C][C]6550[/C][C]6346.9005[/C][C]5907.0301[/C][C]6786.7709[/C][C]0.1827[/C][C]0.8644[/C][C]0.9866[/C][C]0.0036[/C][/ROW]
[ROW][C]114[/C][C]6800[/C][C]6878.201[/C][C]6398.653[/C][C]7357.749[/C][C]0.3746[/C][C]0.9101[/C][C]0.6254[/C][C]0.3846[/C][/ROW]
[/TABLE]
Source: https://freestatistics.org/blog/index.php?pk=302807&T=1

Globally Unique Identifier (entire table): ba.freestatistics.org/blog/index.php?pk=302807&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[110])
986750-------
995800-------
1006750-------
1015850-------
1026800-------
1033800-------
1046400-------
1056800-------
1067000-------
1077300-------
1086300-------
1096500-------
1106950-------
11171006613.91776224.20517003.63030.00720.045510.0455
11261006572.02426178.78396965.26440.00930.00420.18750.0298
11365506346.90055907.03016786.77090.18270.86440.98660.0036
11468006878.2016398.6537357.7490.37460.91010.62540.3846







Univariate ARIMA Extrapolation Forecast Performance
time% S.E.PEMAPEsMAPESq.EMSERMSEScaledEMASE
1110.03010.06850.06850.0709236275.9738000.85780.8578
1120.0305-0.07740.07290.0727222806.8016229541.3877479.1048-0.8330.8454
1130.03540.0310.0590.05941249.4045166777.3933408.38390.35840.6831
1140.0356-0.01150.04710.04716115.391126611.8927355.8256-0.1380.5468

\begin{tabular}{lllllllll}
\hline
Univariate ARIMA Extrapolation Forecast Performance \tabularnewline
time & % S.E. & PE & MAPE & sMAPE & Sq.E & MSE & RMSE & ScaledE & MASE \tabularnewline
111 & 0.0301 & 0.0685 & 0.0685 & 0.0709 & 236275.9738 & 0 & 0 & 0.8578 & 0.8578 \tabularnewline
112 & 0.0305 & -0.0774 & 0.0729 & 0.0727 & 222806.8016 & 229541.3877 & 479.1048 & -0.833 & 0.8454 \tabularnewline
113 & 0.0354 & 0.031 & 0.059 & 0.059 & 41249.4045 & 166777.3933 & 408.3839 & 0.3584 & 0.6831 \tabularnewline
114 & 0.0356 & -0.0115 & 0.0471 & 0.0471 & 6115.391 & 126611.8927 & 355.8256 & -0.138 & 0.5468 \tabularnewline
\hline
\end{tabular}
%Source: https://freestatistics.org/blog/index.php?pk=302807&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]111[/C][C]0.0301[/C][C]0.0685[/C][C]0.0685[/C][C]0.0709[/C][C]236275.9738[/C][C]0[/C][C]0[/C][C]0.8578[/C][C]0.8578[/C][/ROW]
[ROW][C]112[/C][C]0.0305[/C][C]-0.0774[/C][C]0.0729[/C][C]0.0727[/C][C]222806.8016[/C][C]229541.3877[/C][C]479.1048[/C][C]-0.833[/C][C]0.8454[/C][/ROW]
[ROW][C]113[/C][C]0.0354[/C][C]0.031[/C][C]0.059[/C][C]0.059[/C][C]41249.4045[/C][C]166777.3933[/C][C]408.3839[/C][C]0.3584[/C][C]0.6831[/C][/ROW]
[ROW][C]114[/C][C]0.0356[/C][C]-0.0115[/C][C]0.0471[/C][C]0.0471[/C][C]6115.391[/C][C]126611.8927[/C][C]355.8256[/C][C]-0.138[/C][C]0.5468[/C][/ROW]
[/TABLE]
Source: https://freestatistics.org/blog/index.php?pk=302807&T=2

Globally Unique Identifier (entire table): ba.freestatistics.org/blog/index.php?pk=302807&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
1110.03010.06850.06850.0709236275.9738000.85780.8578
1120.0305-0.07740.07290.0727222806.8016229541.3877479.1048-0.8330.8454
1130.03540.0310.0590.05941249.4045166777.3933408.38390.35840.6831
1140.0356-0.01150.04710.04716115.391126611.8927355.8256-0.1380.5468



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