Застосування непараметричних тестів в експериментальному аналізі

Експериментальний дизайн у Python

James Chapman

Curriculum Manager, DataCamp

Коли використовувати непараметричні тести

 

  • Припущення параметричних тестів не виконано
  • Дані на порядковій шкалі або не-нормальні
  • Стійкі до викидів і нелінійності

Скошений розподіл

Експериментальний дизайн у Python

Огляд непараметричних методів

 

  • Непараметричні методи для даних, що не відповідають класичним припущенням
  • Mann-Whitney U Test: порівняння двох незалежних груп
  • Kruskal-Wallis Test: порівняння понад двох груп

Ненормальний розподіл

Експериментальний дизайн у Python

Візуалізація непараметричних даних

  • Violin plots: візуалізація розподілів між групами
condensed_data = mineral_rocks[mineral_rocks['RockType'].isin(['Igneous', 'Metamorphic'])]

sns.violinplot(x='RockType', y='MineralHardness', data=condensed_data)

Віолін-плот твердість мінералів за типом породи (магматичні vs метаморфічні)

Експериментальний дизайн у Python

Візуалізація непараметричних даних

  • Boxen plot: краще показує форму розподілу
sns.boxenplot(x='RockType', y='MineralHardness', data=mineral_rocks)

Boxen-плот розподілу твердості мінералів за типами порід

Експериментальний дизайн у Python

Застосування непараметричних тестів — Mann-Whitney U

from scipy.stats import mannwhitneyu, kruskal
u_stat, u_pval = mannwhitneyu(
    mineral_rocks[mineral_rocks['RockType'] == 'Igneous']['MineralHardness'],
    mineral_rocks[mineral_rocks['RockType'] == 'Sedimentary']['MineralHardness']
)

print(f"Mann-Whitney U test p-value: {u_pval:.4f}")
Mann-Whitney U test p-value: 0.9724
Експериментальний дизайн у Python

Застосування непараметричних тестів — Kruskal-Wallis

k_stat, k_pval = kruskal(
    mineral_rocks[mineral_rocks['RockType'] == 'Igneous']['MineralHardness'],
    mineral_rocks[mineral_rocks['RockType'] == 'Sedimentary']['MineralHardness'],
    mineral_rocks[mineral_rocks['RockType'] == 'Metamorphic']['MineralHardness']
)

print(f"Kruskal-Wallis test p-value: {k_pval:.4f}")
Kruskal-Wallis test p-value: 0.0630
Експериментальний дизайн у Python

Давайте потренуємось!

Експериментальний дизайн у Python

Preparing Video For Download...