Ответ
В статистических методах обнаружения выбросов, таких как тест Граббса или Диксона, p-value — это вероятность наблюдать данную экстремальную точку (или более экстремальную) в предположении, что все данные взяты из одной нормальной генеральной совокупности. Если рассчитанное p-value меньше выбранного уровня значимости α (обычно 0.05), нулевая гипотеза (точка не является выбросом) отвергается.
Практический пример на Python:
import numpy as np
from scipy import stats
# Пример данных с потенциальным выбросом
data = np.array([15.2, 15.3, 15.1, 15.5, 15.4, 25.0])
# Расчет Z-оценок и соответствующих p-значений (двусторонний тест)
z_scores = np.abs(stats.zscore(data))
p_values = stats.norm.sf(z_scores) * 2 # survival function * 2 для two-tailed
print(f"Z-оценки: {z_scores}")
print(f"P-значения: {p_values}")
# Для последней точки (25.0) p-value будет близко к 0,
# что указывает на статистически значимый выброс.
Важно: В алгоритмических методах (Isolation Forest, Local Outlier Factor) p-value обычно не используется. Вместо этого применяются пороговые значения для scores или расстояний.