実験分析でのノンパラメトリック検定の適用

Pythonで学ぶ実験計画法

James Chapman

Curriculum Manager, DataCamp

ノンパラメトリック検定の使用タイミング

 

  • パラメトリック検定の仮定を満たさない
  • データが序数尺度、または非正規
  • 外れ値や非線形に頑健

歪んだ分布

Pythonで学ぶ実験計画法

ノンパラメトリック手法の概要

 

  • 伝統的仮定に合わないデータ向けのノンパラ手法
  • Mann-Whitney U検定: 2つの独立群を比較
  • Kruskal–Wallis検定: 3群以上を比較

非正規分布

Pythonで学ぶ実験計画法

ノンパラメトリックデータの可視化

  • バイオリンプロット: 群間の分布を可視化
condensed_data = mineral_rocks[mineral_rocks['RockType'].isin(['Igneous', 'Metamorphic'])]

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

岩石種別(火成岩 vs 変成岩)での鉱物硬度のバイオリンプロット

Pythonで学ぶ実験計画法

ノンパラメトリックデータの可視化

  • ボクセンプロット: 分布形状をより詳細に把握
sns.boxenplot(x='RockType', y='MineralHardness', data=mineral_rocks)

岩石種別での鉱物硬度分布のボクセンプロット

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...