はじめに
データ分析に必要な統計学についてPythonを使って解説します。

と、統計学って聞くと難しそうで・・・
そんな方にもわかるように、この記事では基礎的な部分について分かりやすく解説していきたいと思います。
この記事で解決できる悩み
- データ分析に必要な最初に学ぶべき統計学の基礎とは?
- Pythonでどのように記述したらいいの?
なぜ、データ分析に統計学が必要か?
データ分析に統計学が必要な理由に関して、筆者は以下二点と考えています。
- 統計学とは、「過去のデータから特徴を見つけ出し、未来に対する推測を行う学問」であり、データ分析の協力な武器になるため。
- 第三者に説明する際、統計学という共有の分析手法で語ることで、妥当性を得やすいため。
データ分析に必要な統計学の基礎とは?
- データ分析に必要な最初に学ぶべき統計学の基礎は、記述統計学です。
記述統計学とは?
記述統計学とは、以下です。
- あるデータに対して、そのデータの特徴をわかりやすく表現すること
例えば、平均値を取ることなどが挙げられます。
すこしPythonで確認してみましょう。
Pythonによる記述統計学
環境には、Jupyter Notebookを用います。
もしインストール方法等が、わからない方がいらっしゃったらこちらを参考にしてみください。
今回は、データにirisを用います。
import pandas as pd
from sklearn import datasets
iris = datasets.load_iris()
X = pd.DataFrame(iris.data, columns=iris.feature_names)
X
実行結果はこちらです。

まずヒストグラムをとることから始めましょう。
ヒストグラムとは?
- ヒストグラムとは、縦軸に度数、横軸に階級をとったグラフ
Pythonでは、以下でヒストグラムをプロットすることができます。
import matplotlib.pyplot as plt
plt.hist(X["sepal width (cm)"],20)
plt.xlabel("sepal width (cm)")
plt.ylabel("Sample_Num")
plt.show()
出力結果は以下です。

各軸は、以下を示しています。
- 縦軸:サンプル数
- 横軸:sepal width (cm)
つまり、sepal widthの大きさ毎に、サンプルがどのような分布(個数)をしているのかを示しています。これが、ヒストグラムの例です。
平均、中央値、分散、標準偏差
記述統計学の基本である、平均、分散、標準偏差を解説します。
Pythonでは以下を使うことで簡単に求めることができます。
- pandasのdescribe
コードは以下です。
desc = X.describe()
desc
出力結果は、以下です。

- count:データ数
- mean:平均値
- std:標準偏差
- min:最小値
- 25%:第一四分位数
- 50%:中央値
- 75%:第三四分位数
- max:最大値
分散については、以下の関係より求めます。
標準偏差=(分散)の平方根
つまり、
分散 = 標準偏差の二乗
Pythonでは以下のように求めます。
desc.loc["std"]**2
出力結果は以下です。

平均とは?
- 平均値とは、 複数の数値に対して、個々を全て足し合わせた後、数値の個数で割った値のことを指します。
上のデータでいうと、meanの行を指します。
中央値とは?
- 中央値とは、有限個のデータを小さい順に並べたとき中央に位置する値を指します。
以下のコードを実行して確認していきましょう。
import matplotlib.pyplot as plt
plt.hist(X["sepal width (cm)"],30)
plt.vlines(x=desc["sepal width (cm)"].loc["mean"], ymin=0, ymax=35,colors = "r")
plt.vlines(x=desc["sepal width (cm)"].loc["50%"], ymin=0, ymax=35,colors = "k")
plt.xlabel("sepal width (cm)")
plt.ylabel("Sample_Num")
plt.show()
- 赤線が平均値
- 黒線が中央値

ピークが一つの形状では、中央値の方が最頻値に近い位置にあることが分かります。
分散とは?
- 分散とは、数値データのばらつき具合を表すための指標です。
以下のコードを実行して確認してきましょう。
import matplotlib.pyplot as plt
plt.hist(X["sepal width (cm)"],20,alpha = 0.5,label = "sepal width" )
plt.hist(X["petal length (cm)"],50,alpha = 0.5,label = "petal length" )
plt.legend()
- 青:sepal width
- オレンジ:petal length

この両者のデータを比較すると、petal lengthの方がばらついていることがわかります。
以下は、各項目の分散を示しています。
- sepal width:0.189979
- petal length:3.116278
なので、この分散の値からも、petal lengthの分散の方が大きいので、ばらつきが大きいと判断できます。
標準偏差とは?
- 標準偏差とは、数値データのばらつき具合を表すための指標です。
- しかも、元のパラメータと同じ単位
標準偏差は、分散と同様にばらつき具合を表すための指標です。分散との違いは、元のパラメータと同じ単位であることです。
そのため、実際どの程度ばらつくのか?ということを把握する面では、標準偏差の方が扱いやすいです。
なので、ばらつきの指標としては、標準偏差を使うことが一般的です。
まとめ
データ分析に必要な最初に学ぶべき統計学の基礎について解説しました。
- 主要な統計値については、pandasのdescribeで簡単に求めることができます
- 平均値とは、 複数の数値に対して、個々を全て足し合わせた後、数値の個数で割った値のことを指します。
- 中央値とは、有限個のデータを小さい順に並べたとき中央に位置する値を指します。
- 分散とは、数値データのばらつき具合を表すための指標です。
- 標準偏差とは、数値データのばらつき具合を表すための指標です。しかも、元のパラメータと同じ単位
Pythonをもっと勉強したいという方は、以下を参考にしてみてください。
今回の記事は、以上です。
最後までお読みいただきありがとうございました。
コメント
[…] 【Python】データ分析に必要な最初に学ぶべき統計学の基礎についてデータ分析に必要な統計学についてPythonを使って解説します。tsukimitech.com2021.01.19 […]
[…] 【Python】データ分析に必要な最初に学ぶべき統計学の基礎についてデータ分析に必要な統計学についてPythonを使って解説します。tsukimitech.com2021.01.19 […]