2010年11月7日日曜日

[Rcode]潜在GDP成長率とインフレ率...

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
潜在GDP成長率とインフレ率には相関があるか?に使用したRのコードです。

z <- 1.96 #有意水準5%
n <- 2
infcol <- 1 #cpi=1, gdp deflator=3
filename <-"pgdp_inf.csv" 
x<-read.csv("EO86_MAIN_Data_.csv")

ctname_out <- unique(x[,4])
countryname <- unique(x[,3])
varname  <- unique(x[,7])
corout  <- rep(NA,length=length(countryname))
cortest  <- corout 
samplesize <- corout

for(i in 1:(length(countryname))){
 cdum <- x[x[,3]==countryname[i],]
#物価
 cpi_dum  <- cdum[cdum[,7]==varname[infcol],c(5,(ncol(cdum)-1))]
 pgdp_dum <- cdum[cdum[,7]==varname[2],c(5,(ncol(cdum)-1))]
 
 if(nrow(cpi_dum) > 1 && nrow(pgdp_dum) > 1 ){
  cpi_dum  <- ts(cpi_dum[,2],start=(cpi_dum[1,1]), frequency=1)
  pgdp_dum <- ts(pgdp_dum[,2],start=(pgdp_dum[1,1]), frequency=1)
#変化率計算
  d_cpi  <- diff(cpi_dum,lag=1)/lag(cpi_dum, -1)
  d_pgdp  <- diff(pgdp_dum,lag=1)/lag(pgdp_dum, -1)
  calcdum  <- na.omit(cbind(d_cpi,d_pgdp))
  sampledum <- (end(calcdum) - start(calcdum) +1)
  samplesize[i] <- sampledum[1]
  if(samplesize[i]>n){
  corout[i] <- cor(calcdum)[1,2]
  cortestdummy <- ( 1 - exp(-2*z/sqrt(samplesize[i]-3)) )/( 1 + exp( -2*z / sqrt( samplesize[i] - 3) ) )
  if(abs(corout[i]) <  cortestdummy){cortest[i] <-  0
  }else if(corout[i] >=  cortestdummy){cortest[i] <-  1
  }else if(corout[i] <= -cortestdummy){cortest[i] <- -1
  }
  }
 }
}

out <- list(ctname_out,corout,cortest,samplesize)
write.csv(out,filename)

0 件のコメント:

コメントを投稿