※ 当サイトは、アフィリエイト広告を利用しています。

【レーダーチャートを使ってNBAチームとプレイヤーのスタッツを比較しよう】2022-23シーズンNBA全30チームのスタッツ、各スタッツのトップ10プレイヤーを比較する

記事内に広告が含まれています。
スポンサーリンク

今回は、チームとプレイヤー個人のスタッツを使って、統計ソフトRによるレーダーチャート(Radial plot)の作成方法を紹介していきます。

データは2022–23レギュラーシーズンのTbox、Pbox(過去記事参照)を使用します。

なお、今回は異なるスタッツを同時に確認していきますので、用いるスタッツに関しては、統計WEBサイト「6. データの標準化」を参考の上、すべて標準化の処理をしたデータで進めていきます。

まずは、全30チームのレーダーチャートの作成から始めていきます。

※データ分析を実践する際に参考にしている書籍『Basketball Data Science: With Applications in R』の紹介記事も書きましたので、よろしければご確認ください。

NBA全30チームの2022–23レギュラーシーズンのレーダーチャート

全30チーム中15チームのレーダーチャートは下記のとおりです。(アルファベット順)

残りの15チームは下記のとおりです。

各スタッツの内容は下記のとおりです。(※数値はすべて1MINあたりの数値に変換しています。)

  • P2M : 2Pシュート成功数
  • P3M : 3Pシュート成功数
  • FTM : フリースロー成功数
  • REB:オフェンスリバウンドとディフェンスリバウンドの合計数
  • AST : アシスト数
  • STL : スティール数
  • BLK : ブロック数

レーダーチャート内にある青色の点線は平均値(標準化のため平均0)を表しています。

それぞれのスタッツが青色の点線より外側にあれば平均値より高く、内側にあれば平均値より低いということになります。

上記のチャートを確認すると、特定のスタッツが突出しているチームがあったり、どのスタッツも比較的バランスの良いチームがあったりと、各チームにより特色があることがわかります。

2022-23シーズンNBAチャンピオンのデンバー・ナゲッツに注目すると、アシスト数と2Pシュート成功数のスタッツが高い一方で、フリースロー成功数が平均値を大きく下回っていることが分かります。

また、3Pシュート成功数、リバウンド数、スティール数、ブロック数はリーグ平均とほぼ同水準となっています。

以下、チャートから読み取れる特色を簡単にまとめます。

  • P2Mが高い:アトランタ・ホークス
  • P3Mが高い:ボストン・セルティックス、ゴールデンステイト・ウォリアーズ
  • FTMが高い:ロサンゼルス・レイカーズ、フィラデルフィア・76ers
  • REBが高い:ミルウォーキー・バックス
  • ASTが高い:デンバー・ナゲッツ、ゴールデンステイト・ウォリアーズ
  • STLが高い:トロント・ラプターズ
  • BLKが高い:ブルックリン・ネッツ、インディアナ・ペイサーズ
  • バランスが良い:メンフィス・グリズリーズ、ミネソタ・ティンバーウルブズ、オクラホマシティ・サンダー、フェニックス・サンズ

なお、レーダーチャートを出力するコマンドは下記のとおりです。

> attach(Tbox2223) #attach関数でTbox2223を指定
> T <- data.frame(P2M,P3M, FTM, REB=OREB+DREB, AST, STL, BLK)/MIN #各スタッツのMINあたりの数値をdata.frame関数でまとめてTに格納
> detach(Tbox2223) #detach関数でTbox2223を指定から外す
> radialprofile(data=T, title=Tbox2223$Team, std=TRUE) #レーダーチャートを出力するコマンドでありstd=TRUEで標準化
> listplots <- radialprofile(data=T, title=Tbox2223$Team, std=TRUE) #上記のコマンドをlistplotsに格納
> library(gridExtra) #パッケージgridExtraの読み込み
> grid.arrange(grobs=listplots[1:15], ncol=5) # grid.arrange関数で最初の15チームを出力
> grid.arrange(grobs=listplots[16:30], ncol=5) # grid.arrange関数で残りの15チームを出力

特定のスタッツが突出しているチームには、そのスタッツを引っ張る特定の選手が在籍するのでしょうか。

上記を調べるために、次は各スタッツの上位10プレイヤーのレーダーチャートを出力していきます。

スタッツ別の上位10プレイヤーのレーダーチャート

2Pシュート成功数(P2M)から順番に、2022–23レギュラーシーズンの上位10プレイヤーのレーダーチャートを見ていきます。

P2M<トップはヤニス・アデトクンボ>

