Send output to:
Browser Blue - Charts White
Browser Black/White
CSV
Data:
23100 22650 22440 22910 22980 22535 22300 22780 22780 23300 23800 24510 24660 24730 25070 24690 24880 23920 23880 23990 24590 23610 23580 23360 23910 23940 23060 22800 23020 22890 22780 22530 22290 22820 22480 22110 22000 22230 22260 22590 22820 22420 22230 21600 21000 21360 21640 21450 21710 21620 21800 21490 21670 22130 22050 22050 22140 22390 22220 21790 21510 21670 21745 21850 22105 22050 21670 21680 21800 21920 21980 22270 21740 21950 22010 21890 21920 22110 22340 22210 22240 21960 22220 22060 22090 21960 21940 21790 21710 21690 21710 21670 21640 21500 21290 21250 21580 21670 21620 21510 21360 21420 21470 21370 21370 21340 21130 21130 20990 21240 21320 21430 21390 21530 21510 21630 21560 21610 21560 21310 21340 21410 21550 21380 21600 21530 21560 21670 21540 21540 21550 21590 21420 21420 21370 21380 21210 21505 21365 21385 21350 21360 21530 21380 21630 22145 22315 22340 22440 22135 21955 22060 22050 22035 22280 22315 22205 21970 22075 22115 22105 21885 21805 21910 21995 22245 22100 22130 22300 22915 23040 22880 23000 23160 23020 22770 22660 22740 22905 22720 22705 22735 22600 22510 22560 22575 22685 22980 23275 23845 23640 23640 23835 23625 24055 24005 24325 24445 24670 24615 24700 25065 25185 25220 25235 24975 25055 25520 25880 25960 25740 24965 25235 24895 24635 24835 24635 24695 25090 25220 24740 25005 24650 24460 24680 24840 24630 24490 24695
Seasonal period
5
12
1
2
3
4
5
6
7
8
9
10
11
12
Type of Exponential Smoothing
(?)
Double
Single
Double
Triple
Type of seasonality
(?)
multiplicative
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
par1 <- as.numeric(par1) 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, par1, 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