Как рассчитать описательную статистику в 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)

       xyz 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 ')])

       xz 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

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

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