Функция quantile() в R - вычисление квантилей
Функция quantile() в R используется для вычисления квантилей данных.
Квантили — это точки, которые пропорционально делят данные после сортировки. Например, медиана — это 50%-й квантиль.
Синтаксис функции quantile() выглядит следующим образом:
quantile(x, probs = seq(0, 1, 0.25), na.rm = FALSE)
Описание параметра:
xВходной числовой вектор.
probsЗначения вероятностей квантилей в диапазоне от 0 до 1. По умолчанию возвращает квартили (0, 0.25, 0.5, 0.75, 1).
na.rmЛогическое значение, задаёт, удалять ли пропущенные значения NA.
Пример
# Создать оценки за экзамен
scores <- c(55, 62, 68, 70, 72, 75, 78, 80, 82, 85,
88, 90, 92, 95, 98)
# Квартили по умолчанию
print("Квартили:")
print(quantile(scores))
# Пользовательские квантильные точки
print("Пользовательские квантильные точки (10%, 50%, 90%):")
print(quantile(scores, probs = c(0.1, 0.5, 0.9)))
scores <- c(55, 62, 68, 70, 72, 75, 78, 80, 82, 85,
88, 90, 92, 95, 98)
# Квартили по умолчанию
print("Квартили:")
print(quantile(scores))
# Пользовательские квантильные точки
print("Пользовательские квантильные точки (10%, 50%, 90%):")
print(quantile(scores, probs = c(0.1, 0.5, 0.9)))
Результат выполнения приведённого выше кода:
[1] "四分位数:" 0% 25% 50% 75% 100% 55.00 71.00 80.00 88.75 98.00 [1] "自定义分位点 (10%, 50%, 90%):" 10% 50% 90% 63.2 80.0 94.4
quantile() часто используется для определения характеристик распределения данных и выявления выбросов:
Пример
# Использовать метод IQR для обнаружения выбросов
scores <- c(55, 62, 68, 70, 72, 75, 78, 80, 82, 85, 120)
# Вычислить Q1, Q3 и IQR
Q1 <- quantile(scores, 0.25)
Q3 <- quantile(scores, 0.75)
IQR <- Q3 - Q1
# Границы выбросов
lower_bound <- Q1 - 1.5 * IQR
upper_bound <- Q3 + 1.5 * IQR
print(paste("Нормальный диапазон:", round(lower_bound, 1), "до", round(upper_bound, 1)))
# Найти выбросы
outliers <- scores[scores < lower_bound | scores > upper_bound]
print(paste("Выбросы:", outliers))
scores <- c(55, 62, 68, 70, 72, 75, 78, 80, 82, 85, 120)
# Вычислить Q1, Q3 и IQR
Q1 <- quantile(scores, 0.25)
Q3 <- quantile(scores, 0.75)
IQR <- Q3 - Q1
# Границы выбросов
lower_bound <- Q1 - 1.5 * IQR
upper_bound <- Q3 + 1.5 * IQR
print(paste("Нормальный диапазон:", round(lower_bound, 1), "до", round(upper_bound, 1)))
# Найти выбросы
outliers <- scores[scores < lower_bound | scores > upper_bound]
print(paste("Выбросы:", outliers))
Результат выполнения приведённого выше кода:
[1] "正常范围: 44.3 到 119.3" [1] "异常值: 120"Другие расширения
Пример на языке R