見出し画像

データサイエンスの基礎の学習法 データベース、プログラミング、統計学

September 19, 2016
A toolbox for football analytics
By Marek Kwiatkowski

**********

数週間前にこのサイトで公開された記事「新しい種類の分析に向けて」は多くの注目を集め、そしてそれに対してとても感謝している。フィードバックのほとんどは、「これはすべてうまくいっているが、どうやってこの種のことをやろうとするのか」という方向に沿ったものだった。この次は、狭義にこの質問に答えるように設計されており、「適切な」分析作業に欠かせない基本的な計算、統計ツールをいくつか挙げる。前回の記事で論じたように、フットボール分析で最も手間のかかる果物が選択され、基本的なツールではもはや十分ではない。率直に言うと、今日の公共の場で活発なアナリストの大多数は、質的な方法論的進歩を遂げるか、最先端技術との接触を永遠に失う必要がある。

下記の物語リストはデータベースプログラミング統計学の3つの部分に分けられる。

データベース

Excelを含む愛するものすべてを殺さなければならず、なぜならきちんと整理されたデータ格納が分析パイプラインにとって重要なためである。キュレーションして最新に保つことができるデータの単一のクロスリンクされたデータソースを持っていることを保証し、分析用のデータセットを抽出して準備するのに必要な時間を最小限に抑える。実際には、これはリレーショナル(SQL)データベースを意味する。SQLは、高度に最適化されたデータベースからデータを抽出(問合せ)するための業界標準言語である。プログラミングの知識がなくても比較的簡単に使えるように設計されており、この目標が達成されたと言える。個人的に技術者以外の人々を有能なSQL問合せライターに変換した。

SQLを使用するには、データを含む実際のデータベースを操作しなければならない。基本的な質問が2つあり、使用するデータベースの種類と実行場所である。後者から始めて、パソコン上にデータベースを維持することは確かに可能であり全く合理的な最初のステップである。ただしセットアップ、バックアップ、電源障害について心配する必要がないため、クラウドに保存するのが優れた選択肢である。アマゾン・ウェブ・サービス(AWS)は、1年分の無料データベース使用枠を提供しており、そのためそれらから始めて、1年後に支払いを続けるか別の解決策に移行できる。どの種類のSQLを使用するかについて、これまでにリレーショナルデータベースの経験がない場合はMySQLを、それ以外の場合はPostgreSQLを勧める。両方を使用した印象は、PostgreSQLはMySQLよりも多くの点で非常に優れていますが、経験なしでは扱いにくい。MySQLの道を進んでいくと、MySQL WorkbenchはMySQLデータベースの主要なフロントエンドである。

プログラミング

理想的な世界では、分析は実際のプログラミングをほとんど必要としない。適切なデータは、それを分析して結果を報告するための機械学習アルゴリズムに適した形式でデータベースから現れる。この慣例は、この空想を残酷なものにしており、アナリストとしてモデルの設計や結果の分析よりもプログラミングに大部分を費やしている。実行しなければならない3つの最も一般的なプログラミング作業は、生データをデータベースにロードし、データベースから抽出されたデータを統計ソフトウェアが要求する形式に変換し、そして分析の結果を検証し報告する。他のアナリストの経験も大体似ていると思う。

従ってチームで仕事をしたりプログラマーの相棒を持たない限り、フットボールの分析をうまく行うにはプログラミング言語の適切な理解が必要である。PythonRの2つの言語がコミュニティの圧倒的な本命である。どちらを選ぶべきかについての一般的なアドバイスは以下の通りである。もし一方の基本を知っているならば、それに固執して良い標準に学ぶ努力をする。
どちらも知らない場合は、Rを学ぶ。個人的にはプログラミング言語としてRは大嫌いであり、それは本当に禁止されるべきだと思う。しかしそれはフットボール分析のための実用的な選択でもあり、なぜなら利用可能な統計的方法の幅のため、そしてHadley Wickhamによる2つの本当に変わったパッケージ、dplyrggplot2がデータ操作と可視化のニーズの95%を引き受けることができるためである。同じくWickhamからのRStudioはR開発のための主要な環境である。Advanced Rの本(作者は推測通り)は実際、最初の数章ではそれほど進んでいないので、本当にゼロから始めない限り、まともなガイドである。

