Как рассчитать выборочную и популяционную дисперсию в r


Дисперсия — это способ измерения того, насколько хорошо значения данных распределены вокруг среднего значения.

Формула для нахождения дисперсии генеральной совокупности :

σ 2 = Σ (x i – µ) 2 / N

где μ — среднее значение популяции, xi — iй элемент популяции, N — размер популяции, а Σ — просто причудливый символ, означающий «сумма».

Формула для нахождения дисперсии выборки :

s 2 = Σ (x ix ) 2 / (n-1)

где x — среднее значение выборки, x i — i элемент выборки, а n — размер выборки.

Пример. Вычисление выборочной и генеральной дисперсии в R.

Предположим, у нас есть следующий набор данных в R:

 #define dataset
data <- c(2, 4, 4, 7, 8, 12, 14, 15, 19, 22)

Мы можем вычислить выборочную дисперсию , используя функцию var() в R:

 #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 можно найти здесь .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *