Python で反復測定 anova を実行する方法
反復測定 ANOVA は、各グループに同じ被験者が含まれる 3 つ以上のグループの平均間に統計的に有意な差があるかどうかを判断するために使用されます。
このチュートリアルでは、Python で一元配置反復測定分散分析を実行する方法を説明します。
例: Python での反復測定 ANOVA
研究者らは、4 つの異なる薬剤が異なる反応時間を引き起こすかどうかを知りたいと考えています。これをテストするために、彼らは 4 つの異なる薬に対する 5 人の患者の反応時間を測定しました。
各患者は 4 つの薬剤のそれぞれについて測定されるため、反復測定 ANOVA を使用して、平均反応時間が薬剤間で異なるかどうかを判断します。
Python で反復測定 ANOVA を実行するには、次の手順を使用します。
ステップ 1: データを入力します。
まず、データを保持するパンダ DataFrame を作成します。
import numpy as np import pandas as pd #createdata df = pd.DataFrame({'patient': np.repeat([1, 2, 3, 4, 5], 4), 'drug': np.tile([1, 2, 3, 4], 5), 'response': [30, 28, 16, 34, 14, 18, 10, 22, 24, 20, 18, 30, 38, 34, 20, 44, 26, 28, 14, 30]}) #view first ten rows of data df.head[:10] patient drug response 0 1 1 30 1 1 2 28 2 1 3 16 3 1 4 34 4 2 1 14 5 2 2 18 6 2 3 10 7 2 4 22 8 3 1 24 9 3 2 20
ステップ 2: 反復測定 ANOVA を実行します。
次に、 statsmodelsライブラリのAnovaRM() 関数を使用して、反復測定 ANOVA を実行します。
from statsmodels.stats.anova import AnovaRM #perform the repeated measures ANOVA print(AnovaRM(data= df , depvar=' response ', subject=' patient ', within=[' drug ']).fit()) Anova ==================================== F Value Num DF Den DF Pr > F ---------------------------------- drug 24.7589 3.0000 12.0000 0.0000 ====================================
ステップ 3: 結果を解釈します。
反復測定 ANOVA では、次の帰無仮説と対立仮説が使用されます。
帰無仮説 (H 0 ): µ 1 = µ 2 = µ 3 (母集団平均はすべて等しい)
対立仮説: (Ha):少なくとも 1 つの母集団平均値が残りの平均値と異なる
この例では、F 検定統計量は24.7589で、対応する p 値は0.0000です。
このp 値は 0.05 未満であるため、帰無仮説は棄却され、4 つの薬剤間の平均応答時間には統計的に有意な差があると結論付けられます。
ステップ 4: 結果を報告します。
最後に、繰り返し測定した ANOVA の結果を報告します。これを行う方法の例を次に示します。
応答時間に対する 4 つの異なる薬剤の影響を調べるために、5 人の個人に対して一元配置反復測定 ANOVA が実行されました。
結果は、使用された薬剤の種類によって反応時間に統計的に有意な差が生じることが示されました (F(3, 12) = 24.75887、p < 0.001)。
追加リソース
次のチュートリアルでは、反復測定 ANOVA に関する追加情報を提供します。