このページでは統計の基本となる四分位数について全部で5つの求め方を紹介します。
今日は四分位数の求め方を知りたいんです!
求める方法はたくさんあるんですかね?
そうですね!四分位数を求めるために使えそうなモジュールはたくさんあります!
今日はPythonを使って四分位数を求める方法を勉強していきましょう!
四分位数とは、データを小さい順に並べたときに、25%、50%、75%の位置にある値のことです。
50%の位置にある値は「中央値」でしたね!
四分位数は、データの分布やばらつきを調べるのに役立ちます。
Pythonでは、さまざまなライブラリを使って、簡単に四分位数を計算することができます。
以下では、それぞれのライブラリの使い方を例とともに説明します。
四分位数を求める5つの方法
Pythonで四分位数を求める場合、5つの方法があります。
- statistics.quantiles関数を使用して求める方法
- numpy.percentile関数を使用して求める方法
- scipy.stats.mstats.mquantiles関数を使用して求める方法
- pandas.DataFrame.quantile関数(またはpandas.Series.quantile関数)を使用して求める方法
- 組み込み関数等を用いて定義の通り求める方法
それぞれ順番に説明していきます。
statistics.quantiles関数を使用して求める方法
statisticsモジュールをインポートし、statistics.quantiles関数を使って求めます。
import statistics
data = [12, 34, 57, 22, 97, 51, 69, 87, 72, 62]
#四分位数を計算
q1, q2, q3 = statistics.quantiles(data, n=4)
print("第一四分位数(Q1): ",q1)
print("第二四分位数(Q2): ",q2)
print("第三四分位数(Q3): ",q3)
#実行結果
# 第一四分位数(Q1): 31.0
# 第二四分位数(Q2): 59.5
# 第三四分位数(Q3): 75.75
このコードでは、statistics.quantiles()関数を使用してデータの第一四分位数(Q1)、第二四分位数(Q2、中央値)、第三四分位数(Q3)を計算しています。
numpy.percentile関数を使用して求める方法
numpyモジュールをインポートし、numpy.percentile関数を使って求めます。
import numpy as np
data = [12, 34, 57, 22, 97, 51, 69, 87, 72, 62]
#四分位数をそれぞれ計算
q1 = np.percentile(data, 25) # 第一四分位数
q2 = np.percentile(data, 50) # 第二四分位数(中央値)
q3 = np.percentile(data, 75) # 第三四分位数
scipy.stats.mstats.mquantiles関数を使用して求める方法
scipyモジュールをインポートし、scipy.stats.mstats.mquantiles関数を使って求めます。
from scipy import stats
data = [12, 34, 57, 22, 97, 51, 69, 87, 72, 62]
#四分位数を計算
q1, q2, q3 = stats.mstats.mquantiles(data)
pandas.DataFrame.quantile関数(またはpandas.Series.quantile関数)を使用して求める方法
pandasモジュールをインポートし、pandas.DataFrame(またはSeries)のquantile関数を使って求めます。
import pandas as pd
data = pd.Series([12, 34, 57, 22, 97, 51, 69, 87, 72, 62])
q1 = data.quantile(0.25) # 第一四分位数
q2 = data.quantile(0.50) # 第二四分位数(中央値)
q3 = data.quantile(0.75) # 第三四分位数
組み込み関数等を用いて定義の通り求める方法
pandasモジュールをインポートし、pandas.DataFrame(またはSeries)のquantile関数を使って求めます。
def find_median(List):
number_of_data = len(List)
if number_of_data % 2 == 0:
median = (List[number_of_data//2] + List[number_of_data//2 - 1]) / 2
else:
median = List[number_of_data//2]
return median
data = [12, 34, 57, 22, 97, 51, 69, 87, 72, 62]
data.sort()
middle = len(data) // 2
# 第一四分位数
lower_quartile = find_median(data[:middle])
# 中央値
median = find_median(data)
# 第三四分位数
if len(data) % 2 == 0:
upper_quartile = find_median(data[middle:])
else:
upper_quartile = find_median(data[middle+1:])
このコードは、データのリストをソートし、その中央値(第二四分位数)、第一四分位数、および第三四分位数を計算します。
ただし、この方法はPythonの組み込み関数のみを使用しているため、大規模なデータセットに対しては効率が低下する可能性があります。
そのため、大量のデータを扱う場合や高度な統計的分析が必要な場合は、numpyやpandasなどのライブラリを使用することをお勧めします!
なんとかできました~!
四分位数を求めるだけでもこんなにたくさんの方法があるんですね!
たくさんの方法があるから目的に合わせて使い分けられると良いですね!
データをまずは見てみるという段階で四分位数も良く用いますので様々な場面で使い分けていただけたらと思います!
まとめ
四分位数を求める方法も用いるモジュールによって様々です。
自身が分析したいデータに合わせて使い分けることができれば、様々な状況に対応できるようになると思います。
Pythonは、様々なライブラリを使って、統計的な計算やデータ解析を行うことができる便利な言語です。ぜひ、この記事を参考にして、Pythonで四分位数を求めてみてください。
このサイトの記事一覧へは以下へアクセス!
コメント