R でサンプルと母集団の分散を計算する方法
分散は、データ値が平均の周囲にどの程度分散しているかを測定する方法です。
母集団の分散を求める公式は次のとおりです。
σ 2 = Σ (x i – μ) 2 / N
ここで、μ は母集団の平均、x iは母集団の i番目の要素、N は母集団のサイズ、Σ は「合計」を意味する単なる派手な記号です。
標本の分散を求める公式は次のとおりです。
s 2 = Σ (x i – x ) 2 / (n-1)
ここで、 xはサンプル平均、x iは i番目のサンプル要素、n はサンプルサイズです。
例: R でサンプルと母集団の分散を計算する
R に次のデータセットがあるとします。
#define dataset
data <- c(2, 4, 4, 7, 8, 12, 14, 15, 19, 22)
R のvar()関数を使用して標本分散を計算できます。
#calculate sample variance
var(data)
[1] 46.01111
そして、次のように標本分散に (n-1)/n を掛けるだけで母集団分散を計算できます。
#determine length of data
n <- length (data)
#calculate population variance
var(data) * (n-1)/n
[1] 41.41
母集団の分散は常にサンプルの分散よりも小さいことに注意してください。
実際には、母集団全体のデータを収集することは珍しいため、通常はデータセットの標本分散を計算します。
例: 複数の列のサンプルの分散を計算する
R に次のデータ フレームがあるとします。
#create data frame
data <- data.frame(a=c(1, 3, 4, 4, 6, 7, 8, 12),
b=c(2, 4, 4, 5, 5, 6, 7, 16),
c=c(6, 6, 7, 8, 8, 9, 9, 12))
#view data frame
data
ABC
1 1 2 6
2 3 4 6
3 4 4 7
4 4 5 8
5 6 5 8
6 7 6 9
7 8 7 9
8 12 16 12
sapply()関数を使用して、データ フレーム内の各列の標本分散を計算できます。
#find sample variance of each column
sapply(data, var)
ABC
11.696429 18.125000 3.839286
また、次のコードを使用して、各列の標本標準偏差を計算できます。これは、単に標本分散の平方根です。
#find sample standard deviation of each column
sapply(data, sd)
ABC
3.420004 4.257347 1.959410
その他の R チュートリアルはここで見つけることができます。