Pythonの道をたどる場合、Anacondaディストリビューションをインストールする。これはデータサイエンスのためにPython 2.7/3.5(どちらでも良い)を包装し、データ分析に不可欠なscipynumpymatplotlibstatsmodelsscikit-learnの拡張機能を含む。PyCharmは素晴らしく、機能豊富なPythonエディタである。Pythonの別の利点は、いわゆるORMを使ってSQLデータベースを構造化したり問合せしたりできるということで、これはデータベースと言語を非常に厳密に統合し、データベースレコードがコード内で直接変数として表示されるテクノロジであり、SQLを使用せずにそれらを操作できる(RもORMを持っていることに疑いはないが、単なる思考が私をおののかせる)。2つの主要なPythonのORMはDjangoSQLAlchemyである。前者を使用し、これは実際にデータベース駆動型ウェブサイト用の完全なフレームワークだが、SQLAlchemyも完璧な選択である。Soccermetricsがそれを使用しており、Howard氏のレポジトリにたくさんのコードサンプルがある。

最後にRにしろPythonにしろ、バージョン管理ソフトウェア(VCS)は不可欠である。VCSを使用すると、コードの複数のバージョン間を簡単に移動できるため、これまでに作成したものが失われることがなくなり、コードが時間の経過とともにどのように進化したのかを理解できる。Gitより優れたVCSはない。余裕があれば、GitHubに月額お金を払い、コードをプライベートリポジトリでレンタルし、Git自体の上にたくさんの本当に役に立つ機能を追加する優れたウェブインターフェースを使うことができる。支払いたくない場合、Bitbucketが無料でプライベートリポジトリをレンタルするが、そのインターフェースは残念である。最後の選択肢はGitLabである。無料でインターフェースは完全にまともだが、自分でコードリポジトリをホスティングしなければならない。どのような場合でもGit自体を学ぶ必要があり、これはかなり複雑なコマンドラインプログラムだが、基本的なコマンド(チェックアウト、ステータス、追加、コミット、プッシュ、プル、ブランチ)を理解するのは一日しかかからなく、必要なのはそれだけである。上記のGitの公式ウェブページには、優れた教育資料がたくさんある。

統計学

おそらく現在の公共分析界隈に対する主な不満は、アナリストが彼らの質問に取り組むために適切な統計的メカニズムを使用していないことである。前述のように、イベントデータのカウントと平均化で達成できる以上の主要な分析上の質問に対する進歩はすべて達成されている。フットボールは複雑で、フットボールのデータは騒々しく、そしてしっかりした洞察を引き出すためには、強力で専門的なツールが必要である。残念ながら、高度な統計を自分で習得するのは挑戦的で長いプロセスであり、過去数年間携わってきたにも関わらず、表面を傷つけただけである。おそらくより効率的な方法はオンラインコースに参加するか、一般的な統計学の教科書に従うことである。特定のコースを推奨することはできないが、ランダムに選択したコースが害を及ぼすことは想像できない。教科書に関して、Cosma Shilazi氏Norman Matloff氏の下書き(Thom Lawrence氏の発見)は非常にまともで、両方とも無料である。Gelman氏らのBayesian Data Analysisは、ベイズデータ分析の包括的な高度な処理であり、もし十分に検索すれば、ウェブ上にPDFもある。

1つの具体的な統計的方法は非常に素早く理解するのに十分簡単だが、分析の大部分を即座に改善できる一般化線形モデル(GLM)である。GLMは2つの方法で線形回帰を一般化する。第一に、従属変数(目的変数)はもはや独立変数(説明変数)の一次関数である必要はなく、第二に、誤差の分布は必ずしもガウス分布(正規分布)ではない。柔軟性が追加されたこれら2つの分野のために、一般的なフットボール分析モデルの多くはGLMフレームワークに適合する。xGモデルはGLMでも構わないが、スコア予測モデルやパワーランキングなどでも構わない。RはGLMを単一の強力なコマンドで指定することを可能にする組み込みglm関数を持っており、見返りは素晴らしい。係数、統計的有意性を得て、すべて無料で診断にフィットする。

この記事の目的は、新進のフットボールアナリストが、最も効率的な方法でゲームを分析できるプラットフォームを構築できるようにすることで、費やした時間の単位についての最大の洞察を意味する。残念ながらすでに途中にいない限り、これには多大な初期投資が必要である。考えでは、それだけの価値があるだけではなく、真剣な作業のために必要な前提条件である。真剣に取り組むことが念頭にある場合は、Twitter(@statlurker)で質問してほしい。

**********

My article “Towards a new kind of analytics” published on this site several weeks ago has received a lot of attention, for which I am very grateful. Most feedback I received though was along the lines of “this is all well and good, but how do I go about doing this kind of stuff?” This follow-up is designed to answer this question in a narrow sense, by listing some of the basic computational and statistical tools that I found indispensable in “proper” analytics work. As I argue in that previous article, the lowest-hanging fruit in football analytics has been picked and basic tools aren’t sufficient anymore. To put things bluntly, the vast majority of analysts active in the public sphere today need to make a qualitative methodological leap forward or lose contact with the state of the art forever.

ここから先は

8,083字

¥ 100

#フットボール統計学