アットウィキロゴ

TSA004

・ 指数平滑法による予測

a <- read.table("GDP1980-2010.csv",sep=",",skip=1)
x <- a[,1]
GDP <- ts(x,start=c(1980,1),frequency=4)

bunkai1 <- decompose(GDP,type="multiplicative")
GDPTC <- bunkai1$trend
GDPTC2 <- GDPTC[is.na(GDPTC)==FALSE]
GDPTC3 <- ts(GDPTC2,start=c(1980,3),frequency=4)
n <- length(GDPTC3)
x <- rep(0,13);b <- 0.7;p <- 20
w <- (1-b)*(cumprod(c(1,rep(b,p-1))));w
sum(w)

GDPINT <- rev(GDPTC3[(n-p+1):n])
YOSOKU <- filter(x,filter=w,method="recursive",init=GDPINT)
YOSOKU2 <- ts(YOSOKU,start=c(2005,1),frequency=4)
ttl <- "指数平滑法による予測"
ts.plot(GDPTC3,YOSOKU2,type="l",lty=c(1,2),main=ttl)

 

・漸化式による予測

参考:p.110ff,田中孝文[2008]

b<-0.8;w <- b

x <- (1-b)*GDPTC3[-1]
GDPHAT <- filter(x,filter=w,method="recursive",init=GDPTC3[1])
GDPHAT <- ts(GDPHAT,start=c(1980,4),frequency=4)
ttl <- "漸化式による予測系列の作成"
ts.plot(GDPTC3,GDPHAT,type="l",lty=c(1,2),main=ttl)

・HW法

GDP.HW1 <- HoltWinters(GDP,seasonal = "mult");GDP.HW1

FT1 <- GDP.HW1$fitted[,1]
ts.plot(GDP,FT1,lty=c(1:2),col=c(1:2))

bunkai1 <- decompose(GDP,type="multiplicative")
GDPTCI <- GDP/bunkai1$seasonal

GDP.HW2 <- HoltWinters(GDPTCI,gamma=0);GDP.HW2
FITTED2 <- GDP.HW2$fitted[,1]
ttl3 <- "季節変動項を外したHW法"
ts.plot(GDPTCI,FITTED2,type="l",lty=c(1:2),col=c(1:2),main=ttl3)

GDP.HW3 <- HoltWinters(GDPTCI,gamma=0,beta=0);GDP.HW3
FITTED3 <- GDP.HW3$fitted[,1]
ttl4 <-"トレンドも外したHW法"
ts.plot(GDPTCI,FITTED3,type="l",lty=c(1:2),col=c(1:2),main=ttl4)

・HW法を用いた予測

oldpar <- par(no.readonly=TRUE)
par(mfrow=c(2,1));par(mar=c(2,4,4,2))
YOSOKU1 <- predict(GDP.HW1,n.ahead=12);YOSOKU1
ttl5 <- "季節要素のあるHWモデルによる予測"
ts.plot(GDP,YOSOKU1,type="l",lty=c(1:2),col=c(1:2),main=ttl5)
YOSOKU2 <- predict(GDP.HW2,n.ahead=12);YOSOKU2
ttl5 <- "季節要素を外したHWモデルによる予測"
ts.plot(GDP,YOSOKU2,type="l",lty=c(1:2),col=c(1:2),main=ttl5)
par(mfrow=c(1,1));par(oldpar)

 

 

 

 

 

 

 

 

最終更新:2010年10月15日 23:20
添付ファイル