Wet系バイオインフォマティシャンの災難

機械に弱いバイオ研究者に降りかかる災難を綴っていきます。 Twitter: @1wantphd

2019年交流戦成績でのPCA

2019 交流戦の成績を元にPCA解析をしてみました。

使用したデータは以下のデータです。 

 データ元:https://baseball.yahoo.co.jp/npb/standings/26/

  runs runs allowed Homerun steal Batting average earned run average
Hawks 75 61 32 16 0.233 3.16
Buffaloes 73 64 8 21 0.257 3.42
Giants 85 66 23 15 0.257 3.34
Baystars 72 70 22 7 0.242 3.86
Lions 99 79 18 14 0.27 4.14
Eagles 73 71 13 5 0.25 3.81
Fighters 69 81 14 9 0.25 4.19
Dragons 78 79 7 7 0.265 4.38
Marines 87 93 23 12 0.268 4.84
Tigers 74 77 9 17 0.248 3.29
Swallows 81 100 20 6 0.236 5.08
Carp 59 84 13 11 0.216 3.85

 

 コマンドは以下の通りです。

data=read.csv("交流戦成績.csv", row.names = 1) #上記のデータをcsv形式で保存後、読み込み。

#PCA
name=rownames(data) 
rownames(data)<-NULL#都合によりrownameは一旦削除(削除しなくても良いがFigが見にくくなる。)

pcaobj=prcomp(data, scale=T) 

biplot(pcaobj)
PC1<- pcaobj$x[, 1]
PC2 <- pcaobj$x[, 2]

library(png)
a=0.3 #アイコンの大きさ調整
for (i in 1:12) {
  img <- readPNG(paste(name[i],"png",sep=".")) #各チームのアイコン画像をteam名.pngで作成、保存しておく。
  rasterImage(img, PC1[i]-a, PC2[i]-a,PC1[i]+a, PC2[i]+a)
}

f:id:SRY:20190626214515p:plain

やっている内容は「Rで主成分分析(https://www.casleyconsulting.co.jp/blog/engineer/119/))」のほぼパクリです。casley consulting様、お世話になります。

結果としては左下に寄っているチームが上位に来ている。つまり、チーム防御率(earned.run.average)が低く、チーム打率(Batting.average)がやや高いチームが強かったということになります(当たり前だ…)。

興味深いのは、盗塁数(steal)が順位に強く影響する点でしょうか。

 

反省点としては

1.見やすいようにチームアイコンを上から貼り付けてみたが、西武と広島のアイコンが数字の位置(本来のプロットされるべき位置)から随分ずれてしまいました…何故…?

2.biplotで出力する図の文字サイズの変え方が分からない…

改善方法をご存知の方がいらっしゃいましたらコメントいただけると助かります。