0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Qiita100万記事感謝祭!記事投稿キャンペーン開催のお知らせ

Pythonで分散分析の事後検定(ANOVA post hoc test)~テューキーの範囲検定

Last updated at Posted at 2025-01-10

はじめに

前回の記事 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)を買っても価格に差はないのでお得、ということになります。

  1. Pythonで一元配置分散分析(One-way ANOVA)を実施する - Qiita https://qiita.com/tatsu_sekine/items/d0e4ff35289b7c48ba7e

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?