レーダーチャートは下記のとおりです。

以下、チャートから読み取れる点を簡単にまとめます。

  • アトランタ・ホークスのP2Mはチームとしては高水準だが、P2M上位10名の中にアトランタ・ホークスのプレイヤーは入っていない。
  • FTMも比較的高い傾向がある。
  • REBやASTも平均値あたりかそれ以上の水準を示している。

なお、レーダーチャートを出力するコマンドは下記のとおりです。

> Pbox2223M <- subset(Pbox2223, MIN>=500) #MIN500以上のプレイヤーを抽出
> attach(Pbox2223M)
> X <- data.frame(P2M,P3M, FTM, REB=OREB+DREB, AST, STL, BLK)/MIN
> detach(Pbox2223M)
> Pbox2223MX <- data.frame(Team=Pbox2223M$Team, Player=Pbox2223M$Player, X) # data.frame関数で上記XにTeamとPlayerの情報を追加
> sortP2M <- order(Pbox2223MX$P2M, decreasing=TRUE) #P2Mで降順に並べ替えるためのコマンド
> listplotsP2M <- radialprofile(data=Pbox2223MX[sortP2M, 3:9], title=paste(Pbox2223MX[sortP2M,]$Player, "-", Pbox2223MX[sortP2M,]$Team), std=TRUE) #レーダーチャートを出力するコマンドでありstd=TRUEで標準化, paste関数でPlayer名とTeam名を結合
> grid.arrange(grobs=listplotsP2M[1:10], ncol=5) #レーダーチャートのうち上位10名を指定して出力

P3M<トップはステフィン・カリー>

レーダーチャートは下記のとおりです。

以下、チャートから読み取れる点を簡単にまとめます。

  • P3Mが高水準のゴールデンステイト・ウォリアーズのプレイヤーが2名(ステフィン・カリー、クレイ・トンプソン)入っている。
  • P3Mが高水準のボストン・セルティックスのプレイヤーが1名(サム・ハウザー)入っている。
  • P3M以外のスタッツも平均値あたりかそれ以上の水準を示している。

なお、レーダーチャートを出力するコマンドは下記のとおりです。

> Pbox2223M3 <- subset(Pbox2223, MIN>=500 & P3M>=82) #MIN500以上かつ成功数82本以上のプレイヤーを抽出
> attach(Pbox2223M3)
> X3 <- data.frame(P2M,P3M, FTM, REB=OREB+DREB, AST, STL, BLK)/MIN
> detach(Pbox2223M3)
> Pbox2223M3X3 <- data.frame(Team=Pbox2223M3$Team, Player=Pbox2223M3$Player, X3)
> sortP3M <- order(Pbox2223M3X3$P3M, decreasing=TRUE)
> listplotsP3M <- radialprofile(data=Pbox2223M3X3[sortP3M, 3:9], title=paste(Pbox2223M3X3[sortP3M,]$Player, "-", Pbox2223M3X3[sortP3M,]$Team), std=TRUE)
> grid.arrange(grobs=listplotsP3M[1:10], ncol=5)

FTM<トップはジョエル・エンビード>

レーダーチャートは下記のとおりです。

以下、チャートから読み取れる点を簡単にまとめます。

  • FTMが高水準のフィラデルフィア・76ersのプレイヤーが1名(ジョエル・エンビード)入っている。
  • ロサンゼルス・レイカーズのFTMはチームとしては高水準だが、FTM上位10プレイヤーの中にロサンゼルス・レイカーズのプレイヤーは入っていない。
  • P2Mも比較的高い傾向がある。(P2Mのレーダーチャートのほうで出てきたプレイヤーが数名いる。)
  • ASTも平均値あたりかそれ以上の水準を示している。

なお、レーダーチャートを出力するコマンドは下記のとおりです。

> sortFTM <- order(Pbox2223MX$FTM, decreasing=TRUE)
> listplotsFTM <- radialprofile(data=Pbox2223MX[sortFTM, 3:9], title=paste(Pbox2223MX[sortFTM,]$Player, "-", Pbox2223MX[sortFTM,]$Team), std=TRUE)
> grid.arrange(grobs=listplotsFTM[1:10], ncol=5)

REB<トップはアンドレ・ドラモンド>

レーダーチャートは下記のとおりです。

以下、チャートから読み取れる点を簡単にまとめます。

  • REBが高水準のミルウォーキー・バックスのプレイヤーが1名(ボビー・ポーティス)入っている。
  • P2Mも比較的高い傾向がある。
  • BLKも平均値あたりかそれ以上の水準を示している。

