プロクラシスト

今日の寄り道 明日の近道

冬季オリンピックでメダルを取れる国の条件を、重回帰分析で探る!


スポンサーリンク

f:id:imslotter:20180225094049p:plain

こんにちは、ほけきよです。

冬季オリンピック、今日で閉会式ですね。*1 連日、各国選手の美しいプレーには感動しています。

データによれば、 日本は獲得メダル数過去最高らしいです!

そこで、ふと気になることがありました。

冬季オリンピックって、どういう国がメダルをたくさんもらっているのだろう??」

今回は、過去のオリンピックのデータを用いて、冬季オリンピックの強い国の条件を大雑把に分析してみます!

考えられる要因のリストアップ

今回、冬季オリンピックに強い国になりうる理由を、4つ考えてみました

気温

やはり、寒い国が勝つのは、直感的にも正しそうですよね? 赤道直下じゃ雪なんか降らないですものね。

今回は簡単に、各国の首都の年間平均気温を用いることにします。

GDP

スポーツが強いのは豊かな国だという話はよく聞きます。 日々の生活ができて初めて、スポーツはできますからね。

豊かさを表す指標は様々あると思いますが、ここではGDP(国民総生産)を要因として挙げてみます。

人口

単純に分母が大きいと、才能ある選手が生まれる可能性が高いのでは??

という仮説の元、人口もデータとして使います。

開催地からの距離

個人的な感覚ですが、「開催国はかなりメダルが多くなる傾向にありそうだし、開催地からの距離が近いほど、メダル増えるんじゃない?」

と思っています。現に日本のメダルは長野と平昌の時に多いですし。

  • 距離の計算方法はこちらから取得

分析

手順

下記手順で分析しています。(少し専門的な用語を含みます)

  • 1992年~2010年までのオリンピックを対象とする
  • 過去オリンピックでメダルを獲得した国だけを抽出する
  • 取得した各要因データを変数として扱うためつなぎ合わせる*2
  • 人口データとGDPデータの対数を取る
  • 各要因データを、平均と標準偏差で正規化する。
  • 重回帰分析を用いて、各変数の回帰係数を割り出す

なお、メダルは金・銀・銅があるので、下記のようなポイントを割り振って計算しています。

ポイント = 金*5 + 銀*3 + 銅*1

GDPと人口のlogを取るのは、正規化の効果をちゃんと出すためです。例としてGDPを挙げてみると、左(log無し), 右(log有)でグラフの形が大きく異なることがわかると思います。

f:id:imslotter:20180225015311p:plain

平均と標準偏差で正規化する場合は、分布の形が正規分布に近い時に威力を発揮するものだと思ってるので、こういう処理をしておきました。

重回帰分析とは

一つの目的変数(今回はメダルポイント)に対して、複数の変数がどのようにかかわっているかを計算したものです。

重回帰分析の仕組みはTJOさんの記事がわかりやすかったので、復習がてらちらちらと読みました。

ただ、実行に関してはpythonのsklearnモジュールを使っただけです。

from sklearn.linear_model import LinearRegression

で、できますね。簡単!

sklearnの使い方はこちらの記事などもご参考にしてください。

結果 : どの要素が一番強いのか?

分析の結果がこちらです!

メダルポイントの式

名前 係数
気温 -24.3
GDP(log) 31
人口(log) -4.1
開催地からの距離 2.1

f:id:imslotter:20180225024206p:plain この結果からわかるのは、まずは気温が低いほど、冬は強いということですね。やっぱり気温は相当関係しているようです。 また、GDPも関係しているようです。豊かな国であるほどメダルも獲得しやすくなるのですね。

しかし、人口や距離はあまり関係がないらしいです。むむ、予想が外れた。 なにか他にも要因があるのかな...!

精度はどうなの?

こちらが主要国のポイント状況。predictが回帰分析の式に当てはめた予測値。

f:id:imslotter:20180225021245p:plain

GDPが大きく影響しているので、中国はその伸びに従って上がっているのがわかります。USAは毎回安定のメダルラッシュ。 日本は、本来もっとメダルとれるのでは??と思っちゃいますね。

また、次表のように、寒さが際立つロシアでは、GDPよりも寒さが大きな要因となって、メダル予想も高く出ていることがわかります。

f:id:imslotter:20180225023938p:plain

まとめ

いかがでしたか?簡単な重回帰分析でも、いろいろとわかることはありますね。

いろいろ工夫する*3ともう少し精度は上がりそうだなとおもうのですが、まずはこのくらいで!! 個人的には、各大会ごとに大きく変わる変数を見つけたかったです。それが開催地との距離かと思ったのですが、はずれちゃいましたね。。

メダル獲得云々は関係なく、世界一を目指し全力でプレーする選手は素晴らしいですよね。 メダルを取れた選手も、惜しくも届かなかった選手も、本当に尊敬します!フィールド違えど、自分も頑張らないとな。

なお、今回用いたスクリプトとデータはgithubに上げていますので、オリンピックデータに興味があればお使いください。 github.com

だれか、もっと精度を上げてください!!ではでは

*1:本当はいくつかオリンピック×データ分析ネタ、書きたかったんですが。。。とりあえず一つだけでもと思い。

*2:正直これがめんどかった

*3:気温を冬だけにするとか、ほかの要素を追加するとか...

PROCRASIST