2018年NPBプロ野球の主要選手をクラスター分析してみた。

クラスター分析とは

 クラスター分析では複数の個体をグループ各に分類する方法です。

クラスター分析の種類・方法

 クラスター分析では複数の個体をグループに分けていきます。

当然ながら色々なグループの作り方がありそうですよね。

Rでheip(hclust)をrunしてやると

This should be (an unambiguous abbreviation of) one of "ward.D", "ward.D2", "single", "complete", "average" (= UPGMA), "mcquitty" (= WPGMA), "median" (= WPGMC) or "centroid" (= UPGMC).

出典 R

だそうです。

クラスタ間の距離の選び方
  • "ward.D" :   D(P,Q) = E(P ∪ Q) - E(P) - E(Q)

                              E(C)=Σd(C,gc):各点と重心の距離の2乗和の根(ユークリッド距離)

  • "ward.D2":  "ward.D"の最新版らしい。
  • "single" : 最近隣法。2つのクラスターの中で最も個体間の距離が短い値を代表値とする。
  • "complete" : 最遠隣法。2つのクラスター中で最も個体間の距離が長い値を代表値とする。
  • "average" : 群平均法。2つのクラスター間の各個体の全ての組み合わせの距離の平均を代表値とする。
  • "mcquitty" : 以後精進します。
  • "median" : 2つのクラスター間の各個体の全ての組み合わせで求まった距離の中央値を代表値とする。
  • "centroid" : 重心法。2つのクラスターの重心間の距離を代表値とする。
距離の計算方法

 help(dist)を打ってやると

This must be one of "euclidean", "maximum", "manhattan", "canberra", "binary" or "minkowski".

と言われます。

                       n次元の点p,q間の距離 : sqrt(sum(p-q)^2) 

  

                      f:id:nashuto:20190402172341p:plain       

  • "maximum" : n次元の点p,qの各次元間の距離の絶対値の最大値  max(abs(p-q))
  • "manhattan" : n次元の点p,qの各次元間の距離の絶対値の和 sum(abs(p-q))
  • "canberra" :  sum(abs(p-q) / (abs(p)+abs(q)))  

                           f:id:nashuto:20190402180906p:plain

2018年NPBの主要選手をクラスター分析する

概要

選手が多すぎてもよくないと思うので規定打席(試合数×3.1)・規定投球回(試合数×1.0)を超えた選手に絞ってクラスターしていきます。

セ・リーグ打者のクラスター分析

