四分位数というのはソートされた配列について前から4分の1、2分の1、4分の3のところにある数のことです。
それぞれ第一四分位数、第二四分位数、第三四分位数と呼びます。
第二四分位数は中央値のことです。
中央値
要素の数が奇数の場合
中央にある数です。
0 1 2 3 4 5 6
であれば3となります。
要素の数が偶数の場合
中央の2個の数の平均です。
0 1 2 3 4 5 6 7
であれば3と4の平均で3.5となります。
四分位数
第一四分位数
要素の数が奇数の場合
中央にある数を除いた前半部分の中央値です。
0 1 2 3 4 5 6
であれば
0 1 2
の中央値で1となります。
要素の数が偶数の場合
半分に分けた前半部分の中央値です。
0 1 2 3 4 5 6 7
であれば
0 1 2 3
の中央値で1.5となります。
第三四分位数
第一四分位数の求め方で前半の代わりに後半を使います。
Python
def quartile(a):
if len(a) < 2:
return None
q = []
if len(a) % 2 == 0:
i = int(len(a) / 2)
q.append(median(a[0:i]))
q.append(median(a))
q.append(median(a[i:]))
else:
i = int(len(a) / 2)
q.append(median(a[0:i]))
q.append(median(a))
q.append(median(a[i+1:]))
return q
def median(a):
if len(a) % 2 == 0:
m = (a[int(len(a) / 2) - 1] + a[int(len(a) / 2)]) / 2
else:
m = a[int(len(a) / 2)]
return m
a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
x = quartile(a)
print(x)
if len(a) < 2:
return None
q = []
if len(a) % 2 == 0:
i = int(len(a) / 2)
q.append(median(a[0:i]))
q.append(median(a))
q.append(median(a[i:]))
else:
i = int(len(a) / 2)
q.append(median(a[0:i]))
q.append(median(a))
q.append(median(a[i+1:]))
return q
def median(a):
if len(a) % 2 == 0:
m = (a[int(len(a) / 2) - 1] + a[int(len(a) / 2)]) / 2
else:
m = a[int(len(a) / 2)]
return m
a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
x = quartile(a)
print(x)
コメント