代表値の問題

今回は、平均値(相加平均 mean)、中央値(median)、最頻値(mode)の3つの代表値(average)について勉強します。“数学チュートリアル やさしく語る 確率統計 西岡康夫(著)”の1.3節 代表値の例題をRで解きます。

例題
次の表はある大学の剣道部に所属する男子学生15名の身長である。(単位: cm)
172 169 179 166 173 171 177 180
168 172 174 177 172 185 173
このデータについて次の問いに答えよ。
(1)最頻値を求めよ。
(2)中央値を求めよ。
(3)平均値(相加平均)を小数点第2位まで求めよ。

問(1)最頻値の答え

最も大きい頻度(データ内のある変量の出現回数)の変量の値が最頻値です。

表のデータを変数dataに入力します。

data <- c(172, 169, 179, 166, 173, 171, 177, 180, 168, 172, 174, 177, 172, 185, 173)

データを昇順にソートします。

sort(data)
##  [1] 166 168 169 171 172 172 172 173 173 174 177 177 179 180 185

目で見て数えると172の頻度が3で最も多そうです。

頻度をカウントします。

table(data)
## data
## 166 168 169 171 172 173 174 177 179 180 185 
##   1   1   1   1   3   2   1   2   1   1   1

最頻値は頻度3の172です。

関数で最頻値と頻度を計算するには次のようにします。

t <- table(data)
which.max(t)
## 172 
##   5
max(t)
## [1] 3

問(2)中央値の答え

昇順にソートしたデータの(length(data)+1)/2 =8番目が中央値です。

data_s <- sort(data)
index_m <- (length(data)+1)/2
data_s[index_m]
## [1] 173

median関数だけで求めることができます。

median(data)
## [1] 173

問(3)平均値の答え

データの和をデータの個数で割った値が平均値です。

sum(data) / length(data)
## [1] 173.8667

mean関数だけで求めることができます。

mean(data)
## [1] 173.8667

小数点第2位までの値を計算するには次のようにします。

m <- mean(data)
round(m, 2)
## [1] 173.87