| 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) |