アットウィキロゴ

TSA015

 

data <- read.table("87-98and98-2007iip_kikai.csv",sep=",",skip=1,header=FALSE)

#設定

iip98 <- data[,4]
kikai98 <- data[,3]
iip87 <- data[,8]
kikai87 <- data[,7]

kikai87 <- log(kikai87)
kikai87 <- log(kikai98)

#0を取り除く
iip98 <- iip98[!is.na(iip98)]
iip87 <- iip87[!is.na(iip87)] 
kikai98 <- kikai87[!is.na(iip98)] 
kikai87 <- kikai87[!is.na(iip87)] 

#ca <- ifelse(is.na(a), 0, a) 
# NA を 0 に置き換える



#時系列にする
ts.iip98 <- ts(iip98,start=c(1998,1),frequency=12)
ts.kikai98 <- ts(kikai98,start=c(1998,1),frequency=12)
ts.iip87 <- ts(iip87,start=c(1978,4),frequency=12)
ts.kikai87 <- ts(kikai87,start=c(1978,4),frequency=12)

#(1)iip98andkikai98
#単位根
adf.test(ts.iip98)
PP.test(ts.iip98)
kpss.test(ts.iip98)
adf.test(ts.kikai98)
PP.test(ts.kikai98)
kpss.test(ts.kikai98)


#ラグをとる
adf.test(diff(ts.iip98))$p.value
kpss.test(diff(ts.iip98))$p.value
PP.test(diff(ts.iip98))$p.value

adf.test(diff(ts.kikai98))$p.value
kpss.test(diff(ts.kikai98))$p.value
PP.test(diff(ts.kikai98))$p.value

#2階のラグ
d2.iip98 <- lag(ts.iip98,2)
adf.test(d2.iip98)$p.value
kpss.test(d2.iip98)$p.value

#
d3.iip98 <- lag(ts.iip98,3)
adf.test(d3.iip98)$p.value
kpss.test(d3.iip98)$p.value

#
d4.iip98 <- lag(ts.iip98,4)
adf.test(d4.iip98)$p.value
kpss.test(d4.iip98)$p.value



#(2)iip87andkikai87
#単位根
adf.test(ts.iip87)
PP.test(ts.iip87)
kpss.test(ts.iip87)
adf.test(ts.kikai87)
PP.test(ts.kikai87)
kpss.test(ts.kikai87)


#ラグをとる
adf.test(diff(ts.iip87))$p.value
kpss.test(diff(ts.iip87))$p.value
PP.test(diff(ts.iip87))$p.value

adf.test(diff(ts.kikai87))$p.value
kpss.test(diff(ts.kikai87))$p.value
PP.test(diff(ts.kikai87))$p.value

d.iip87 <- lag(ts.iip87)
d.kikai87 <- lag(ts.kikai87)

#VARモデル
u2 <- ts.union(d.iip87,d.kikai87)
ar(u2,order.max=12)$aic #最大12
ar(u2,order.max=12)$SBIC

v2 <- data.frame(d.iip87,d.kikai87)
var2 <- VAR(v2,p=3,type="const") #3が最小
impulse2 <-irf(var2,impulse="d.kikai87",response=c("d.iip87","d.kikai87"))
plot(impulse2,main="kikai to iip")
 summary(var2)

#同時点相関がfull recursive(同時点相関の行列が下三角)な場合
#矢野氏のHPより


require(vars)
data(Canada)
var.2c <- VAR(Canada, p = 2, type = "const")
amat <- diag(4)
amat[2,1] <- NA
amat[3,1] <- NA
amat[3,2] <- NA
amat[4,1] <- NA
amat[4,2] <- NA
amat[4,3] <- NA

#amatの対角成分は当然すべて1で、NAと指定した部分の数値が推定される[今回の場合、下三角行列]。)

svar.2c <- SVAR(var.2c, estmethod = "logLik", Amat = amat, Bmat = NULL, hessian = TRUE, method="BFGS")
svarirf <- irf(svar.2c, impulse = "e", boot =FALSE)
plot(svarirf)
 

 

 

 

 

最終更新:2010年11月25日 22:27