Приведи пример P-value
Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
P-value: практические примеры
P-value — одна из ключевых концепций в статистике. Дам подробное объяснение с реальными примерами.
Что такое P-value?
P-value (p-вероятность) — это вероятность того, что при условии истинности нулевой гипотезы (H0) мы получим результаты, равные наблюдаемым или более экстремальные.
Просто говоря: это мера того, насколько необычны наши данные, если предположить, что эффекта нет.
Формальное определение:
p-value = P(данные | H0 истинна)
Практический пример 1: Бросание монеты
Предположим, я бросил монету 10 раз и получил 9 орлов.
from scipy.stats import binom_test
# Нулевая гипотеза: монета справедливая (p = 0.5)
# Альтернатива: монета несправедливая
p_value = binom_test(9, n=10, p=0.5, alternative='two-sided')
print(f'P-value: {p_value:.4f}') # Результат: 0.0107
Интерпретация:
- p-value = 0.0107 означает: есть только 1.07% шанс, что при справедливой монете мы получим результат, равный или более экстремальный (9 или 10 орлов, или 0 или 1 орёл)
- Это очень маловероятно, поэтому мы отвергаем гипотезу о справедливости монеты
- Уровень значимости (α) = 0.05, поэтому p-value < 0.05 → отвергаем H0
Практический пример 2: Средняя зарплата в компании
Допустим, в индустрии средняя зарплата аналитика — $80,000. В нашей компании выборка из 30 сотрудников имеет среднюю зарплату $92,000 с стандартным отклонением $15,000.
Вопрос: отличается ли зарплата в нашей компании значимо?
from scipy.stats import ttest_1samp
import numpy as np
# Данные
our_salaries = np.array([92000] * 30) # Упрощение: все $92,000
industry_mean = 80000
# t-тест
statistic, p_value = ttest_1samp(our_salaries, industry_mean)
print(f'T-статистика: {statistic:.2f}')
print(f'P-value: {p_value:.6f}')
Результат: p-value = 0.0000123
Интерпретация:
- P-value очень малый (< 0.05)
- Вероятность получить такую разницу в случайной выборке из популяции со средней $80,000 практически нулевая
- Вывод: зарплата в нашей компании значимо выше среднеотраслевой
Практический пример 3: Конверсия сайта (A/B тест)
Тестируем новый дизайн кнопки на сайте.
Сценарий:
- Контрольная группа (A): 1000 пользователей, 100 кликов → конверсия 10%
- Тестовая группа (B): 1000 пользователей, 120 кликов → конверсия 12%
Вопрос: статистически значимо ли улучшение?
from scipy.stats import chi2_contingency
import numpy as np
# Таблица сопряженности
data = np.array([
[100, 900], # A: клики, некклики
[120, 880] # B: клики, некклики
])
chi2, p_value, dof, expected = chi2_contingency(data)
print(f'Chi2 статистика: {chi2:.2f}')
print(f'P-value: {p_value:.4f}')
Результат: p-value = 0.0715
Интерпретация:
- P-value = 0.0715 > 0.05
- Есть 7.15% вероятность получить такую разницу случайно
- Это НЕ значимо при уровне α = 0.05
- Вывод: нельзя утверждать, что новый дизайн лучше (нужна большая выборка или реальный эффект)
Практический пример 4: Корреляция между переменными
Проверяем, есть ли корреляция между опытом работы и зарплатой.
from scipy.stats import pearsonr
import numpy as np
# Данные 50 сотрудников
opyt = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10] * 5) # Опыт в годах
zarplata = opyt * 5000 + np.random.normal(0, 5000, 50) # Зарплата
correlation, p_value = pearsonr(opyt, zarplata)
print(f'Корреляция: {correlation:.3f}')
print(f'P-value: {p_value:.4f}')
Результат: correlation = 0.92, p-value < 0.0001
Интерпретация:
- P-value < 0.05 → корреляция статистически значима
- Корреляция = 0.92 → сильная положительная связь
- Вывод: опыт работы значимо влияет на зарплату
Частые ошибки в интерпретации P-value
❌ НЕПРАВИЛЬНО:
- "p-value — вероятность того, что H0 верна" → НЕВЕРНО
- "p-value = 0.06 значит результат не значим" → зависит от α
- "p-value < 0.001 означает огромный эффект" → нет, размер эффекта отдельно
✅ ПРАВИЛЬНО:
- "p-value — вероятность данных при условии H0 истинна"
- "p-value = 0.06 не позволяет отвергнуть H0 при α = 0.05"
- "p-value говорит об статистической значимости, не о практической важности"
Пороги значимости
| p-value | Интерпретация | Действие |
|---|---|---|
| < 0.001 | Очень сильное доказательство против H0 | Отвергаем H0 |
| 0.001-0.01 | Сильное доказательство | Отвергаем H0 |
| 0.01-0.05 | Доказательство | Отвергаем H0 |
| 0.05-0.10 | Слабое доказательство | Граница решения |
| > 0.10 | Недостаточно доказательств | Не отвергаем H0 |
Размер эффекта vs P-value
Важно: p-value говорит о статистической значимости, а не о величине эффекта.
# Пример: огромная выборка, маленький эффект
# p-value < 0.001, но практическое значение минимально
group1 = np.random.normal(100, 10, 10000)
group2 = np.random.normal(100.1, 10, 10000) # Разница всего 0.1
stat, pval = ttest_ind(group1, group2)
print(f'P-value: {pval}') # < 0.05 (значимо)
print(f'Разница: {group1.mean() - group2.mean()}') # 0.1 (неважно)
Вывод
P-value — это инструмент для принятия объективных решений на основе данных, но его нужно интерпретировать в контексте:
- Размер выборки
- Величина эффекта
- Практическая значимость
- Предварительная вероятность гипотезы