井出草平の研究ノート

WLSMVにおけるKMO(Kaiser-Meyer-Olkin)適合度指標の計算

KMOもBartlett球面検定も、推定器(ML/MLR/WLSMV)をテストしているのではなく、入力となる相関行列(とその部分相関構造)が因子分析に向いているかを見ている指標である。したがって、WLSMVを使うなら「Pearson相関」ではなく、(潜在連続を仮定した)ポリコリック相関行列をベースに同種の診断は可能だということになる。

Baglin (2014)は、ordinalデータではポリコリック相関を使い、(その上で)BartlettやKMOでチェックする流れを明示している。

データ前処理

library(psych)

# 例としてbfiデータを使用
data(bfi)
bfi25 <- bfi[, 1:25] 

# 欠損値の除去
bfi25_cc <- na.omit(bfi25)

# すべての変数を順序尺度に変換
bfi25_ord <- as.data.frame(lapply(bfi25_cc, function(x) {
  lev <- sort(unique(x))
  ordered(x, levels = lev)
}))

ポリコリック相関行列の計算

poly <- psych::polychoric(bfi25_ord)
R_poly <- poly$rho

KMOの計算

kmo <- psych::KMO(R_poly)

print(kmo)
kmo$MSA  # overall MSA (scalar)
kmo$MSAi # item-level MSA (named vector)
Kaiser-Meyer-Olkin factor adequacy
Call: psych::KMO(r = R_poly)
Overall MSA =  0.86
MSA for each item = 
 [1] 0.7734721 0.8414472 0.8832347 0.8783351 0.9093890 0.8602935 0.8019151 0.8619449 0.8355870 0.8699311 0.8400479 0.8890450 0.9048457
[14] 0.8770024 0.8991708 0.7801966 0.7778200 0.8707522 0.8911033 0.8624972 0.8766066 0.7988393 0.8600559 0.7777598 0.7896598

Overall MSA = 0.86 は、Kaiserの目安では 0.80台=meritorious(賞賛に値する/かなり良い) に相当する。したがって、EFAを実施してよい根拠としては十分強い。

KMO(MSA)は「相関(共通分散)に比べて部分相関(独自性)がどれだけ大きいか」を要約しており、値が高いほど共通因子で説明できそうな構造があることを意味する。bfiの25項目のMSAは概ね 0.77〜0.91 の範囲にあり、最低でも約0.77で、Kaiser流の分類でも 0.70台=middling以上である。 0.80以上の項目が多数あり、特に 0.90前後(例:0.909, 0.905)は非常に良い部類である。実務的には、0.6未満(あるいは0.5未満)の項目が混ざると「その項目は部分相関が大きく、因子でまとめにくい可能性」が強くなるため削除や見直し候補になるが、今回それは見当たらない。

Bartlett球面検定の意義

Bartlett球面検定は、相関行列が単位行列(=変数間がほぼ無相関)ではないことを検定するもので、目的としては「因子分析をするほどの相関が少しでもあるか」という最低限チェックである。

しかもこの検定は、(標準的な形だと)多変量正規性(MVN)を仮定した検定として説明されることが多く、ordinalデータやポリコリック相関に対して成り立つ保証は弱い(近似として使うことはある)。

ポリコリック相関で相関がそれなりに出ていて、サンプルサイズも通常の心理尺度研究の水準にある場合、Bartlettはほぼ確実に有意になると考えてよい。一方でKMO(MSA)は「部分相関が大きすぎないか(共通因子でまとめやすいか)」を見ており、「因子化のしやすさ」に直結する情報を与えるので、KMOのほうが重要な情報となる。

コード

psych::cortest.bartlett(R_poly, n = nrow(bfi25_cc))
$chisq
[1] 23262.17

$p.value
[1] 0

$df
[1] 300

Bartlett球面検定の結果、p < .001であり、相関行列が単位行列であるという帰無仮説は棄却される。つまり、変数間に有意な相関が存在することが示された。ただし、前述の通り、この検定は多変量正規性を仮定しているため、ordinalデータに対しては近似的な解釈に留めるべきである。