はじめに
前回の記事 1 で一元配置分散分析を行いました。その結論として「ダイヤモンドの価格の平均は色のグレードによって異なる」を得ました。分散分析で有意差があった場合には、対比較(2群間の多重比較)を実施することで、どの群とどの群に差があるかを確認することが出来ます。今回はそれをPythonで実施しようと思います。
分散分析の事後検定
さっそくテューキーの範囲検定(Tukey's HSD (honestly significantly different) test)を用いて分散分析の事後検定を行います。
# statsmodels パッケージから pairwise_tukeyhsd() 関数をインポート
from statsmodels.stats.multicomp import pairwise_tukeyhsd
# テューキーの範囲検定を一元配置分散分析に対して実施
tukey_oneway = pairwise_tukeyhsd(endog = diamonds["log_price"], groups = diamonds["color"], alpha = 0.05)
# 結果の表示
print(tukey_oneway.summary())
Multiple Comparison of Means - Tukey HSD, FWER=0.05
===================================================
group1 group2 meandiff p-adj lower upper reject
---------------------------------------------------
D E -0.0375 0.2115 -0.0842 0.0092 False
D F 0.1455 0.0 0.0986 0.1924 True
D G 0.1727 0.0 0.1273 0.2181 True
D H 0.3015 0.0 0.2532 0.3499 True
D I 0.4061 0.0 0.3522 0.4599 True
D J 0.5291 0.0 0.4628 0.5953 True
E F 0.183 0.0 0.1406 0.2255 True
E G 0.2102 0.0 0.1694 0.251 True
E H 0.339 0.0 0.295 0.3831 True
E I 0.4436 0.0 0.3936 0.4935 True
E J 0.5666 0.0 0.5034 0.6298 True
F G 0.0271 0.4477 -0.0139 0.0682 False
F H 0.156 0.0 0.1117 0.2003 True
F I 0.2605 0.0 0.2103 0.3107 True
F J 0.3835 0.0 0.3201 0.4469 True
G H 0.1289 0.0 0.0862 0.1716 True
G I 0.2334 0.0 0.1846 0.2822 True
G J 0.3564 0.0 0.2941 0.4187 True
H I 0.1045 0.0 0.053 0.1561 True
H J 0.2275 0.0 0.1631 0.292 True
I J 0.123 0.0 0.0544 0.1917 True
---------------------------------------------------
結果の解釈
事後検定は使用可能なすべてのグループ間でペア比較を実行するので、結果の一部だけを解釈します。
Test 1: D vs. E
まずは帰無仮説($H_0$)と対立仮説($H_1$)を確認しておく。
帰無仮説($H_0$):色のグレードがDと色のグレードがEのダイヤモンドの価格は同じである。
H_0 : 𝑝𝑟𝑖𝑐𝑒_d = 𝑝𝑟𝑖𝑐𝑒_e
対立仮説($H_1$):色のグレードがDと色のグレードがEのダイヤモンドの価格は同じでない。
H_1 : 𝑝𝑟𝑖𝑐𝑒_d ≠ 𝑝𝑟𝑖𝑐𝑒_e
解釈
p-adjが0.2115であり、rejectがFalseとなっていることから、「色のグレードがDと色のグレードがEのダイヤモンドの価格は同じである」という帰無仮説を有意水準5%で棄却できない。つまり、「色のグレードがDと色のグレードがEのダイヤモンドの価格に(統計的に有意な)差はない」と言えます。
Test 2: D vs. F
ここでも先に帰無仮説($H_0$)と対立仮説($H_1$)を確認しておく。
帰無仮説($H_0$):色のグレードがDと色のグレードがFのダイヤモンドの価格は同じである。
H_0 : 𝑝𝑟𝑖𝑐𝑒_D = 𝑝𝑟𝑖𝑐𝑒_F
対立仮説($H_1$):色のグレードがDと色のグレードがFのダイヤモンドの価格は同じでない。
H_1 : 𝑝𝑟𝑖𝑐𝑒_D ≠ 𝑝𝑟𝑖𝑐𝑒_F
解釈
p-adjが0.0であり、rejectがTrueとなっていることから、「色のグレードがDと色のグレードがFのダイヤモンドの価格は同じである」という帰無仮説を有意水準5%で棄却する。つまり、「色のグレードがDと色のグレードがFのダイヤモンドの価格に(統計的に有意な)差がある」と言えます。
以下略
結論
帰無仮説を棄却できないのはDとE、それとFとGになります。従って(このデータ分析に従うのであれば)ダイヤモンドを買う時に色のグレードがDとE、FとGで迷った場合は色のグレードが良い方(DとF)を買っても価格に差はないのでお得、ということになります。
-
Pythonで一元配置分散分析(One-way ANOVA)を実施する - Qiita https://qiita.com/tatsu_sekine/items/d0e4ff35289b7c48ba7e ↩