Как рассчитать описательную статистику в R (с примером)


Описательная статистика — это значения, описывающие набор данных.

Они помогают нам понять, где находится центр набора данных, а также насколько разбросаны значения в наборе данных.

Есть две функции, которые мы можем использовать для вычисления описательной статистики в R:

Способ 1: Используйте функцию summary()

summary(my_data)

Функция summary() вычисляет следующие значения для каждой переменной во фрейме данных в R:

  • Минимум
  • 1-й квартиль
  • медиана
  • Иметь в виду
  • 3-й квартиль
  • Максимум

Способ 2: использовать функцию sapply()

sapply(my_data, sd, na. rm = TRUE )

Функцию sapply() можно использовать для расчета описательной статистики, отличной от той, которая рассчитывается функцией summary() для каждой переменной во фрейме данных.

Например, приведенная выше функция sapply() вычисляет стандартное отклонение каждой переменной во фрейме данных.

В следующем примере показано, как использовать обе эти функции для вычисления описательной статистики для переменных во фрейме данных в R.

Пример: расчет описательной статистики в R

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

#create data frame
df <- data.frame(x=c(1, 4, 4, 5, 6, 7, 10, 12),
 y=c(2, 2, 3, 3, 4, 5, 11, 11),
 z=c(8, 9, 9, 9, 10, 13, 15, 17))

#view data frame
df

 x y z
1 1 2 8
2 4 2 9
3 4 3 9
4 5 3 9
5 6 4 10
6 7 5 13
7 10 11 15
8 12 11 17

Мы можем использовать функцию summary() для вычисления различных описательных статистик для каждой переменной:

#calculate descriptive statistics for each variable
summary(df)

 x y z 
 Min. : 1.000 Min. : 2.000 Min. : 8.00 
 1st Qu.: 4.000 1st Qu.: 2.750 1st Qu.: 9.00 
 Median : 5.500 Median : 3.500 Median : 9.50 
 Mean : 6.125 Mean : 5.125 Mean :11.25 
 3rd Qu.: 7.750 3rd Qu.: 6.500 3rd Qu.:13.50 
 Max.:12.000 Max.:11.000 Max.:17.00 

Мы также можем использовать скобки только для расчета описательной статистики для определенных переменных во фрейме данных:

#calculate descriptive statistics for 'x' and 'z' only
summary(df[ , c('x', 'z')])

 x z 
 Min. : 1.000 Min. : 8.00 
 1st Qu.: 4.000 1st Qu.: 9.00 
 Median : 5.500 Median : 9.50 
 Mean : 6.125 Mean :11.25 
 3rd Qu.: 7.750 3rd Qu.:13.50 
 Max.:12.000 Max.:17.00

Мы также можем использовать функцию sapply() для вычисления конкретной описательной статистики для каждой переменной.

Например, следующий код показывает, как вычислить стандартное отклонение каждой переменной:

#calculate standard deviation for each variable
sapply(df, sd, na. rm = TRUE )

 x y z 
3.522884 3.758324 3.327376 

Мы также можем использовать функцию() внутри sapply() для вычисления описательной статистики.

Например, следующий код показывает, как вычислить диапазон для каждой переменной:

#calculate range for each variable
sapply(df, function(df) max(df, na. rm = TRUE )-min(df, na. rm = TRUE ))

 x y z 
11 9 9

Наконец, мы можем создать сложную функцию, которая вычисляет некоторую описательную статистику, а затем использовать эту функцию с функцией sapply() .

Например, следующий код показывает, как вычислить моду каждой переменной во фрейме данных:

#define function that calculates mode
find_mode <- function (x) {
 u <- unique(x)
 tab <- tabulate(match(x, u))
 u[tab == max(tab)]
}

#calculate mode for each variable
sapply(df, find_mode)

$x
[1] 4

$y
[1] 2 3 11

$z
[1] 9

Из вывода мы видим:

  • Режим переменной x равен 4 .
  • Мода переменной y равна 2 , 3 и 11 (поскольку каждое из этих значений встречается чаще всего)
  • Режим переменной z равен 9 .

Используя функции summary() и sapply() , мы можем вычислить любую описательную статистику, которую мы хотели бы получить для каждой переменной во фрейме данных.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в R:

Как создать сводные таблицы в R
Как найти межквартильный диапазон в R
Как удалить выбросы в R

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.