なお、レーダーチャートを出力するコマンドは下記のとおりです。

> sortREB <- order(Pbox2223MX$REB, decreasing=TRUE)
> listplotsREB <- radialprofile(data=Pbox2223MX[sortREB, 3:9], title=paste(Pbox2223MX[sortREB,]$Player, "-", Pbox2223MX[sortREB,]$Team), std=TRUE)
> grid.arrange(grobs=listplotsREB[1:10], ncol=5)

AST<トップはタイリース・ハリバートン>

レーダーチャートは下記のとおりです。

以下、チャートから読み取れる点を簡単にまとめます。

  • ASTが高水準のデンバー・ナゲッツのプレイヤーが1名(ニコラ・ヨキッチ)入っている。
  • ゴールデンステイト・ウォリアーズのASTはチームとしては高水準だが、AST上位10プレイヤーの中にゴールデンステイト・ウォリアーズのプレイヤーは入っていない。
  • P2M 、FTM、STLも平均値あたりかそれ以上の水準を示している。

なお、レーダーチャートを出力するコマンドは下記のとおりです。

> sortAST <- order(Pbox2223MX$AST, decreasing=TRUE)
> listplotsAST <- radialprofile(data=Pbox2223MX[sortAST, 3:9], title=paste(Pbox2223MX[sortAST,]$Player, "-", Pbox2223MX[sortAST,]$Team), std=TRUE)
> grid.arrange(grobs=listplotsAST[1:10], ncol=5)

STL<トップはデロン・ライト>

レーダーチャートは下記のとおりです。

以下、チャートから読み取れる点を簡単にまとめます。

  • STLが高水準のトロント・ラプターズのプレイヤーが1名(サディアス・ヤング)入っている。
  • ASTは平均値あたりか、それよりもやや高い水準にある。

なお、レーダーチャートを出力するコマンドは下記のとおりです。

> sortSTL <- order(Pbox2223MX$STL, decreasing=TRUE)
> listplotsSTL <- radialprofile(data=Pbox2223MX[sortSTL, 3:9], title=paste(Pbox2223MX[sortSTL,]$Player, "-", Pbox2223MX[sortSTL,]$Team), std=TRUE)
> grid.arrange(grobs=listplotsSTL[1:10], ncol=5)

BLK<トップはジャレン・ジャクソンJr.>

レーダーチャートは下記のとおりです。

以下、チャートから読み取れる点を簡単にまとめます。

  • BLKが高水準のブルックリン・ネッツのプレイヤーが1名(ニコラス・クラクストン)入っている。
  • BLKが高水準のインディアナ・ペイサーズのプレイヤーが2名(アイザイア・ジャクソン、マイルズ・ターナー)入っている。
  • REBも平均値あたりかそれ以上の水準を示している。

なお、レーダーチャートを出力するコマンドは下記のとおりです。

> sortBLK <- order(Pbox2223MX$BLK, decreasing=TRUE)
> listplotsBLK <- radialprofile(data=Pbox2223MX[sortBLK, 3:9], title=paste(Pbox2223MX[sortBLK,]$Player, "-", Pbox2223MX[sortBLK,]$Team), std=TRUE)
> grid.arrange(grobs=listplotsBLK[1:10], ncol=5)

おわりに

今回は、各チームのスタッツと各スタッツの上位10プレイヤーのレーダーチャートを列挙していきました。

チーム全体で突出しているスタッツがあった場合、そのチームにはそのスタッツの上位10名に入るプレイヤーが在籍しているものかと思いましたが、そうではないケースも見られました。

これは、特定のスタッツに突出して強いプレイヤーがチームのスタッツを引っ張るのではなく、チームによっては複数のプレイヤーによりチーム全体のスタッツを底上げしている可能性が考えられます。

また、P2Mが高いとFTMも高い、REBが高いとBLKも高い、ASTが高いとSTLも高いなど、各スタッツ間に何らかの相関関係がありそうにも見えました。

相関関係と相関係数を扱う記事も今後は作成予定ですので、これらの関係についての確認はまたの機会に行いたいと思います。

なお、本記事は、記事の最後に紹介している書籍を参考にして作成しています。

それでは、今回のトラッシュトークは以上です。

【参考書籍】

Paola Zuccolotto and Marica Manisera (2020), Basketball Data Science – with Applications in R. Chapman and Hall/CRC. ISBN 9781138600799.
※本書籍の紹介記事を書いていますので、よろしければご参考ください。

タイトルとURLをコピーしました