対象読者
- Pythonの基本的な文法を理解しておりデータ解析のスキルアップに取り組みたい方
サンプルの動作確認環境
- MacOS 10.13
- Anaconda 5.1
- Python 3.6
- Jupyter Notebook 5.4
統計の概要
この章では実際にPythonでの統計処理に入る前に、統計自体について簡単に触れていきます。
統計とは
統計とは「事象の個々の構成要素(サンプルや標本と呼びます)を調べ、事象全体を推定する」ことです。統計は英語でstats(統計学はstatistics)ですが、国を表すstateという言葉から派生している語です。国に関する情報のように、全てを調べることが難しい対象についても、その全体像を予測しようという数学にもとづく学問です。
サンプルから全体を予測するために、分布を想定するのが一般的な統計の特徴です。
統計の基本的要素
統計で頻出する基本的な用語について説明します。
- 平均:データを代表する値(代表値)の一つです。代表する値としては他に中央値や最頻値があります。
- 標準偏差:データのばらつき具合を表す値です。
- 分布:値がある確率で出現する場合にその確率の様子を表したものです。
例えば、正規分布は平均と標準偏差で表現できます。標準偏差をσとすると平均から±σの範囲でデータが68%、±2σの範囲で95%収まる、といった性質があります。
Pythonではじめての統計
Pythonで統計を活用したデータ解析を行う方法を紹介します。今回はデータ解析のためのライブラリであるPandasの他にSciPyを利用します。SciPyは高度な科学計算を行うためのライブラリです。
準備
Pythonによるデータ解析を進める環境としてJupyter Notebookを使います。導入方法や基本的な使用方法は連載の第1回記事を参照してください。
前回の記事と同じく、解析対象のデータとして、2017年のテニス(ATP:テニスのプロ組織)の試合データを用います。
データソースとしてはJeff Sackmann / Tennis Abstractにクリエイティブ・コモンズのライセンスで公開されているデータを使います。
ライブラリの導入とデータロード
まず必要なライブラリをインポートします。
NumPy、Pandas、matplotlibと今回はSciPyをインポートします。SciPyの中で統計の計算も手軽に利用できるstatsモジュールを利用します。
import numpy as np import pandas as pd import scipy.stats as st import matplotlib.pyplot as plt %matplotlib inline
データセットはCSV形式(カンマ区切りのテキストファイル)です。PandasのDataFrameとして読み込むため、read_csv関数を呼び出します。
df_raw = pd.read_csv('https://github.com/JeffSackmann/tennis_atp/blob/master/' 'atp_matches_2017.csv?raw=true')
これでデータフレームのdf_rawにデータが格納されました。