【Rによる統計学 No.2】データのバラツキ

こんにちは、タクロウ(@takuro_109)です!

前回はデータを表す最も一般的な平均について学習しました。

【Rによる統計学 No.1】いろいろな平均

ただ、平均だけだとデータを見誤ってしまいます。例えば、日本の平均年収が上がったというニュースがあった場合、一般的な人の年収は変わっていないけれど、富裕層の人がよりお金持ちになっただけで格差が拡がっただけかもしれません。なので、平均だけでなく、データのバラツキを確認する必要があります。

要点
  1. 分位数は、データを小さい数から大きい数に並べ、それをk等分したときに、その境になった数値
  2. 分散は、個々のデータに計算される偏差(観測値−平均値)を1つの指標にしたもの
  3. 変動係数は、2つのデータのバラツキ度合いを比較する場合に用いられる

データ準備

Rのサンプルデータwomen(30-39歳のアメリカ人の女性の平均の身長と体重データ)を使います。

#データ読み込み
#単位変換:インチからセンチメートル、ポンドからキログラム
data("women")
women$height <- round(women$height / 0.39370,1)
women$weight <- round(women$weight / 2.2046,1)
#データ構造確認
str(women)
#class(women)
#dim(women)
#ざっくり確認
summary(women)
#グラフで確認
par(mfrow=c(1,3))
hist(women$height)
hist(women$weight)
boxplot(women)
par(mfrow=c(1,1))
> str(women)
'data.frame':	15 obs. of  2 variables:
 $ height: num  147 150 152 155 158 ...
 $ weight: num  52.2 53.1 54.4 55.8 57.2 58.5 59.9 61.2 63 64.4 ...
> summary(women)
     height          weight     
 Min.   :147.3   Min.   :52.20  
 1st Qu.:156.2   1st Qu.:56.50  
 Median :165.1   Median :61.20  
 Mean   :165.1   Mean   :62.02  
 3rd Qu.:174.0   3rd Qu.:67.10  
 Max.   :182.9   Max.   :74.40  

分位数

分位数は、データを小さい数から大きい数に並べ、それをk等分したときに、その境になった数値です。よく用いられるのは四分位数(k=4)です。第3四分位数(75%タイル)と第1四分位数(25%タイル)の差を四分範囲と呼びます。

#四分位数
quantile(women$height)
#最小値、最大値
range(women$height)
# 四分位範囲
IQR(women$height)
quantile(women$height,0.75)-quantile(women$height,0.25)
> quantile(women$height)
   0%   25%   50%   75%  100% 
147.3 156.2 165.1 174.0 182.9 
> range(women$height)
[1] 147.3 182.9
> IQR(women$height)
[1] 17.8
> quantile(women$height,0.75)-quantile(women$height,0.25)
 75% 
17.8 

分散・標準偏差

分散は、個々のデータに計算される偏差(観測値−平均値)を1つの指標にしたもので、以下の式で計算されます。

$$S^2=\frac{1}{n-1}\sum_{i=1}^n (x_i-\bar{x})^2$$

分散の正の平方根が標準偏差(s)です。

不偏分散と母分散
上記分散は不偏分散です。不偏分散は、不偏推定量で、標本の情報だけを使って、母数に対して偏りのないように推定された統計量です。不偏分散の計算式を見ると、標本平均が使われており、不偏分散の自由度はn-1です。一方、母分散を求める際は母平均が使われ、母平均は未知のため制約にならず、母分散の自由度はnなので、偏差平方和をn-1ではなく、nで割って求めます。
#不偏分散
var(women$height)
#母分散
variance <- function(x){
  n <- length(x)
  var(x)*(n-1)/n
}
variance(women$height)
#標準偏差
sd(women$height)
sqrt(var(women$height))
> var(women$height)
[1] 129.0329
> variance(women$height)
[1] 120.4307
> sd(women$height)
[1] 11.35926
> sqrt(var(women$height))
[1] 11.35926

外れ値

外れ値はデータから大きく外れた値です。

# 外れ値
sample <- c(women$height, 250)
boxplot(sample)

変動係数

変動係数は、2つのデータのバラツキ度合いを比較する場合に用いられ、以下の式で計算します。\(s\)は標準偏差、\(\bar{x}\)は平均です。

$$CV=\frac{s}{\bar{x}}$$

apply(women,2,mean)
apply(women,2,sd)
apply(women,2,sd)/apply(women,2,mean)
> apply(women,2,mean)
height weight 
165.10  62.02 
> apply(women,2,sd)
  height   weight 
11.35926  7.02223 
> apply(women,2,sd)/apply(women,2,mean)
    height     weight 
0.06880232 0.11322525 

さいごに

今回データのバラツキについて学びました。グラフとRコマンドで計算した数値を見比べると、理解が深まると思います。数値を出す前にデータを眺めることが大事です。次回は、変数の相関について学びます。

以上、お読みいただきありがとうございました。