見出し画像

これからのバレーボールの形

早くも年末を迎えてしまいましたね。
ただいま大学の卒論執筆の真っ最中ですので、とても忙しい月になりました。

そんな中でも、自分ができるバレー分析の活動をやってきました。
現在はバレーの試合分析は少し休止していて、今までExcelでやっていたデータ分析をPythonの方に移行しようと試行しています。

今までのExcelの分析のシステムはこんな感じでした。
・記録用シートにプレーデータの入力
・プレーデータを基に、スパイク決定率などといった数値を算出→スタッツ表作成
・プレーデータを基に、コート上のどこに誰がどのようなアクションを行ったのかを視覚化

プレーデータの入力は試合を観戦しながら、1つ1つ手打ちで入力していきます。

Excelでのデータの入力はセルに文字または数字を入れていく

こんな感じですね。
そして、それを基にスタッツ表が作られます。

Excel上のデータから作成したスタッツ。サーブ効果率、アタック決定率などが計算されている。

サーブを何本打った、それが何本決まって何本効果があった、何本ミスした、それによってサーブ効果率はこうなった、などという事が書いてあります。
これは事前に枠を用意しておいて関数を入れてあるので、背番号を入力すると各数値が出るようになっています。
そして背番号に対応する選手名を入力することで完成するというわけです。

また、プレーデータを基にチーム全体として、または選手個人個人がどのような位置に返球したのか・スパイクを打ったのか・どこにトスを上げたのか を図を使って視覚化しています。

Excelの散布図を使った項目の視覚化。左側はどこにレセプションを返したか、右側はどこにトスを上げたかを示している図。

今年はExcelを使って「何を示したら分かりやすい結果が出るのか」という事を追及していました。

9月にはnoteも始めて、他の人に見てもらうことを意識しながら作っていました。
皆さんの反応やTwitterでのリアクションなど様々な評価を頂けて本当に嬉しかったです。

そして、これまではExcelでのデータ分析を行っていましたが、Pythonで同様のことそして今まで以上の分析が行えるかを試しています。
新しいプログラミング言語で分析を行う理由としては、今後の展望としてネット上で行えるデータ分析を作りたいからです。
その第一歩として勉強しやすくて応用力の高いPythonを使うのが一番いいかなと思いました。
今考えているPythonでのデータ分析の構想はこんな感じです。

・データの入力…ただ入力するだけでなく、現在のローテーションの表示、現在得点の表示など入力中にもゲームの流れを把握しながら入力できるようになる
・データを基にスタッツ表の作成…コマンド1つでスタッツ表を作成する。そして今できる以上の統計値を表示できる
・データを基に視覚化…コマンド1つでデータの視覚化ができる。選手の位置情報を加えたり、アニメーションとして表示できる。
・データの保存…低容量で検索に対応
・データの検索…ある選手の2023年全ての出場試合の結果やスタッツ表を作成するなどができる。選手同士の比較や選手の能力をパラメータで表せるようになる。

そして現在の進捗としては、データの入力が結構大変なものになりそうなので、もともとExcelで作成していたデータを読み取り、それからスタッツ表を作成・データの視覚化ができるような関数を組みました。

実際の実行画面。
自作したライブラリをインポート(5,8行目のコード)することで、スタッツ表や図が作成できる。

例えば、シーズン・トーナメント名・試合日・チーム名を入力することで、それに対応するExcelのデータファイルを開くことができます。

ファイル読み取り時の試合情報の入力。これによってどのファイルを読み取るかを決定する。
例:2023-24のイタリアリーグSerieA1でのMilanoとTrentinoの試合。

16行目のvs.tstats()を実行すると読み取ったExcelファイルのデータからスタッツ表を作成することができます。
このスタッツ表の名前やポジションなどは、別のファイルに「プレーヤー情報(チーム、背番号、名前など)」として保存していたものを背番号を照合して作成したものです。

読み取ったデータのスタッツ作成。自作のライブラリから作った関数を呼び出している。

そして、読み取ったデータを基に視覚化をすることができます。
このコマンドでは「セット、スロット、背番号、アクション(サーブ・アタック・ブロックなど)」を選択して図示することができます。
セットやスロットは指定しなくても図示できます。つまり、セット・スロット・選手を指定しなければ、2個目の図のように、そのチームの試合全体でのサーブの位置とその結果が表示できるというわけです。

読み取ったデータの図示。元の関数はスタッツ表と同様、自作ライブラリから呼び出している。
例: Milanoの試合全体でのサーブコース。
オレンジは効果あり、赤はサービスエース。

卒論もあり、なかなか長時間取り組むことは難しいですが、ちょっとずつ進展していってはいます。

自分の目標というか、興味になるんですが、いろいろな人がバレーの観戦をしながらデータ分析を行って、それを共有する・集計するようなシステムが出来たらとても面白いなと思っているんです。
実際、今の中学や高校、さらには小学校でプログラミングの教育というのがとても熱心に行われていると聞きます。
正直、自分の下の代がみんな自分よりも優れた知識を当然のように持っているのはとても恐ろしいですが、逆にこれはチャンスなのではないかと思っています。
これから10年後、20年後に社会に出る人達はプログラミングの知識そして統計に関する興味があるのが当然という時代になる。ということは、自分でプログラミング言語を使ってデータ分析を行い、それを共有するといった「データ分析サービス」がより浸透しやすいということではないでしょうか。

10年後、20年後にスポーツを新たな形で楽しんでもらえるように、これからも頑張っていこうと思っています。

しばらく試合分析の投稿ができるかは分かりませんが、空いてる時間はフル活用して取り組んでいくつもりなので、ぜひこれからもよろしくお願いします!

この記事が気に入ったらサポートをしてみませんか?