Send output to:
Browser Blue - Charts White
Browser Black/White
CSV
Data:
76.7 82.7 95 81.8 91.8 88.2 72.2 75.9 91.2 94.2 90.4 73.1 84.3 82.8 92.8 83.5 90.4 91.8 75.5 75.1 89.1 95.4 85.2 68.4 81 78.8 85.7 88.1 82.7 90.1 79.1 71.5 91 99 84.2 68.1 81.3 84.1 88.1 87.8 83 91.5 81 67.1 90.8 94.7 79.3 75.5 80.2 81.1 96.9 88.4 81.6 98.9 78.5 74.5 97.3 93 86.4 80.6 83.7 86.7 95.8 94.8 88.8 103.3 77.8 81.2 102.8 97.2 94.7 85.2 92.7 91.1 103.5 92.7 102 105.9 84 86.4 105 108.6 103.5 85.2 101.8 99.1 112.8 100.7 107.2 113.8 94.4 90.9 105.5 118.2 108.5 83.9 108.6 109.5 106.5 116.5 104.6 112.3 101.2 86.9 112.8 110.4 91.2 80 86.9 85.1 95.6 92.6 87.7 98.7 85.6 77.4 102 101.9 91.9 81.6 91.6 92.9 109.3 103.8 96.8 117.4 93 89 110 106 100.4 90 97.4 101.6 117 97.7 110.8 103.1 86.1 92.9 112.9 102.4 103.3 89.8 96.5 102.2 112 100 103 112.4 94.5 92.6 104 108.4 100.1 79.1 100.9 97.4 101.7 104.9 103.1 108.2 99.9 85.6 106.8 113 99.3 84.2 104.3 99.1 107.3 111.7 99.9 107.5 101.3 86.1 113 114 96.4 85.5 99.5 102.4 117.9 110.2 99.2 121.8 103.1 89 112.5 114 103.7 89.5 102.1 107.3 118.3 112.3 107.9 121 95.8 96.1 114.9 109.8 106.7 89.5 104 106 124.6 106.8 115.4 120.5 95.5 97.8
Seasonal period
12
12
1
2
3
4
5
6
7
8
9
10
11
12
Type of Exponential Smoothing
(?)
Double
Single
Double
Triple
Type of seasonality
(?)
additive
additive
multiplicative
Number of Forecasts
12
12
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Chart options
R Code
par1 <- as.numeric(par1) par4 <- as.numeric(par4) if (par2 == 'Single') K <- 1 if (par2 == 'Double') K <- 2 if (par2 == 'Triple') K <- par1 nx <- length(x) nxmK <- nx - K x <- ts(x, frequency = par1) if (par2 == 'Single') fit <- HoltWinters(x, gamma=F, beta=F) if (par2 == 'Double') fit <- HoltWinters(x, gamma=F) if (par2 == 'Triple') fit <- HoltWinters(x, seasonal=par3) fit myresid <- x - fit$fitted[,'xhat'] bitmap(file='test1.png') op <- par(mfrow=c(2,1)) plot(fit,ylab='Observed (black) / Fitted (red)',main='Interpolation Fit of Exponential Smoothing') plot(myresid,ylab='Residuals',main='Interpolation Prediction Errors') par(op) dev.off() bitmap(file='test2.png') p <- predict(fit, par4, prediction.interval=TRUE) np <- length(p[,1]) plot(fit,p,ylab='Observed (black) / Fitted (red)',main='Extrapolation Fit of Exponential Smoothing') dev.off() bitmap(file='test3.png') op <- par(mfrow = c(2,2)) acf(as.numeric(myresid),lag.max = nx/2,main='Residual ACF') spectrum(myresid,main='Residals Periodogram') cpgram(myresid,main='Residal Cumulative Periodogram') qqnorm(myresid,main='Residual Normal QQ Plot') qqline(myresid) par(op) dev.off() load(file='createtable') a<-table.start() a<-table.row.start(a) a<-table.element(a,'Estimated Parameters of Exponential Smoothing',2,TRUE) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a,'Parameter',header=TRUE) a<-table.element(a,'Value',header=TRUE) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a,'alpha',header=TRUE) a<-table.element(a,fit$alpha) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a,'beta',header=TRUE) a<-table.element(a,fit$beta) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a,'gamma',header=TRUE) a<-table.element(a,fit$gamma) 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,'Interpolation Forecasts of Exponential Smoothing',4,TRUE) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a,'t',header=TRUE) a<-table.element(a,'Observed',header=TRUE) a<-table.element(a,'Fitted',header=TRUE) a<-table.element(a,'Residuals',header=TRUE) a<-table.row.end(a) for (i in 1:nxmK) { a<-table.row.start(a) a<-table.element(a,i+K,header=TRUE) a<-table.element(a,x[i+K]) a<-table.element(a,fit$fitted[i,'xhat']) a<-table.element(a,myresid[i]) a<-table.row.end(a) } a<-table.end(a) table.save(a,file='mytable1.tab') a<-table.start() a<-table.row.start(a) a<-table.element(a,'Extrapolation Forecasts of Exponential Smoothing',4,TRUE) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a,'t',header=TRUE) a<-table.element(a,'Forecast',header=TRUE) a<-table.element(a,'95% Lower Bound',header=TRUE) a<-table.element(a,'95% Upper Bound',header=TRUE) a<-table.row.end(a) for (i in 1:np) { a<-table.row.start(a) a<-table.element(a,nx+i,header=TRUE) a<-table.element(a,p[i,'fit']) a<-table.element(a,p[i,'lwr']) a<-table.element(a,p[i,'upr']) a<-table.row.end(a) } a<-table.end(a) table.save(a,file='mytable2.tab')
Compute
Summary of computational transaction
Raw Input
view raw input (R code)
Raw Output
view raw output of R engine
Computing time
0 seconds
R Server
Big Analytics Cloud Computing Center
Click here to blog (archive) this computation