J1とLaLigaのクラブ間格差を、Pythonで分析でしてみた

Python
Nishipy
Jリーグは、どのチームが優勝する、専門家でも予想が難しいそうです。
一方、スペインのLaLigaは、優勝チーム(Barcelona or Real Madrid)や上位に入るであろうチームが、容易く予想できることで有名です。
今回は、統計学の基礎であるローレンツ曲線を書くことで、上記2つのリーグを比較してみました。


1. はじめに

1.1. ローレンツ曲線とは

ローレンツ曲線は、以下のようなものです。

ローレンツ曲線(ローレンツきょくせん、英: Lorenz curve)とは、ある分布を持つ事象について、確率変数が取り得る値を変数とし、確率変数の値が与えられた変数の値を超えない範囲における確率変数と対応する確率の積の和(あるいは確率変数と確率密度関数の積の積分)を、その分布に対する確率変数の期待値で割って規格化ものとして与えられる関数の幾何学的な表現のことである。[Wikipediaより]

所得や資産が、どの程度、平等・不平等に配分されているかを示すのに用いられるようです。
英語版Wikipediaにあった、以下の図がわかりやすいかもしれません。
この図のAが大きいほど、所得の格差が大きいとされます。

1.2. やりたいこと

ローレンツ曲線を描いて比較をしていきます。

  • J1のクラブ間の総年俸の格差を図示
  • LaLigaのクラブ間の総年俸の格差を図示
  • J1とLaLigaの比較

2. J1のクラブ間格差

2.1. 概要

2.2. ローレンツ曲線[J1]

(1) Webサイトから情報を取得

利用するWebサイトから、htmlを取得します。スクレイピングは、この本がわかりやすいです。

[amazonjs asin=”4774183679″ locale=”JP” title=”Pythonクローリング&スクレイピング -データ収集・解析のための実践開発ガイド-“]

↓の記事でやったのと、ほぼ同じです。

[Python]2018年Jリーグの得点データをスクレイピングして描画してみる[ジョー編]
Jリーグのデータをスクレイピングし、描画してみる

(2) csvに出力

先ほどのデータを整形し、csvファイルとして出力しましょう。

(3) ローレンツ曲線を描く

チーム毎の総年俸の格差を知りたいので、2つの累積相対度数を計算し、ローレンツ曲線を描きます。

  • 総年俸について
  • チーム数について

途中のDataFrameがこんな感じです。

ローレンツ曲線はこのようになりました。三日月は細めですね。

3. LaLigaのクラブ間格差

3.1. 概要


3.2. ローレンツ曲線[LaLiga]

(1) csv

これまで同様に、Webサイトから情報をスクレイピングして、csvファイルにします。
LaLigaの場合はこのような感じです。
利用したWebサイトには、「La Liga Clubs Wage Bill For 2017-18 Season」と書かれており、
総年俸と完全に一致しないかもしれませんが、気にせず使っていきます。単位は£です。

(2) ローレンツ曲線を描く

チーム毎の総年俸の格差を知りたいので、2つの累積相対度数を計算し、ローレンツ曲線を描きます。
J1のときと同様です。

4. J1とLaLigaの比較

4.1. ローレンツ曲線

両リーグのローレンツ曲線を並べると、このようになります。

緑とオレンジの線から成る三日月型が大きいのがわかります。
つまり、LaLigaのほうが、クラブ間の格差が大きいことが、図示できました。

4.2. ジニ係数

ジニ係数というもので、不平等を数値化できます。
離散の場合は、以下の式を計算すればよいようです。
$$
Gini=\sum_{i}\sum_{j}\left| \frac{x_i-x_j}{2n^2 \overline{x}}\right|
$$

→ ジニ係数[Wikipedia]

ローレンツ曲線と45度線の間の三日月型の面積を2で割ると算出できるみたいですね。
今回は、グラフで十分なので、計算しませんが、気になる方はぜひ。

5. 所感

  • 統計学の基礎であるローレンツ曲線を書いた
  • J1とLaLigaにおいて、クラブ間での不平等の度合いがわかった
  • LaLigaのほうが、クラブ間の格差があった

[amazonjs asin=”4774183679″ locale=”JP” title=”Pythonクローリング&スクレイピング -データ収集・解析のための実践開発ガイド-“]

以上.

コメント