データの分布の特徴を表す指標(要約統計量)のうち、分布の中心を表す要約統計量には、平均値、中央値や最頻値がある。生物学では、とくに平均値がよく使われる。これは、生物学において、正規分布に従うデータをよく取り扱っているためである。平均値は、必ずしもすべてのデータの分布の中心を表しているわけではない。例えば、次のような分布の形であれば、平均値が必ずしもその分布の特徴を代表しているといえない。分布の代表値を計算するとき、必要に応じて、そのデータをヒストグラムで示して、その分布を確認してから、平均値か、中央値か、あるいは最頻値を使うかを検討するべきである。
平均値 Mean
平均値は、一般的に使われている算術平均(相加平均)のほかに、幾何平均(相乗平均)、調和平均が知られている。
算術平均(相加平均) Sample mean
算術平均は、データの総和をデータの個数で割った値である。n 個のデータ x1, x2, ..., xn に対して、その算術平均は、次のように計算される。
算術平均は、次のようなの性質を持つことが知られている。
- 平均\(\overline{X}\)からの偏差の和がゼロである。すなわち、\(\sum (x_{i}-\overline{X})\) である。
- a, b を定数とすると、\(\overline{aX+b} = a\overline{X}+b \) が成り立つ。
- xi (i = 1, 2, ..., nx) の平均を \(\overline{X}\)、yi (i = 1, 2, ..., ny) の平均を \(\overline{Y}\) としたとき、z = {x1, ... , y1, ...} の平均は \( \overline{Z} = \frac{n_{x}}{n_{x}+n_{y}}\overline{X}+\frac{n_{y}}{n_{x}+n_{y}}\overline{Y}\) である。
- 任意の実数 a に対して、\(\sum(x_{i}-\overline{X}) \le \sum(x_{i}-a)\) が成り立つ。
R で算術平均を計算するには、データの合計値 sum
をデータの個数 length
で割ることで計算できる。あるいは、mean
関数を利用して、直接
に計算することもできる。
x <- c(1, 3, 4, 56, 234, 12, 63, 4)
sum(x)/length(x)
## [1] 47.125
mean(x)
## [1] 47.125
幾何平均(相乗平均) Geometric mean
幾何平均は、比率で変化するデータの平均変化率を調べたいときに利用される。n 個のデータ x1, x2, ..., xn が正のとき、幾何平均は次のように計算される。
R では、データ同士の累積 prod
を計算してから、データの個数 length
の逆数の累乗を求めることで、幾何平均を計算できる。
x <- c(1.0, 1.4, 2.5, 3.4, 5.1, 7.7, 11.4, 18.1)
prod(x)^(1/length(x))
## [1] 4.197821
調和平均 Harmonic mean
調和平均は、変化率の平均を知りたいときに使われる平均である。例えば、仕事効率(速さの計算や電気抵抗など)の計算などでよく取り上げられている。調和平均は、n 個のデータ x1, x2, ..., xn が存在するとき、その逆数の平均として計算される。
R では、データの逆数の和の逆数に、データの個数をかけることによって計算できる。
x <- c(0.5, 0.3, 0.4, 0.1, 0.3, 0.2, 0.3, 0.4)
1/sum(1/x)*length(x)
## [1] 0.25
中央値 Median
中央値とは、すべてのデータを昇順に並べたとき、その数列の中央にある値を指す。データが偶数この場合は、中央にもっとも近い 2 つの値の算術平均を中央値とする。データが正規分布に従わないとき、中央値がデータの分布の中心の指標として使われることがある。
R では median
関数を利用することで、中央値を計算できる。
x <- c(1, 7, 39, 392, 100)
median(x)
## [1] 39
x <- c(10, 20, 30, 40)
## [1] 25
最頻値 Mode
データの中に、最も出現頻度の高い数値を最頻値という。データの個数が極端に少ない、あるいは中心への集中傾向が弱いとき、最頻値が計算出来ない場合がある。
R では table
関数を利用して、各値の出現頻度を調べることができる。出現頻度がもっとも大きい値を探せば、最頻値を取得できる。次の例では、最頻値が 3 で、5 回出現したことがわかる。
x <- c(1, 3, 4, 3, 56, 3, 234, 12, 3, 63, 3)
y <- table(x)
y
## x
## 1 3 4 12 56 63 234
## 1 5 1 1 1 1 1
y[whch.max(y)]
## 3
## 5