全3823文字
PR

データを扱う際には「統計」の知識は避けては通れない。統計学の基礎を学び、データの特徴を示す記述統計のプログラムをPythonで作ることで、統計の知識を深めていく。

 ここまで「架空のプロ野球チームの選手一覧」のデータの大まかな傾向を見てきました。ただ、平均値や中央値はデータの分布の中心を示す数値にすぎません。これだけではデータの特徴を表せたとは言えないのです。中心からそれぞれのデータがどれだけ離れているかという「ばらつき」も、データの特徴を示す重要な指標の一つです。

 ここでは選手の身長のデータのばらつきを確認するために「分散」と「標準偏差」を求めます。さらに、国籍が異なる選手の身長の分布やばらつきを比較するために、「層別ヒストグラム」や「箱ひげ図」を作成していきます。

 「分散」とは、データが平均値からどれぐらいばらついているかを示す要約統計量です。平均値から離れたデータが多いほど、分散の値は大きくなります。

 各データが平均値からどれぐらい離れているかは、「各データの値」から「全データの平均値」を引いた値で表せます。この値のことを「偏差」と呼びます。

[画像のクリックで拡大表示]

 分散は、偏差を二乗して足し合わせ、データの個数で割ることによって求められます。なぜ、偏差の値を二乗せずにそのまま足さないのかというと、「各データの値」から「全データの平均値」を引いた値が正の数のこともあれば負の数のこともあるからです。図12のように、データが平均値より小さければ偏差は負の数になり、データが平均値より大きければ偏差は正の数になります。これらを単純に足し算しても0になり、「各データがどれぐらい平均値から離れているか」の総和を表すことができないので、偏差の二乗を足すのです。

図12●全データ分の偏差を足すと0になる
図12●全データ分の偏差を足すと0になる
[画像のクリックで拡大表示]

 この計算では、各データと全データの平均値の差を「二乗」した値を使っています。つまり、分散というのは、もとのデータの尺度と異なる尺度で表した値になっています。

 一方、「標準偏差」とは、もとのデータと同じ尺度で、各データが平均値からどれぐらいばらついているかを示す値のことです。標準偏差は、分散のルート(√)をとることで求められます。そうすることで、データが平均値からどれぐらいばらついているのかが、よりわかりやすくなります。

 選手の身長の分散と標準偏差を求めましょう。リスト5を入力して実行してください。(1)で「各データの値」と「全データの平均値」の差(偏差)を二乗して足した値を求めています。ここでは二乗して足した値のことを「平方和」と呼びます。

リスト5●身長の分散と標準偏差を求めるコード
リスト5●身長の分散と標準偏差を求めるコード
[画像のクリックで拡大表示]

 分散と標準偏差は、次のように算出します。

[画像のクリックで拡大表示]

 リスト5の実行結果は次のようになります。

[画像のクリックで拡大表示]

 選手全体の身長の分散が「36.302977478918244」で、標準偏差が「6.025195223303411」であることがわかりました。この数字だけ見てもイメージしづらいかもしれません。そこで、日本人選手と海外選手の身長の分散と標準偏差を比べてみましょう。リスト6のコードを入力して実行してください。ここでは、JPNorNot(日本国籍かどうか)の項目で選手の身長のデータを2つのグループに分け、pandasの関数を使って分散と標準偏差を求めています。

リスト6●日本人選手と海外選手に分けて身長の分散と標準偏差を求めるコード
リスト6●日本人選手と海外選手に分けて身長の分散と標準偏差を求めるコード
[画像のクリックで拡大表示]

 リスト6の実行結果は図13のようになります。分散の値は、日本の選手が「30.782362」で海外の選手が「25.019636」です。標準偏差の値は、日本の選手が「5.548185」で海外の選手が「5.001963」です。この結果から、海外選手に比べて日本人選手の方が身長の分散と標準偏差が、いずれも大きいことがわかります。つまり、日本人選手の身長の方がデータのばらつきが大きいということです。

図13●リスト6の実行結果
図13●リスト6の実行結果
[画像のクリックで拡大表示]