← Назад к вопросам

Что такое квантиль?

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 части

Важные свойства

  1. Робустность — квантили менее чувствительны к выбросам, чем среднее
  2. Асимметричные распределения — хорошо работают для скошенных данных
  3. Простота интерпретации — легко объяснить бизнесу
  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, так как дают быстрое понимание распределения данных без предположений о нормальности.