R 対応のある群の比較

ゼミの課題に出ていたこともあり、備忘のため記す。東証時価総額上位18社(データ取得期間中に単位が変わっているKDDIは除く)の終値の変動をみる。

まず、データの取得。無料で取得出来るサイトがある。銘柄の番号を変えればRのfor文で取得出来、自動的に更新もされるので便利。

code <- c(7203,8306,2914,9432,9984,7267,9437,8316,8841,7201,
         9433,7751,6902,9983,8802,4502,6954,3382)
dat <- NULL
comp <- matrix(rep(0,length(code)*6),ncol=6)
colnames(comp) <- c("13/7/12","13/5/2","13/2/19","12/11/30","12/9/19","12/7/9")
rownames(comp) <- c("Toyota","MUFJ","JT","NTT","Softbank",
                    "Honda","Docomo","MitsuiSumitomoFG","Mizuho","Nissan",
                    "KDDI","Canon","Denso","FR","MitsubishiJisyo",
                    "Takeda","Fanac","Seven&I")

for (i in 1:length(code)) {
  dat[[i]] <- read.csv(paste("http://k-db.com/site/jikeiretsu.aspx?c=",code[i],"-T&hyouji=&download=csv",sep=""),
                       skip=1,header=TRUE)
  try(comp[i,1] <- dat[[i]][1,5])
  try(comp[i,2] <- dat[[i]][50,5])
  try(comp[i,3] <- dat[[i]][100,5])
  try(comp[i,4] <- dat[[i]][150,5])
  try(comp[i,5] <- dat[[i]][200,5])
  try(comp[i,6] <- dat[[i]][250,5])
  print(paste("i =",i,"done"))
}

次に標準化。

#例外(KDDI)を除去
comp <- comp[-11,]

#12/7/9との比に調整
for (j in 1:ncol(comp)) {
  comp[,j] <- comp[,j]/comp[,6]
}

最後の図示。順に点表示、線表示、レーダー表示。

#点表示
plot(comp[,4],comp[,1],xlab="12/11/30の株価(終値)",
     ylab="13/7/12の株価(終値)",main="時価総額上位18社の株価(12/7/9=1)")

#線表示
dat <- rbind(comp[,4],comp[,1])
matplot(dat,type="l",axes=FALSE,ylab="株価(12/7/9=1)")
axis(1,c(1,2),c("12/11/30","13/7/12"))
axis(2,seq(floor(min(dat)/0.05)*0.05,
           (floor(max(dat)/0.05)+1)*0.05,by=0.05))

#レーダー(日付軸)
source("http://aoki2.si.gunma-u.ac.jp/R/src/radar.R", encoding="euc-jp") dat2 <- cbind(comp[,4],comp[,3],comp[,1]) colnames(dat2) <- c("12/11/30","13/2/19","13/7/12") radar(dat2,max=(floor(max(dat)/0.05)+1)*0.05, min=floor(min(dat)/0.05)*0.05, z.score=FALSE,col=c(1:nrow(comp)) ,lty=1,title="株価(12/7/9=1)")

#レーダー(企業軸)
dat3 <- rbind(comp[,6],comp[,5],comp[,4],comp[,3],comp[,2],comp[,1]) radar(dat3,max=2.25,min=0.75, z.score=FALSE,col=c(1:nrow(comp)) ,lty=1,title="株価(12/7/9=1)") coln <- c("12/7/9","12/9/19","12/11/30","13/2/19","13/5/2","13/7/12") legend("topright",coln,col=c(1:ncol(comp)),lty=c(1))

 

f:id:nakhirot:20130712202701p:plain

f:id:nakhirot:20130712202708p:plain

f:id:nakhirot:20130712203926p:plain

f:id:nakhirot:20130712202722p:plain

トヨタ・FastRetailing(ユニクロ)の値上がり率が群を抜いて高いことがわかる。FRは主に中国生産だと思われるので、円安の悪影響を受けそうだがそれでも株価が上がっている(なぜだろうか?)。トヨタは依然国内生産比率が4割であるので、国内生産の恩恵を受けたのだろう。製造業は円安・円高と生産・物流拠点配置との関係を見ても面白いだろう。

【追記】

言わずもがなではあるが、12/11/30と13/7/12の18社の平均値に有意な差があるか、対応のあるt検定を行う。

t.test(comp[,6],comp[,1],paired=TRUE)

結果がこれ。p値が1.162×10^-6であるので、有意水準5%で確かに株価の平均値には有意な差があるとわかる。

	Paired t-test
data:  comp[, 6] and comp[, 1] 
t = -7.5517, df = 16, p-value = 1.162e-06
alternative hypothesis: true difference in means is not equal to 0 
95 percent confidence interval:
 -0.8117973 -0.4559223 
sample estimates:
mean of the differences 
             -0.6338598