カイザー・メイヤー・オルキンのサンプリング適切性基準(KMO, MSA) Last modified: Jun 20, 2011
目的
因子分析の適切性を判断する,カイザー・メイヤー・オルキンのサンプリング適切性基準(KMO, MSA)を計算する
使用法
kmo(x)
引数
x データ行列(行がケース,列が変数)
ソース
インストールは,以下の 1 行をコピーし,R コンソールにペーストする
source("http://aoki2.si.gunma-u.ac.jp/R/src/kmo.R", encoding="euc-jp")
kmo <- function(x) # データ行列またはデータフレーム
{
x <- subset(x, complete.cases(x)) # 欠損値を持つケースを除く
r <- cor(x) # 相関係数行列
r2 <- r^2 # 相関係数行列の要素の二乗
i <- solve(r) # 相関係数行列の逆行列
d <- diag(i) # 対角成分
p2 <- (-i/sqrt(outer(d, d)))^2 # 偏相関係数行列の要素の二乗
diag(r2) <- diag(p2) <- 0 # 対角成分は計算には用いない
KMO <- sum(r2)/(sum(r2)+sum(p2))
MSA <- colSums(r2)/(colSums(r2)+colSums(p2))
return(list(KMO=KMO, MSA=MSA))
}
使用例
x <- matrix(c( # 5ケース,4変数のデータ行列例(ファイルから読んでも良い)
1, 5, 6, 4,
2, 14, 5, 3,
3, 3, 4, 2,
4, 2, 6, 6,
3, 4, 3, 5
), ncol=4, byrow=TRUE)
kmo(x)
出力結果例
$KMO
[1] 0.53964
$MSA
[1] 0.54997 0.68706 0.30804 0.53201
解説ページ
直前のページへ戻る
E-mail to Shigenobu AOKI