Когда приходится анализировать данные, важно выбрать правильный статистический тест.
1️⃣ Шаг 1: Проверка нормальности распределения
Тест Шапиро-Уилка:
➖Если p-value > 0.05 – распределение нормальное → используем параметрические тесты.
➖Если p-value < 0.05 – распределение ненормальное → используем непараметрические тесты.
Пример кода:
from scipy.stats import shapiro
data = [4.2, 5.1, 5.3, 6.0, 4.9, 5.8, 5.0, 5.5, 5.7, 6.1]
stat, p = shapiro(data)
print(f"p-value: {p:.4f}")
if p > 0.05:
print("Распределение нормальное — используем параметрические тесты")
else:
print("Распределение ненормальное — используем непараметрические тесты")
2️⃣ Шаг 2: Определяем тип выборок
➖Зависимые выборки: данные одной группы до и после вмешательства.
➖Независимые выборки: сравнение разных групп.
Пример:
*️⃣Сравнение результатов теста у студентов до и после курса (зависимые).
*️⃣Сравнение средней зарплаты между двумя разными группами (независимые).
3️⃣ Выбор теста
‼️Если распределение нормальное:
3.1 Зависимые выборки (Парный t-тест)
from scipy.stats import ttest_rel
before = [5, 6, 7, 8, 9]
after = [6, 7, 7, 8, 10]
stat, p = ttest_rel(before, after)
print(f"p-value: {p:.4f}")
Пример: Измеряем уровень стресса до и после медитации.
3.2 Независимые выборки
Сравнение дисперсий (тест Левена):
```from scipy.stats import ttest_ind, levene
group1 = [5, 6, 7, 8, 9]
group2 = [6, 7, 8, 9, 10]
stat_levene, p_levene = levene(group1, group2)
if p_levene > 0.05: # равные дисперсии(Т-критерий Стьюдента)
stat, p = ttest_ind(group1, group2, equal_var=True)
else: # неравные дисперсии(Т-критерий Уэлча)
stat, p = ttest_ind(group1, group2, equal_var=False)
print(f"p-value: {p:.4f}")```
Пример: Сравнение средней зарплаты мужчин и женщин.
‼️Если распределение ненормальное:
3.3 Зависимые выборки (Критерий Вилкоксона)
from scipy.stats import wilcoxon
before = [5, 6, 7, 8, 9]
after = [6, 7, 7, 8, 10]
stat, p = wilcoxon(before, after)
print(f"p-value: {p:.4f}")
Пример: Сравнение уровня тревожности до и после терапии.
3.4 Независимые выборки (Критерий Манна-Уитни)
from scipy.stats import mannwhitneyu
group1 = [5, 6, 7, 8, 9]
group2 = [6, 7, 8, 9, 10]
stat, p = mannwhitneyu(group1, group2)
print(f"p-value: {p:.4f}")
Пример: Сравнение времени реакции водителей двух возрастных групп.
#статистика #Python #анализданных #гипотезы #hypothesistesting #dataanalysis #кодинг #наука
