HCI研究者の心理統計ノート:Two-way ANOVA with ART for between-subject design
HCI研究者の心理統計ノート
Introduction
参加者間要因 × 参加者間要因の二要因参加者間計画において、データに正規性が仮定出来ない場合には、整列ランク変換 (Aligned rank transform, ART) を施してから二元配置分散分析を実施します。正確にいえば、正規性の仮定が不要なので、この手法は正規性が仮定できるデータ、仮定できないデータともに適用することが出来ます。
データに正規性が仮定出来る場合は、ARTを施さずに通常の二元配置分散分析を実施したほうが検出力が高いと思われるので、参加者間計画における二元配置分散分析 (Two-way ANOVA for between-subject design)を参照してください。
また、参加者間要因 × 参加者内要因の場合は、混合計画における整列ランク変換を施した二元配置分散分析 (Two-way ANOVA with ART for mixed design)、参加者内要因 × 参加者内要因の場合は、参加者内計画における整列ランク変換を施した二元配置分散分析 (Two-way ANOVA with ART for within-subject design) を参照してください。
HCI研究では、参加者間要因A(水準a1, a2, ..., an) × 参加者間要因B(水準b1, b2, ..., bm)の n*m 個のグループに参加者を分けて、従属変数を比較する実験で使用します。特に、質問紙(リッカート尺度)のデータを解析する際に使うことが多いです。例えば、手法(既存 vs 提案) × 性別(男性 vs 女性)の実験計画では、男性参加者には既存手法の方が有効だが女性参加者には提案手法の方が有効である、などといった2つの要因が複合的に評価指標に作用する可能性を検証することができます。
整列ランク変換については、開発者がwebページやgithubなどを用意してくれているので、詳細はそちらを確認してください。
簡単に言えば、ウィルコクソンの順位和検定等のように、元データを順序データに変換しているようです。CHI'11 で発表された手法で、最近は割と見かけるようになりました。しかし、まだ知らない研究者もいることを考慮して、論文で使用する際は以下の論文などを引用して丁寧に説明しましょう。
Wobbrock et al. (2011). The aligned rank transform for nonparametric factorial analyses using only ANOVA procedures. In Proceedings of the ACM Conference on Human Factors in Computing Systems (CHI '11), pp. 143–146, https://doi.org/10.1145/1978942.1978963
ちなみに、日本語でARTを説明した記事も出始めていますが、やや正確性に欠けるような印象です。開発者自身が用意している上記のwebページやgithubがとても丁寧に解説してくれているので、英語ですが、そちらの一次情報を確認することをおすすめします。
解析のフローは、通常の二元配置分散分析と同じです。分散分析後に、主効果や交互作用が有意であれば、下位検定を実施します。研究が進み、ARTデータについても下位検定が実施できるようになりました (ART-C)。他方、下位検定は一要因なので クラスカル・ウォリス検定 (Kruskal-Walis test) や ウィルコクソンの順位和検定 (Wilcoxon rank sum test) などのノンパラメトリック手法を適用することもできます。どちらが適切なのかは、まだよくわかっていません。以下のサンプルコードでは、ひとまず ART-C を実行しています。ART-C についても、UIST'21で発表されたばかりで、まだ一般的ではないので、論文では下記の論文を引用して使いましょう。
Elkin et al. (2021). An aligned rank transform procedure for multifactor contrast tests. In Proceedings of the ACM Symposium on User Interface Software and Technology (UIST '21), pp. 754–768, https://doi.org/10.1145/3472749.3474784
RではARTを行うための ARTool というパッケージが提供されています。CRAN に登録されているので、他のパッケージと同様に install.packages("ARTool") コマンドでインストールできます。
R Sample Code
# ライブラリのインポート
library(tidyverse)
# csvファイルの読み込み
# 整然データを想定: 一行が一観測。 "参加者ID, 独立変数1, 独立変数2, 従属変数" の形。
data <- read_csv("csvファイルのパス", show_col_types=F) %>%
# コードの再利用可能性を高めるために列名を変更
mutate(s=factor(参加者IDの列名), A=factor(独立変数1の列名), B=factor(独立変数2の列名), y=従属変数の列名) %>%
# 必要な列だけ抽出
select(s, A, B, y) %>%
# ソート
arrange(A, B, s)
# 欠損値や外れ値など、解析から除外するべきデータがあれば削除
# 割愛
# 記述統計量の確認
data %>%
group_by(A, B) %>%
summarize(N=n(), Mean=mean(y), SD=sd(y), SE=sd(y)/sqrt(n()), Min=min(y), Median=median(y), Max=max(y))
# 簡単なグラフを描画して確認
data %>%
# ggplot で作図開始。x軸は要因A、y軸は評価指標、凡例は要因B
ggplot(aes(x=A, y=y, fill=B)) +
# 箱ひげ図
geom_boxplot(width=0.6, position=position_dodge(0.6)) +
# 平均値をプロット
stat_summary(fun=mean, geom="point", color="black", shape=4, size=2, position=position_dodge(0.6)) +
# ラベルの設定
labs(x="Factor A", y="Measurement", fill="Factor B") +
# カラーパレット
scale_fill_brewer(palette="Blues") +
# テーマの調整
theme_light() +
theme(legend.position="top") +
theme(panel.grid.major.x=element_blank(), panel.grid.minor.y=element_blank())
# 等分散性の検定 p > alpha なら ok (棄却された場合は、For Your Informationを参照)
library(car)
leveneTest(y~A*B, data=data)
# ART
library(ARTool)
m <- art(y ~ A*B, data=data)
summary(m)#全部0であることを確認する
# ANOVA + 効果量 partial eta squared
table <- anova(m)
table$peta <- with(table, `Sum Sq`/(`Sum Sq` + `Sum Sq.res`))
table
# 交互作用が有意であれば、単純主効果の検定 -> 多重比較を行う
# 交互作用が有意でなく、主効果が有意であれば、各要因について多重比較を行う
# Bonferroni 系の方法で p 値を調整しながら、Wilxcoxon rank sum test を繰り返し行うなど
# ここでは割愛
# ART-C による多重比較もある
# 交互作用が有意であった場合
art.con(m, "A:B", adjust="holm") %>%
summary() %>%
mutate(sig. = symnum(p.value, corr=FALSE, na=FALSE, cutpoints=c(0,0.001,0.01,0.05,0.1,1), symbols=c("***","**","*","."," ")))
# 交互作用が有意でなく、主効果が有意であった場合
art.con(m, "A", adjust="holm") %>%
summary() %>%
mutate(sig. = symnum(p.value, corr=FALSE, na=FALSE, cutpoints=c(0,0.001,0.01,0.05,0.1,1), symbols=c("***","**","*","."," ")))
How to Report : LaTeX Sample
Japanese
ノンパラメトリックデータに対して分散分析を可能にする方法として整列ランク変換 (ART) が知られる [Wobbrock et al, 2011]. ARTを施したデータに対して二元配置分散分析を実施した結果,〇〇の主効果 (\textit{F} (X, XX) = X.XX, \textit{p} = .XX, ${\eta_p}^2$ = 0.XX), 〇〇の主効果 (\textit{F} (X, XX) = X.XX, \textit{p} = .XX, ${\eta_p}^2$ = 0.XX), および交互作用 (\textit{F} (X, XX) = X.XX, \textit{p} = .XX, ${\eta_p}^2$ = 0.XX) が有意であった.交互作用が有意であったため,下位検定として ART-C [Elkin et al., 2021] による多重比較を実施した結果,〇〇〇〇.
English
We first performed aligned rank transform (ART) [Wobbrock et al., 2011], which enabled us to conduct an ANOVA for non-parametric data, and conducted a two-way ANOVA. The result showed a significant main effect of 〇〇 (\textit{F} (X, XX) = X.XX, \textit{p} = .XX, ${\eta_p}^2$ = 0.XX). The main effect of 〇〇 was also significant (\textit{F} (X, XX) = X.XX, \textit{p} = .XX, ${\eta_p}^2$ = 0.XX). Furthermore, the interaction effect of A and B was significant (\textit{F} (X, XX) = X.XX, \textit{p} = .XX, ${\eta_p}^2$ = 0.XX). Then, we performed multiple comparisons using ART-C [Elkin et al., 2021] and showed that 〇〇〇〇.
For Your Information
等分散性の仮定について
元の論文では、等分散性の仮定が必要、という記述はなかったと思います。しかし、データを順位に置き換える点は Wilcoxon rank sum test などと同じであるため、それらの手法と同様に、等分散性が仮定できないデータの場合には信頼性が低下するのではないかと予想しています。他方、この点を指摘されることはまだなさそうだということと、等分散性が仮定出来ない場合にも適用できる代替手法に検討がついていないため、科学的に適切かはおいておいて、ひとまず考えなくてもいいかなと思っています。
効果量について
サンプルコードでは、通常の分散分析と同様に、偏イータ二乗を計算しました。公式サイトにより詳細な説明があるので、必要に応じて参照してください(e.g., cohen's d や信頼区間)。
ART-C による多重比較について
公式サイトの説明を一度参照しておくと良いと思います。たくさん説明が書いてありますが、要は art.con 関数が内部で適切な関数を選んでくれるらしいです。
平方和の計算方法について
ARToolでは、タイプI平方和が採用されています。これは、データが非釣り合い型(各条件でデータ数が異なる)の場合に適切な結果を出力しない可能性があるため、一般的にはタイプII平方和か、タイプIII平方和を使うことが推奨されています。しかし、ARToolの中でタイプが指定できるのか、よくわかっていません。すみません。
Discussion