読者です 読者をやめる 読者になる 読者になる

Knowledge As Practice

JAIST(東京)で Transformative Service Research に取り組んでる社会人大学院生の研究・勉強メモ

R による整列ランク変換を使った分散分析

整列ランク変換(Aligned Rank Transform:ART)という言葉を聞いたことありますか? 私はなかったです。ART(えーあーるーてぃー。「あーと」ではない)について、Tokyo.R 第61回で LT をしてきました。補足も兼ねて ART についてまとめます。

 

きっかけ

 
先日、自分の専門分野の先行研究を調べていて論文(Heidenreich, et al. 2015)を読んでいたら次のような記述に出会いました。

“As our data were not normally distributed (D(243)=2.193, p<0.01), we employed the aligned rank transform (ART) procedure for hypothesis testing. For non-normal distributed data, the ART procedure is more robust and powerful than the traditional analysis of variance (ANOVA)”

 
超訳すると「データが正規分布に従わなかったので、aligned rank transform (ART) を使って検定やった。非正規分布のデータなら、ARTを使ったほうが普通の分散分析よりロバストでパワフルだ」。

 
ART について、ネット上で検索してもほとんど日本語の情報がありません。かろうじて「整列ランク変換」という訳語が見つかるくらいです。そこで少し調べてみました。

ART法はタイプIエラーをコントロールできるエクセレントな方法だ。研究者がやりがちな古典的分散分析と比べてパワーがある(Mansouri, et al. 2004)

 

ART はどんな分布のデータにも使えるわけじゃないけど、ロバストだし一般的なノンパラメトリック検定より望ましい性質を持っている(Higgins, et al. 1990)

 

ART 検定はパワフルでロバストで使いやすい(Mansouri 1998)

 

交互作用を調べるとき、いくつかの仮定が成り立たない場合、パラメトリックな分析は必ずしもよいわけではない。代替の策として、調整ランク変換検定(adjusted rank transform test)がある。それはパラメトリックな手法とノンパラメトリックな手法の中間みたいなものだ(Leys & Schumann 2010)

 
つまり、分散分析したい、特に交互作用に注目したい時にデータが正規分布に従わない場合、従来の分散分析は(厳密には)使えないので、整列ランク変換を施してから分散分析すればいいよ、ということだと思います。

 
R パッケージがないか探したところ、ARTool というものがちゃんとありました。CRAN に登録されています。使い方もカンタン。以下、ART を使った分散分析の方法です。例題として、性別と世代の不倫の許容度に対する違い・交互作用を見たいとします。応答変数は「結婚していても場合によっては不倫を許せる?(1:許せない~4:許せる)」です。4件法でスミマセン。

 

0.データの分布の確認

ggplot(rensyu, aes(furin)) + 
geom_histogram(fill = "red", alpha = 0.7, binwidth = 0.5)

f:id:hikaru1122:20170520195014p:plain

 
あきらかに正規分布には従わないっぽい。もちろん、正規性の検定はすべきですが、ここでは飛ばします。

 

1.ARTool を使えるようにする。

install.packages("ARTool") # 1回のみでOK。
library(ARTool)

 

2.データを整列ランク変換する。

henkan = art(furin ~ nendai*sex, data = rensyu)
summary(henkan)

 
art() で変換しますが、式はよくあるタイプです。式は「art(furin ~ nendai + sex + nendai:sex, data = rensyu)」を短縮した書き方にしています。どちらでもOK。lm() のときと同じです。

 
変換後、summary(henkan) の出力結果に注意します。すべての数値が0になっていることが望ましいです。今回は残念ながらそうならなかったので、警告が出ています。しかし、練習なので先に進めます。

## Warning in summary.art(henkan): F values of ANOVAs on aligned responses not
## of interest are not all ~0. ART may not be appropriate.

## Aligned Rank Transform of Factorial Model
## 
## Call:
## art(formula = furin ~ nendai * sex, data = rensyu)
## 
## Column sums of aligned responses (should all be ~0):
##     nendai        sex nendai:sex 
##          0          0          0 
## 
## F values of ANOVAs on aligned responses not of interest (should all be ~0):
##      Min.   1st Qu.    Median      Mean   3rd Qu.      Max. 
## 0.0000000 0.0000000 0.0000000 0.0144000 0.0007531 0.0854000

 

3.分散分析を実行する。

anova(henkan)

