Send output to:
Browser Blue - Charts White
Browser Black/White
CSV
Data:
78 100.1 113.2 93.1 115.4 103.3 45.1 104.7 111.3 111.5 100.9 82.1 85.4 97.7 106.6 92.6 109.2 110 52.5 105.3 102.3 118.5 100 74.4 89.2 91.9 107 103.6 101.8 105.1 55.5 92.1 109.8 112.7 98.5 70.3 84.5 91.1 107.6 102.2 96 107.3 59.9 90.2 116.3 115.6 92 76.5 87.9 95.8 116.9 102.9 95.8 117.3 52.8 100.1 116.3 111.8 98.5 86.2 79.9 92.3 100.5 112.5 101.1 121.5 49.6 104.8 120.4 108.3 105.2 85.7 86.8 95.1 117 100.1 112.3 119.6 51.8 105.5 119.9 115.4 112.8 85.1 96.2 103.6 119.9 103.7 109 119.6 57 109.2 112.6 126 109.7 80.1 105.8 114.1 98.3 125.3 111.6 119.7 65 99 124.5 119 98.8 81.8 90.3 102 119.3 104.3 102.8 118.8 60.9 101 122.6 122.2 95 75.6 83.1 89.8 126.1 108.6 98.9 124.3 56.8 102.7 121.7 118.2 101 69 88.6 109.6 128.2 102 122.7 110.5 54 108.1 125 114.1 112.4 87.3 95.4 96.9 125.8 102 112.5 118.9 62.7 110 114.7 124.4 111.9 77 84.1 96.5 106.8 107.9 107.5 114.3 66.6 97.9 117.8 123.8 103.3 84.2 103.6 103.6 112.2 102.7 100.8 109.4 63.5 92.3 119.2 121.5 97.6 78.3 95.6 97.9 114.4 100.9 94.4 117.2 61 95.8 116.2 118.5 94.3 74.4 94.9 102 102.9 109.5 99.7 118.3 56.2 100.3 116.9 108.7 93.9 85.3 85.3 102.4 121.6 91.4 110.2 112.7 55.7 100.1
Seasonal period
0
12
1
2
3
4
5
6
7
8
9
10
11
12
Type of Exponential Smoothing
(?)
no
Single
Double
Triple
Type of seasonality
(?)
512
additive
multiplicative
Number of Forecasts
12
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Chart options
R Code
par4 <- '12' par3 <- 'additive' par2 <- 'Single' par1 <- '12' 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