scores = [80, 93, 75, 88]
mean_score = sum(scores) / len(scores)
print("平均点:", mean_score)平均点: 84.0
データの中心的傾向を表す数値を代表値という 1.平均値,中央値,最頻値などがよく知られている代表値である.代表値はデータの特徴を示す最も基本的な統計量である.
データの傾向を示すために最もよく使われる代表値は平均値である.平均値は,データの総和をデータの個数で割った値である.母集団の平均値を母平均,標本の平均値を標本平均という.一般に,\mu は母平均,\bar{x} は標本平均を表す 2.
n 個のデータ x_1, x_2, \ldots, x_n があるとする.このとき,標本平均 \bar{x} は以下の式で表される.
\bar{x} = \frac{x_1 + x_2 + \cdots + x_n}{n} = \frac{1}{n} \sum_{i=1}^{n} x_i
例 8.1 学生の四人のテストの点数がそれぞれ80点,93点,75点,88点であったとする.
このとき,平均点は以下のように計算される.
\bar{x} = \frac{80 + 93 + 75 + 88}{4} = \frac{336}{4} = 84
Python で計算する場合,以下のようにコードを書くことができる.
scores = [80, 93, 75, 88]
mean_score = sum(scores) / len(scores)
print("平均点:", mean_score)平均点: 84.0
scores は学生の点数を格納したリストである.sum(scores) はリスト内の全ての点数の合計を計算し,len(scores) はリスト内の要素数(学生の人数)を返す.これらを使って平均点を計算し,mean_score に格納している.
例 8.2 data というリストを引数として受け取り,そのデータの平均値 mean を計算して返す関数 my_mean() は,次のように定義できる.
def my_mean(data):
mean = sum(data) / len(data)
return mean
data = [80, 93, 75, 88]
print("平均点:", my_mean(data))statistics モジュールの利用statistics モジュールの mean 関数を使うと,平均値を簡単に計算できる.以下に例を示す.
import statistics
scores = [80, 93, 75, 88]
mean_score = statistics.mean(scores)
print("平均点:", mean_score)平均点: 84
データを大きさの順に並べたとき,中央に位置する値を中央値という.
データの個数が奇数の場合は中央の値が中央値となる.例えば,1, 3, 5 の中央値は 3 である.
データの個数が偶数の場合は,中央に位置する2つの値の平均が中央値となる.例えば,1, 3, 5, 7 の中央値は (3 + 5) / 2 = 4 である.
Python で中央値を計算する場合,statistics モジュールの median 関数を使うとよい.以下に例を示す.
import statistics
data = [1, 3, 5, 7]
median = statistics.median(data)
print("中央値:", median)中央値: 4.0
データの中で最も頻繁に出現する値を最頻値という.最頻値はモード(mode)とも呼ばれる 3.
例えば,1, 2, 2, 3, 4 の最頻値は 2 である.
Python で最頻値を計算する場合,statistics モジュールの mode 関数を使うとよい.以下に例を示す.
import statistics
data = [1, 2, 2, 3, 4]
mode = statistics.mode(data)
print("最頻値:", mode)最頻値: 2
練習 8.1 データが以下のように与えられたとする.このとき,平均値,中央値,最頻値をそれぞれ Python で計算せよ.
import statistics
data = [4, 5, 5, 6, 7, 8, 9]
# ここにコードを書く練習 8.2 以下のコードは,アヤメの花データセットを読み込み,「Iris setosa」の花弁の長さ(petal length)の平均値,中央値,最頻値を計算するものである. 50 個の Iris setosa の花弁の長さのデータは petal_length_setosa に格納されている.コードを完成させ,平均値,中央値,最頻値をそれぞれ計算せよ.
from sklearn.datasets import load_iris
import statistics
data = load_iris()
data_setosa = data.data[data.target == 0] # Iris setosa のデータ
petal_length_setosa = data_setosa[:, 2] # 花弁の長さ
print("花弁の長さ:", petal_length_setosa)
# ここにコードを書く練習 8.3 (中央値の計算アルゴリズム) 中央値を計算するアルゴリズムは以下の通りである.
my_median() という関数を定義し,data というリストを引数として受け取り,そのデータの中央値 median を計算して返すようにせよ.なお,data_sorted には data を昇順にソートしたリストが格納されているものとする.
def my_median(data):
data_sorted = sorted(data)
# ここにコードを書く
return median
data_1 = [1, 3, 5, 7]
print("中央値:", my_median(data_1))
data_2 = [1, 3, 5, 7, 9]
print("中央値:", my_median(data_2))