Это статистическая мера вариативности, которая описывает диапазон центральных 50% данных в наборе. IQR используется для оценки разброса данных и для выявления выбросов.
Первый квартиль (Q1): Значение, ниже которого находится 25% данных.
Второй квартиль (Q2): Это медиана, значение, ниже которого находится 50% данных.
Третий квартиль (Q3): Значение, ниже которого находится 75% данных.
Разница между третьим и первым квартилями. Интерпретация: IQR показывает диапазон, в котором находится центральная половина данных, и помогает понять разброс данных вокруг медианы.
IQR = Q3 - Q1
[1, 3, 3, 6, 7, 8, 9, 15, 18, 19]
Первый квартиль (Q1): Среднее значение между вторым и третьим элементом (3 и 6), то есть 4.5.
Медиана (Q2): Среднее значение между пятым и шестым элементом (7 и 8), то есть 7.5.
Третий квартиль (Q3): Среднее значение между восьмым и девятым элементом (15 и 18), то есть 16.5.
Вычисление IQR:
IQR = Q3 - Q1 = 16.5 - 4.5 = 12
Значения, которые находятся ниже \(Q1 - 1.5 \times IQR\) или выше \(Q3 + 1.5 \times IQR\), считаются выбросами.
IQR может использоваться для сравнения разброса данных в разных наборах или группах.
Пример
import numpy as np
# Данные
data = [1, 3, 3, 6, 7, 8, 9, 15, 18, 19]
# Вычисление квартилей
Q1 = np.percentile(data, 25)
Q2 = np.percentile(data, 50)
Q3 = np.percentile(data, 75)
# Вычисление IQR
IQR = Q3 - Q1
print(f"Первый квартиль (Q1): {Q1}")
print(f"Медиана (Q2): {Q2}")
print(f"Третий квартиль (Q3): {Q3}")
print(f"Интерквартильный размах (IQR): {IQR}")
# Выявление выбросов
lower_bound = Q1 - 1.5 * IQR
upper_bound = Q3 + 1.5 * IQR
print(f"Границы для выбросов: {lower_bound} и {upper_bound}")
outliers = [x for x in data if x < lower_bound or x > upper_bound]
print(f"Выбросы: {outliers}")
Ставь 👍 и забирай 📚 Базу знаний