← Назад к вопросам
Что такое квантиль?
1.0 Junior🔥 171 комментариев
#Pandas и обработка данных#Статистика и A/B тестирование
Комментарии (1)
🐱
claude-haiku-4.5PrepBro AI30 мар. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
Что такое квантиль?
Квантиль — это значение в упорядоченном наборе данных, которое делит распределение на несколько равных по численности частей. Это фундаментальное понятие в статистике и машинном обучении для анализа и описания данных.
Определение и примеры
Если у вас есть набор из 100 элементов, отсортированный по возрастанию, то:
- 25-й процентиль (Q1) — значение, ниже которого находится 25% данных
- 50-й процентиль (Q2/медиана) — значение, ниже которого находится 50% данных
- 75-й процентиль (Q3) — значение, ниже которого находится 75% данных
- 90-й процентиль — значение, ниже которого находится 90% данных
Основные квантили
import numpy as np
import pandas as pd
data = np.array([1, 3, 5, 7, 9, 11, 13, 15, 17, 19])
# Используя numpy
q1 = np.quantile(data, 0.25) # 5.0
q2 = np.quantile(data, 0.50) # 10.0 (медиана)
q3 = np.quantile(data, 0.75) # 15.0
# Используя pandas
df = pd.Series(data)
print(df.quantile(0.25)) # 5.0
print(df.quantile(0.50)) # 10.0
print(df.quantile(0.75)) # 15.0
# Все квартили сразу
print(df.describe())
Практическое применение
1. Обнаружение выбросов (outliers)
Q1 = data.quantile(0.25)
Q3 = data.quantile(0.75)
IQR = Q3 - Q1 # Межквартильный размах
lower_bound = Q1 - 1.5 * IQR
upper_bound = Q3 + 1.5 * IQR
outliers = data[(data < lower_bound) | (data > upper_bound)]
2. Нормализация данных
# Quantile-based scaling
def quantile_normalize(x, q1=0.01, q3=0.99):
q1_val = x.quantile(q1)
q3_val = x.quantile(q3)
return (x - q1_val) / (q3_val - q1_val)
3. Feature Engineering
# Создание категорий по квантилям
df["income_quantile"] = pd.qcut(df["income"], q=4, labels=["low", "medium", "high", "very_high"])
4. Оценка performance моделей
# В задачах регрессии часто смотрят quantile loss
# для анализа ошибок в разных частях распределения
from sklearn.metrics import mean_absolute_percentage_error
# Quantile regression
from sklearn.linear_model import QuantileRegressor
qr = QuantileRegressor(quantile=0.9, alpha=0.01)
qr.fit(X, y) # модель учит 90-й процентиль
Разница между квантилями и процентилями
- Квантиль — это точка, выраженная как доля (0.25, 0.50, 0.75)
- Процентиль — это то же самое, но выраженное в процентах (25%, 50%, 75%)
- Децили — разделение на 10 частей
- Квартили — разделение на 4 части
Важные свойства
- Робустность — квантили менее чувствительны к выбросам, чем среднее
- Асимметричные распределения — хорошо работают для скошенных данных
- Простота интерпретации — легко объяснить бизнесу
- Универсальность — работают с любыми распределениями
Визуализация
import matplotlib.pyplot as plt
plt.figure(figsize=(10, 6))
plt.hist(data, bins=30, alpha=0.7)
plt.axvline(data.quantile(0.25), color="r", linestyle="--", label="Q1")
plt.axvline(data.quantile(0.50), color="g", linestyle="--", label="Q2 (медиана)")
plt.axvline(data.quantile(0.75), color="b", linestyle="--", label="Q3")
plt.legend()
plt.show()
Квантили — это один из самых полезных инструментов в exploratory data analysis, так как дают быстрое понимание распределения данных без предположений о нормальности.