順位 選 手 チーム名 打率 試合 打席 打数 得点 安打 2塁打 3塁打 本塁打 塁打 打点 盗塁 盗塁刺 犠打 犠飛 四球 敬遠 死球 三振 併殺打 長打率 出塁率
1 ビシエド (中) 0.348 135 582 512 91 178 26 1 26 284 99 3 4 0 4 51 4 15 61 24 0.555 0.419
2 坂本 勇人 (巨) 0.345 109 502 441 87 152 27 2 18 237 67 9 5 0 0 61 10 0 83 4 0.537 0.424
3 平田 良介 (中) 0.329 138 568 493 83 162 26 5 9 225 55 8 7 2 3 67 4 3 69 7 0.456 0.41
4 青木 宣親 (ヤ) 0.327 127 567 495 85 162 37 3 10 235 67 3 4 0 2 51 1 19 48 13 0.475 0.409
5 アルモンテ (中) 0.321 132 546 498 56 160 37 0 15 242 77 1 1 0 3 44 1 1 95 16 0.486 0.375
6 鈴木 誠也 (広) 0.32 124 520 422 86 135 32 2 30 261 94 4 4 0 5 88 2 5 116 4 0.618 0.438
7 雄平 (ヤ) 0.318 125 482 446 50 142 19 1 11 196 67 6 1 0 2 33 5 1 62 13 0.439 0.365
8 宮﨑 敏郎 (デ) 0.318 142 590 551 71 175 34 0 28 293 71 0 0 0 0 38 3 1 45 16 0.532 0.363
9 坂口 智隆 (ヤ) 0.317 139 595 508 64 161 22 4 3 200 37 9 7 7 2 75 5 3 60 15 0.394 0.406
10 山田 哲人 (ヤ) 0.315 140 637 524 130 165 30 4 34 305 89 33 4 0 3 106 5 4 119 8 0.582 0.432
11 ソト (デ) 0.31 107 459 416 74 129 16 0 41 268 95 0 1 0 5 29 2 9 100 5 0.644 0.364
12 岡本 和真 (巨) 0.309 143 616 540 82 167 26 0 33 292 100 2 1 0 0 72 1 4 120 11 0.541 0.394
13 糸井 嘉男 (神) 0.308 119 509 419 60 129 24 0 16 201 68 22 3 0 5 77 4 8 63 9 0.48 0.42
14 丸 佳浩 (広) 0.306 125 566 432 109 132 22 0 39 271 97 10 10 0 1 130 8 3 130 5 0.627 0.468
15 松山 竜平 (広) 0.302 124 446 397 46 120 25 2 12 185 74 2 0 0 5 42 4 2 46 10 0.466 0.368
16 筒香 嘉智 (デ) 0.295 139 580 495 77 146 33 1 38 295 89 0 0 0 3 80 7 2 107 10 0.596 0.393
17 ロペス (デ) 0.288 110 459 441 46 127 23 0 26 228 77 0 0 0 1 16 1 1 58 12 0.517 0.314
18 野間 峻祥 (広) 0.286 126 447 405 64 116 14 7 5 159 46 17 10 4 2 30 0 6 69 2 0.393 0.343
19 糸原 健斗 (神) 0.286 143 637 531 79 152 29 4 1 192 35 6 4 9 4 86 1 7 73 5 0.362 0.39
20 マギー (巨) 0.285 132 547 499 65 142 28 0 21 233 84 2 0 0 6 41 1 1 92 12 0.467 0.336
21 福留 孝介 (神) 0.28 123 499 414 57 116 26 2 14 188 72 2 1 0 7 73 2 5 90 10 0.454 0.389
22 大島 洋平 (中) 0.274 141 645 588 92 161 20 7 7 216 57 21 9 1 5 47 2 4 80 2 0.367 0.329
23 バレンティン (ヤ) 0.268 142 602 514 72 138 22 0 38 274 131 1 1 0 3 85 5 0 121 15 0.533 0.37
24 田中 広輔 (広) 0.262 143 675 572 92 150 19 10 10 219 60 32 13 6 5 75 3 17 118 6 0.383 0.362
25 福田 永将 (中) 0.261 133 487 440 50 115 22 1 13 178 63 0 0 0 5 37 1 5 119 13 0.405 0.322
26 梅野 隆太郎 (神) 0.259 132 455 386 45 100 27 1 8 153 47 5 1 28 1 39 3 1 67 6 0.396 0.328
27 高橋 周平 (中) 0.254 128 477 433 35 110 26 2 11 173 69 0 0 8 3 30 1 3 89 9 0.4 0.305
28 亀井 善行 (巨) 0.254 123 461 422 47 107 20 0 13 166 49 4 0 0 1 36 2 2 70 6 0.393 0.315
29 西浦 直亨 (ヤ) 0.242 138 550 479 57 116 28 0 10 174 55 1 2 20 3 40 1 8 88 10 0.363 0.309
30 京田 陽太 (中) 0.235 143 632 578 73 136 15 7 4 177 44 20 10 26 3 19 0 6 111 12 0.306 0.266
31 菊池 涼介 (広) 0.233 139 642 557 85 130 27 1 13 198 60 10 2 30 1 51 2 3 111 5 0.355 0.301
 

これをRのstatsパッケージのhclust関数を用いてデフォルトで行いました。デフォルトではmethodは最遠隣法だそう。dist関数はデフォルトでユークリッド距離です。デンドログラムを作成すると

f:id:nashuto:20190402135427j:plain

 

番号じゃなくて選手名にしたいのですがやり方が分からないので、取得次第修正します。1番近いのは3番と4番の選手のようです。これは平田選手と青木選手で、成績をみると確かに似ていました。ちなみにこの番号は打率の順番になっているのですが、クラスタになる際に近い番号同士になっている傾向がある気が僕はします。打率と選手の総合値にはそこそこの相関があるのでしょうか。それはそう。

パ・リーグ打者のクラスター分析

同様にパ・リーグ規定打席に到達した打者もクラスターにかけます。これもデフォルトで。

