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 \]
Example 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 に格納している。
ソースコードがわからない場合は、それをコピーして ChatGPT に貼り付けて、説明を求めるとよい。例えば、以下のように質問する。
私は python を勉強している初心者です。
このコードは何をしていますか?わかりやすく説明してください。
scores = [80, 93, 75, 88]
mean_score = sum(scores) / len(scores)
print("平均点:", mean_score)
Example 8.2 my_mean() という関数を定義し、data というリストを引数として受け取り、そのデータの平均値 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
Python はさまざまなライブラリを提供している。これらのライブラリを活用することで、統計量の計算やデータ分析が容易になる。
データを大きさの順に並べたとき、中央に位置する値を中央値という。
データの個数が奇数の場合は中央の値が中央値となる。例えば、\(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
Exercise 8.1 データが以下のように与えられたとする。このとき、平均点、中央値、最頻値をそれぞれ python で計算せよ。
import statistics
data = [4, 5, 5, 6, 7, 8, 9]
# ここにコードを書くExercise 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)
# ここにコードを書くExercise 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))