R version 2.9.0 (2009-04-17) Copyright (C) 2009 The R Foundation for Statistical Computing ISBN 3-900051-07-0 R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > x <- c(358.59 + ,362.96 + ,362.42 + ,364.97 + ,364.04 + ,361.06 + ,358.48 + ,352.96 + ,359.59 + ,360.39 + ,357.40 + ,362.93 + ,364.55 + ,365.73 + ,364.70 + ,364.65 + ,359.43 + ,362.14 + ,356.97 + ,354.82 + ,353.17 + ,357.06 + ,356.18 + ,355.01 + ,355.65 + ,357.31 + ,357.07 + ,357.91 + ,358.48 + ,358.97 + ,351.77 + ,352.16 + ,359.08 + ,360.35 + ,359.53 + ,359.30 + ,358.41 + ,359.68 + ,355.31 + ,357.08 + ,349.71 + ,354.13 + ,345.49 + ,341.69 + ,344.25 + ,340.17 + ,342.47 + ,344.43 + ,333.23 + ,339.72 + ,342.61 + ,346.36 + ,339.09 + ,339.73 + ,341.12 + ,335.94 + ,333.46 + ,335.66 + ,341.12 + ,342.21 + ,342.62 + ,346.06 + ,344.43 + ,346.65 + ,343.74 + ,335.67 + ,342.75 + ,341.77 + ,345.84 + ,346.52 + ,350.79 + ,345.44 + ,345.87 + ,338.48 + ,337.21 + ,340.81 + ,339.86 + ,342.86 + ,343.33 + ,341.73 + ,351.38 + ,351.13 + ,345.99 + ,347.55 + ,346.02 + ,345.29 + ,347.03 + ,348.01 + ,345.48 + ,349.40 + ,351.05 + ,349.70 + ,350.86 + ,354.45 + ,355.30 + ,357.48 + ,355.24 + ,351.79 + ,355.22 + ,351.02 + ,350.28 + ,350.17 + ,348.16 + ,340.30 + ,343.75 + ,344.71 + ,344.13 + ,342.14 + ,345.04 + ,346.02 + ,346.43 + ,347.07 + ,339.33 + ,339.10 + ,337.19 + ,339.58 + ,327.85 + ,326.81 + ,321.73 + ,320.45 + ,327.69 + ,323.95 + ,320.47 + ,322.13 + ,316.34 + ,314.78 + ,308.90 + ,308.62 + ,314.41 + ,306.88 + ,310.60 + ,321.60 + ,321.50 + ,325.68 + ,324.35 + ,320.01 + ,326.88 + ,332.39 + ,331.48 + ,332.62 + ,324.79 + ,327.12 + ,328.91 + ,328.37 + ,324.83 + ,325.90 + ,326.18 + ,328.94 + ,333.78 + ,328.06 + ,325.87 + ,325.41 + ,318.86 + ,319.13 + ,310.16 + ,311.73 + ,306.54 + ,311.16 + ,311.98 + ,306.72 + ,308.05 + ,300.76 + ,301.90 + ,293.09 + ,292.76 + ,294.58 + ,289.90 + ,296.69 + ,297.21 + ,293.31 + ,296.25 + ,298.60 + ,296.87 + ,301.02 + ,304.73 + ,301.92 + ,295.72 + ,293.18 + ,298.35 + ,297.99 + ,299.85 + ,299.85 + ,304.45 + ,299.45 + ,298.14 + ,298.78 + ,297.02 + ,301.33 + ,294.96 + ,296.69 + ,300.73 + ,301.96 + ,297.38 + ,293.87 + ,285.96 + ,285.41 + ,283.70 + ,284.76 + ,277.11 + ,274.73 + ,274.73 + ,274.73 + ,274.73 + ,274.69 + ,275.42 + ,264.15 + ,276.24 + ,268.88 + ,277.97 + ,280.49 + ,281.09 + ,276.16 + ,272.58 + ,270.94 + ,284.31 + ,283.94 + ,284.18 + ,282.83 + ,283.84 + ,282.71 + ,279.29 + ,280.70 + ,274.47 + ,273.44 + ,275.49 + ,279.46 + ,280.19 + ,288.21 + ,284.80 + ,281.41 + ,283.39 + ,287.97 + ,290.77 + ,290.60 + ,289.67 + ,289.84 + ,298.55 + ,296.07 + ,297.14 + ,295.34 + ,296.25 + ,294.30 + ,296.15 + ,296.49 + ,298.05 + ,301.03 + ,300.52 + ,301.50 + ,296.93 + ,289.84 + ,291.44 + ,286.88 + ,286.74 + ,288.93 + ,292.19 + ,295.39 + ,295.86 + ,293.36 + ,292.86 + ,292.73 + ,296.73 + ,285.02 + ,285.24 + ,288.62 + ,283.36 + ,285.84 + ,291.48 + ,291.41 + ,287.77 + ,284.97 + ,286.05 + ,278.19 + ,281.21 + ,277.92 + ,280.08 + ,269.24 + ,268.48 + ,268.83 + ,269.54 + ,262.37 + ,265.12 + ,265.34 + ,263.32 + ,267.18 + ,260.75 + ,261.78 + ,257.27 + ,255.63 + ,251.39 + ,259.49 + ,261.18 + ,261.65 + ,262.01 + ,265.23 + ,268.10 + ,262.27 + ,263.59 + ,257.85 + ,265.69 + ,271.15 + ,266.69 + ,265.77 + ,262.32 + ,270.48 + ,273.03 + ,269.13 + ,280.65 + ,282.75 + ,281.44 + ,281.99 + ,282.86 + ,287.21 + ,283.11 + ,280.66 + ,282.39 + ,280.83 + ,284.71 + ,279.99 + ,283.50 + ,284.88 + ,288.60 + ,284.80 + ,287.20 + ,286.22 + ,286.54 + ,279.58 + ,283.08 + ,288.88 + ,280.18 + ,284.16 + ,290.57 + ,286.82 + ,273.00 + ,278.69 + ,264.54 + ,271.92 + ,283.60 + ,269.25 + ,263.58 + ,264.16 + ,268.85 + ,269.67 + ,249.41 + ,268.99 + ,268.65 + ,260.16 + ,256.55 + ,251.47 + ,234.93 + ,232.96 + ,215.49 + ,213.68 + ,236.07 + ,235.41 + ,214.77 + ,225.85 + ,224.64 + ,238.26 + ,232.44 + ,222.50 + ,225.28 + ,220.49 + ,216.86 + ,234.70 + ,230.06 + ,238.27 + ,238.56 + ,242.70 + ,249.14 + ,234.89 + ,227.78 + ,234.04 + ,230.70 + ,230.17 + ,218.23 + ,232.20 + ,220.76 + ,215.60 + ,217.69 + ,204.35 + ,191.44 + ,203.84 + ,211.86 + ,210.57 + ,219.57 + ,219.98 + ,226.01 + ,207.04 + ,212.52 + ,217.92 + ,210.45 + ,218.53 + ,223.32 + ,218.76 + ,217.63) > par10 = 'FALSE' > par9 = '0' > par8 = '2' > par7 = '0' > par6 = '1' > par5 = '1' > par4 = '0' > par3 = '1' > par2 = '1' > par1 = '20' > #'GNU S' R Code compiled by R2WASP v. 1.0.44 () > #Author: Prof. Dr. P. Wessa > #To cite this work: AUTHOR(S), (YEAR), YOUR SOFTWARE TITLE (vNUMBER) in Free Statistics Software (v$_version), Office for Research Development and Education, URL http://www.wessa.net/rwasp_YOURPAGE.wasp/ > #Source of accompanying publication: Office for Research, Development, and Education > #Technical description: Write here your technical program description (don't use hard returns!) > 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 + 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')) Call: arima(x = x[1:nx], order = c(par6, par3, par7), seasonal = list(order = c(par8, par4, par9), period = par5), include.mean = par10, method = "ML") Coefficients: ar1 sar1 sar2 0.1312 -0.3680 -0.1717 s.e. 0.2285 0.2253 0.1068 sigma^2 estimated as 26.34: log likelihood = -1142.44, aic = 2292.88 > (forecast <- predict(arima.out,fx)) $pred Time Series: Start = 376 End = 395 Frequency = 1 [1] 221.0481 221.8425 221.0376 221.1936 221.2739 221.2175 221.2245 221.2316 [9] 221.2278 221.2280 221.2286 221.2283 221.2283 221.2284 221.2283 221.2283 [17] 221.2283 221.2283 221.2283 221.2283 $se Time Series: Start = 376 End = 395 Frequency = 1 [1] 5.132543 6.456439 7.378346 8.354463 9.199643 9.960066 10.675148 [8] 11.344240 11.975021 12.574701 13.147034 13.695399 14.222665 14.731072 [15] 15.222504 15.698561 16.160600 16.609792 17.047152 17.473568 > (lb <- forecast$pred - 1.96 * forecast$se) Time Series: Start = 376 End = 395 Frequency = 1 [1] 210.9883 209.1879 206.5761 204.8189 203.2426 201.6958 200.3012 198.9969 [9] 197.7568 196.5816 195.4604 194.3853 193.3519 192.3555 191.3922 190.4592 [17] 189.5536 188.6732 187.8159 186.9802 > (ub <- forecast$pred + 1.96 * forecast$se) Time Series: Start = 376 End = 395 Frequency = 1 [1] 231.1078 234.4971 235.4992 237.5684 239.3052 240.7393 242.1478 243.4663 [9] 244.6988 245.8744 246.9968 248.0713 249.1047 250.1013 251.0645 251.9975 [17] 252.9031 253.7835 254.6408 255.4765 > 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)) [1] 358.5900 362.9600 362.4200 364.9700 364.0400 361.0600 358.4800 352.9600 [9] 359.5900 360.3900 357.4000 362.9300 364.5500 365.7300 364.7000 364.6500 [17] 359.4300 362.1400 356.9700 354.8200 353.1700 357.0600 356.1800 355.0100 [25] 355.6500 357.3100 357.0700 357.9100 358.4800 358.9700 351.7700 352.1600 [33] 359.0800 360.3500 359.5300 359.3000 358.4100 359.6800 355.3100 357.0800 [41] 349.7100 354.1300 345.4900 341.6900 344.2500 340.1700 342.4700 344.4300 [49] 333.2300 339.7200 342.6100 346.3600 339.0900 339.7300 341.1200 335.9400 [57] 333.4600 335.6600 341.1200 342.2100 342.6200 346.0600 344.4300 346.6500 [65] 343.7400 335.6700 342.7500 341.7700 345.8400 346.5200 350.7900 345.4400 [73] 345.8700 338.4800 337.2100 340.8100 339.8600 342.8600 343.3300 341.7300 [81] 351.3800 351.1300 345.9900 347.5500 346.0200 345.2900 347.0300 348.0100 [89] 345.4800 349.4000 351.0500 349.7000 350.8600 354.4500 355.3000 357.4800 [97] 355.2400 351.7900 355.2200 351.0200 350.2800 350.1700 348.1600 340.3000 [105] 343.7500 344.7100 344.1300 342.1400 345.0400 346.0200 346.4300 347.0700 [113] 339.3300 339.1000 337.1900 339.5800 327.8500 326.8100 321.7300 320.4500 [121] 327.6900 323.9500 320.4700 322.1300 316.3400 314.7800 308.9000 308.6200 [129] 314.4100 306.8800 310.6000 321.6000 321.5000 325.6800 324.3500 320.0100 [137] 326.8800 332.3900 331.4800 332.6200 324.7900 327.1200 328.9100 328.3700 [145] 324.8300 325.9000 326.1800 328.9400 333.7800 328.0600 325.8700 325.4100 [153] 318.8600 319.1300 310.1600 311.7300 306.5400 311.1600 311.9800 306.7200 [161] 308.0500 300.7600 301.9000 293.0900 292.7600 294.5800 289.9000 296.6900 [169] 297.2100 293.3100 296.2500 298.6000 296.8700 301.0200 304.7300 301.9200 [177] 295.7200 293.1800 298.3500 297.9900 299.8500 299.8500 304.4500 299.4500 [185] 298.1400 298.7800 297.0200 301.3300 294.9600 296.6900 300.7300 301.9600 [193] 297.3800 293.8700 285.9600 285.4100 283.7000 284.7600 277.1100 274.7300 [201] 274.7300 274.7300 274.7300 274.6900 275.4200 264.1500 276.2400 268.8800 [209] 277.9700 280.4900 281.0900 276.1600 272.5800 270.9400 284.3100 283.9400 [217] 284.1800 282.8300 283.8400 282.7100 279.2900 280.7000 274.4700 273.4400 [225] 275.4900 279.4600 280.1900 288.2100 284.8000 281.4100 283.3900 287.9700 [233] 290.7700 290.6000 289.6700 289.8400 298.5500 296.0700 297.1400 295.3400 [241] 296.2500 294.3000 296.1500 296.4900 298.0500 301.0300 300.5200 301.5000 [249] 296.9300 289.8400 291.4400 286.8800 286.7400 288.9300 292.1900 295.3900 [257] 295.8600 293.3600 292.8600 292.7300 296.7300 285.0200 285.2400 288.6200 [265] 283.3600 285.8400 291.4800 291.4100 287.7700 284.9700 286.0500 278.1900 [273] 281.2100 277.9200 280.0800 269.2400 268.4800 268.8300 269.5400 262.3700 [281] 265.1200 265.3400 263.3200 267.1800 260.7500 261.7800 257.2700 255.6300 [289] 251.3900 259.4900 261.1800 261.6500 262.0100 265.2300 268.1000 262.2700 [297] 263.5900 257.8500 265.6900 271.1500 266.6900 265.7700 262.3200 270.4800 [305] 273.0300 269.1300 280.6500 282.7500 281.4400 281.9900 282.8600 287.2100 [313] 283.1100 280.6600 282.3900 280.8300 284.7100 279.9900 283.5000 284.8800 [321] 288.6000 284.8000 287.2000 286.2200 286.5400 279.5800 283.0800 288.8800 [329] 280.1800 284.1600 290.5700 286.8200 273.0000 278.6900 264.5400 271.9200 [337] 283.6000 269.2500 263.5800 264.1600 268.8500 269.6700 249.4100 268.9900 [345] 268.6500 260.1600 256.5500 251.4700 234.9300 232.9600 215.4900 213.6800 [353] 236.0700 235.4100 214.7700 225.8500 224.6400 238.2600 232.4400 222.5000 [361] 225.2800 220.4900 216.8600 234.7000 230.0600 238.2700 238.5600 242.7000 [369] 249.1400 234.8900 227.7800 234.0400 230.7000 230.1700 218.2300 221.0481 [377] 221.8425 221.0376 221.1936 221.2739 221.2175 221.2245 221.2316 221.2278 [385] 221.2280 221.2286 221.2283 221.2283 221.2284 221.2283 221.2283 221.2283 [393] 221.2283 221.2283 221.2283 > (perc.se <- (ub-forecast$pred)/1.96/forecast$pred) Time Series: Start = 376 End = 395 Frequency = 1 [1] 0.02321913 0.02910370 0.03338050 0.03776991 0.04157581 0.04502385 [7] 0.04825482 0.05127766 0.05412982 0.05684046 0.05942738 0.06190617 [13] 0.06428953 0.06658763 0.06880901 0.07096089 0.07304941 0.07507985 [19] 0.07705681 0.07898431 > postscript(file="/var/www/html/rcomp/tmp/17h001261061513.ps",horizontal=F,pagecentre=F,paper="special",width=8.3333333333333,height=5.5555555555556) > 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() null device 1 > 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.mape <- array(0, dim=fx) > perf.se <- array(0, dim=fx) > perf.mse <- array(0, dim=fx) > perf.rmse <- array(0, dim=fx) > for (i in 1:fx) { + locSD <- (ub[i] - forecast$pred[i]) / 1.96 + perf.pe[i] = (x[nx+i] - forecast$pred[i]) / forecast$pred[i] + perf.mape[i] = perf.mape[i] + abs(perf.pe[i]) + perf.se[i] = (x[nx+i] - forecast$pred[i])^2 + perf.mse[i] = perf.mse[i] + perf.se[i] + 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 = perf.mape / fx > perf.mse = perf.mse / fx > perf.rmse = sqrt(perf.mse) > postscript(file="/var/www/html/rcomp/tmp/2m6ap1261061513.ps",horizontal=F,pagecentre=F,paper="special",width=8.3333333333333,height=5.5555555555556) > 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:12] <- x[(nx+1):lx] Warning message: In NextMethod("[<-") : number of items to replace is not a multiple of replacement length > lines(dum, lty=1) > lines(ub,lty=3) > lines(lb,lty=3) > dev.off() null device 1 > > #Note: the /var/www/html/rcomp/createtable file can be downloaded at http://www.wessa.net/cretab > load(file="/var/www/html/rcomp/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="/var/www/html/rcomp/tmp/3gwo11261061513.tab") > a<-table.start() > a<-table.row.start(a) > a<-table.element(a,'Univariate ARIMA Extrapolation Forecast Performance',7,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,'Sq.E',1,header=TRUE) > a<-table.element(a,'MSE',1,header=TRUE) > a<-table.element(a,'RMSE',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.mape[i],4)) + a<-table.element(a,round(perf.se[i],4)) + a<-table.element(a,round(perf.mse[i],4)) + a<-table.element(a,round(perf.rmse[i],4)) + a<-table.row.end(a) + } > a<-table.end(a) > table.save(a,file="/var/www/html/rcomp/tmp/4gx4u1261061513.tab") > > try(system("convert tmp/17h001261061513.ps tmp/17h001261061513.png",intern=TRUE)) character(0) > try(system("convert tmp/2m6ap1261061513.ps tmp/2m6ap1261061513.png",intern=TRUE)) character(0) > > > proc.time() user system elapsed 0.682 0.346 0.792