## Analysis of Variance of Aligned Rank Transformed Data
## 
## Table Type: Anova Table (Type III tests) 
## Model: No Repeated Measures (lm)
## Response: art(furin)
## 
##              Df Df.res  F value     Pr(>F)       Sum Sq Sum Sq.res
## 1 nendai      4   1261   3.7856  0.0045704  **  1935456  161178877
## 2 sex         1   1261 100.7097 < 2.22e-16 *** 10944212  137033949
## 3 nendai:sex  4   1261   4.6317  0.0010275  **  2369093  161247964
## ---
## Signif. codes:   0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

 
「anova(変換したデータ)」でOK。実際には、anova.art() が動いて、デフォルトでタイプ3の分散分析をやってくれます。世代と性別の主効果、交互作用は有意になりました(なお、効果量  \eta^{2} は世代がほぼ0、性別が0.02、交互作用が0.01でほとんどインパクトはありません)。いちおう、交互作用のグラフをプロットします。

library(ggplot2)
ggplot(rensyu) +
aes(x = nendai, color = sex, group = sex, y = furin) +
stat_summary(fun.y = mean, geom = "point", size = 2) +
stat_summary(fun.y = mean, geom = "line", size = 1) +
xlab("世代") + ylab("不倫の許容度") +
scale_colour_discrete(name ="性別")

f:id:hikaru1122:20170520224157p:plain

 

伝統的な分散分析と結果を比べてみる。

aaa = lm(furin ~ nendai*sex, data = rensyu)
library(car)
Anova(aaa, type="III")

## Anova Table (Type III tests)
## 
## Response: furin
##             Sum Sq   Df  F value  Pr(>F)    
## (Intercept) 224.03    1 535.4585 < 2e-16 ***
## nendai        2.39    4   1.4269 0.22278    
## sex           2.22    1   5.3061 0.02141 *  
## nendai:sex    3.02    4   1.8051 0.12541    
## Residuals   527.59 1261                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

 
同じくタイプ3でやってみましたが、こちらでは世代の主効果と交互作用が有意になりませんでした。いい感じに対比できましたが、データが怪しいので、結果はあくまで参考用として受け取ってください。

 

まとめ

  • 整列ランク変換を利用した分散分析では交互作用が有意になった。

  • ただし、今回のデータはちゃんと整列ランク変換できてはいないのでなんとも言えない。

  • 今後、データが正規分布に従わない場合、使ったほうがよい手法かもしれない。

 

さいごに

 
多重比較もできます。繰り返しのデータも分析可能のようです。詳しくはパッケージ作者の Github ページを参考にしてください。今後、必要あれば、使っていきたい分析法です。

 

参考文献

  • ARTool パッケージ
    https://github.com/mjskay/ARTool

  • Feys, J. (2016). Nonparametric Tests for the Interaction in Two-way Factorial Designs Using R. The R Journal, 8(1), 367-378.

  • Heidenreich, S., Wittkowski, K., Handrich, M., & Falk, T. (2015). The dark side of customer co-creation: exploring the consequences of failed co-created services. Journal of the Academy of Marketing Science, 43(3), 279-296.

  • Higgins, J. J., Blair, R. C., & Tashtoush, S. (1990). The aligned rank transform procedure.

  • Leys, C., & Schumann, S. (2010). A nonparametric method to analyze interactions: The adjusted rank transform test. Journal of Experimental Social Psychology, 46(4), 684-688.

  • Mansouri, H. (1998). Multifactor analysis of variance based on the aligned rank transform technique. Computational statistics & data analysis, 29(2), 177-189.

  • Mansouri, H., Paige, R. L., & Surles, J. G. (2004). Aligned rank transform techniques for analysis of variance and multiple comparisons. Communications in Statistics-Theory and Methods, 33(9), 2217-2232.

  • Wobbrock, J.O., Findlater, L., Gergle, D. and Higgins, J.J. (2011). The Aligned Rank Transform for nonparametric factorial analyses using only ANOVA procedures. Proceedings of the ACM Conference on Human Factors in Computing Systems (CHI ‘11). Vancouver, British Columbia (May 7-12, 2011). New York: ACM Press, 143-146.

目を通してないけど、重要そうな文献

  • Salter, K. C., & Fawcett, R. F. (1993). The ART test of interaction: a robust and powerful rank test of interaction in factorial models. Communications in Statistics-Simulation and Computation, 22(1), 137-153.

  • Sawilowsky, S. S. (1990). Nonparametric tests of interaction in experimental design. Review of Educational Research, 60(1), 91-126.

クリエイティブ・コモンズ・ライセンス
この 作品 は クリエイティブ・コモンズ 表示 - 継承 4.0 国際 ライセンスの下に提供されています。