カイザー・オルキン・メイヤーのサンプリング適切性基準(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

Made with Macintosh