【統計】フリードマン検定(Friedman test)

フリードマン検定(Friedman test)のメモ。
ノンパラメトリックな対応のある差の検定(3時点以上)。

【目次】


帰無仮説、対立仮設


帰無仮説  H_{0}: すべての時点に差がない

・対立仮設  H_{1}: 何れかの時点に差がある


計算式等


 \quad Q=\dfrac{12}{nk\left( k+1\right) }\sum_{i=1}^{k}r_{i}^{2}-3n\left( k+1\right)

 \quad Q'=Q / C

 \quad C=1-\dfrac{\sum _{i=1}^{n}\left\{ t_{i}\left( ti^{2}-1\right) \right\} }{nk\left( k^{2}-1\right)}

 ※ n=被験者数、k=時点数、t=タイ数、r=順位の合計(Rank Sum)
 ※ Q'はタイ補正済みの統計量


計算例


架空データで計算。


  1. 被験者毎に平均順位を算出。
  2. 平均順位にタイがあれば t (t^2-1)を計算。
    ※表中のSubject=106のように同一被験者内でタイが複数あればその分計算する。106は10が2つ、11が3つタイなので 2(2^2-1)+3(3^2-1) = 6 + 24
  3. 時点毎に順位の合計(Rank Sum)を算出。
  4. 上記で式を示したQ統計量を算出。
  5. Q統計量でカイ二乗検定を実施。時点数-1のカイ二乗分布に従う。


Rで検算。

> ads <- matrix(c(
+   10,12,14,15,16,
+   11,12,13,12,11,
+   8,10,12,11,9,
+   10,15,20,21,21,
+   13,13,15,16,17,
+   10,10,11,11,11,
+   10,10,10,11,11,
+   10,10,10,10,11,
+   10,10,10,10,10,
+   10,10,11,12,12
+   ), byrow=T, ncol=5)
> friedman.test(ads)

    Friedman rank sum test

data:  ads
Friedman chi-squared = 20.987, df = 4, p-value = 0.0003186


プログラムコード


friedman.test(ads)  #-- Matrix型を与える。


proc freq data=ADS;
    tables Subject*Time*AVAL / cmh2 scores=rank noprint;
run;


今回のサンプルデータで算出してみるとRもSASもタイ補正済みの結果が出力されるよう。
SASはSCORES=RANKのANOVA (行平均スコア) CMH統計量がFriedman検定結果。

参考


https://www.sas.com/offices/asiapacific/japan/service/help/pdf/v94/procstat.pdf
フリードマンの順位検定 | 感性・官能評価システム J-SEMS
【例題で解説】フリードマン検定|Staat

本ブログは個人メモです。 本ブログの内容によって生じた損害等の一切の責任を負いかねますのでご了承ください。