選 手 チーム名 打率 試合 打席 打数 得点 安打 二塁打 三塁打 本塁打 塁打 打点 盗塁 盗塁刺 犠打 犠飛 四球 敬遠 死球 三振 併殺打 長打率 出塁率
1 柳田 悠岐 (ソ) 0.352 130 550 475 95 167 29 5 36 314 102 21 7 0 5 62 4 8 105 8 0.661 0.431
2 秋山 翔吾 (西) 0.323 143 685 603 107 195 39 8 24 322 82 15 10 0 1 77 4 4 96 3 0.534 0.403
3 近藤 健介 (日) 0.323 129 555 462 59 149 29 3 9 211 69 5 0 0 5 87 8 1 90 16 0.457 0.427
4 吉田 正尚 (オ) 0.321 143 598 514 77 165 37 2 26 284 86 3 1 0 8 69 10 7 74 9 0.553 0.403
5 浅村 栄斗 (西) 0.31 143 640 565 104 175 27 0 32 298 127 4 2 0 5 68 4 2 105 18 0.527 0.383
6 中村 晃 (ソ) 0.292 136 580 506 57 148 28 1 14 220 57 1 1 3 6 60 4 5 68 5 0.435 0.369
7 井上 晴哉 (ロ) 0.292 133 548 476 59 139 26 2 24 241 99 1 0 0 6 63 0 3 106 7 0.506 0.374
8 島内 宏明 (楽) 0.292 103 453 394 53 115 16 3 11 170 53 11 5 3 3 47 0 6 45 10 0.431 0.373
9 外崎 修汰 (西) 0.287 119 510 453 70 130 24 3 18 214 67 25 9 6 1 47 0 3 102 9 0.472 0.357
10 中村 奨吾 (ロ) 0.284 143 639 552 82 157 30 3 8 217 57 39 15 0 5 60 2 22 94 11 0.393 0.374
11 山川 穂高 (西) 0.281 143 647 541 115 152 24 1 47 319 124 0 0 0 2 88 2 16 138 5 0.59 0.396
12 西川 遥輝 (日) 0.278 140 636 528 90 147 25 6 10 214 48 44 3 7 2 96 1 3 103 1 0.405 0.391
13 源田 壮亮 (西) 0.278 143 666 594 92 165 27 9 4 222 57 34 8 14 6 48 0 4 101 7 0.374 0.333
14 銀次 (楽) 0.276 139 552 492 45 136 16 5 5 177 48 1 1 6 2 48 3 4 47 7 0.36 0.344
15 今江 年晶 (楽) 0.276 127 465 421 44 116 17 2 10 167 49 0 3 0 4 32 5 7 76 19 0.397 0.334
16 森 友哉 (西) 0.275 136 552 473 67 130 34 2 16 216 80 7 2 0 7 70 2 2 105 3 0.457 0.366
17 上林 誠知 (ソ) 0.27 143 608 551 88 149 26 14 22 269 62 13 4 17 3 30 4 7 117 2 0.488 0.315
18 鈴木 大地 (ロ) 0.266 143 558 477 44 127 27 6 8 190 49 8 4 14 6 44 2 17 55 11 0.398 0.346
19 角中 勝也 (ロ) 0.265 112 470 411 44 109 23 2 7 157 57 3 3 0 6 48 2 5 63 9 0.382 0.345
20 中田 翔 (日) 0.265 140 599 540 61 143 32 0 25 250 106 0 1 0 13 43 1 3 81 24 0.463 0.316
21 田中 和基 (楽) 0.265 105 465 423 67 112 11 1 18 179 45 21 6 4 1 37 0 0 101 4 0.423 0.323
22 中島 卓也 (日) 0.261 132 449 391 57 102 11 3 1 122 23 29 5 22 1 35 0 0 88 4 0.312 0.321
23 松田 宣浩 (ソ) 0.248 143 580 517 72 128 21 3 32 251 82 3 3 0 3 56 4 4 113 12 0.485 0.324
24 田村 龍弘 (ロ) 0.239 143 476 415 32 99 14 7 3 136 35 3 3 16 2 40 1 3 68 13 0.328 0.309
25 デスパイネ (ソ) 0.238 116 469 407 62 97 15 1 29 201 74 0 0 0 3 55 4 4 93 13 0.494 0.333
26 ロメロ (オ) 0.237 119 501 443 63 105 18 1 25 200 63 7 2 0 6 42 2 10 114 10 0.451 0.313
27 レアード (日) 0.233 120 505 450 47 105 14 2 26 201 65 0 1 0 4 44 5 7 124 10 0.447 0.309
28 藤岡 裕大 (ロ) 0.23 143 611 535 58 123 15 5 5 163 42 14 13 26 1 44 1 5 97 9 0.305 0.294
29 安達 了一 (オ) 0.219 140 514 465 44 102 12 3 3 129 41 20 5 16 5 25 1 3 64 8 0.277 0.261
 

f:id:nashuto:20190402144817j:plain

 

26番と27番が最も近そう。ロメロとレアード(納得)。7と16はアジャと西武の森(納得)。

NPBの打者を別の距離の計算法を用いてクラスター分析をする

まずはセ・リーグの選手に対してmethodを="average"にして群平均法にしてみると

f:id:nashuto:20190402152917j:plain

 

並べてみると

f:id:nashuto:20190402153039j:plain

completeかaverageかは群が大きくなるにつれて違いが生じるので、下の段階では房の付き方は似ているが上に行くほど違う構図がみられるのではないでしょうか。

重心法にすると

f:id:nashuto:20190402153709j:plain

ちょっと意味が分からないです。

最後によく聞くウォード法で

f:id:nashuto:20190402154331j:plain

 

 一応全てscale()関数で標準化しています。果たしてどれがいいんでしょうか、やっぱりウォード法ですかね。

 

dendrogram for Central league and Pacific league