項目 | 説明 |
hetcor | 異なる種類のデータの相関行列を算出する |
polychor | ポリコリック相関係数 |
polyserial | ポリシリアル相関係数 |
詳細は豊田秀樹(2000)「共分散構造分析(入門編)」の12章、あるいはKosugitti Labo>順序尺度の相関係数についてを見てください。
カテゴリカルな相関係数が算出できるので、カテゴリカル因子分析や項目反応理論などへ適用できる相関係数です。
polychor(x,y)
とする。特に指定がなければ、2-stepアルゴリズムで推定される。周辺度数も同時に最尤推定する場合は、
polychor(x,y,ML=TRUE)
とする。
data <- data.frame(x=c(1,1,2,2,1,3,3,3,1,1),y=c(3,3,1,1,2,2,2,1,2,2)) polychor(data$x,data$y) polychor(data$x,data$y,ML=TRUE)
結果
[1] -0.6695898 [1] -0.6707554
パッケージ名はhがない。関数名はhがあることに注意。
polyserial(x,y)
とする。このとき、xが連続変数、yが順序変数である。周辺度数も同時に最尤推定する場合は、
polyserial(x,y,ML=TRUE)
とする。
data <- data.frame(x=c(1,7,2,5,6,3,3,4,1,2),y=c(3,3,1,1,2,2,2,1,2,2)) polyserial(data$x,data$y) polyserial(data$x,data$y,ML=TRUE)
結果
[1] 0.03252174 [1] 0.03239004
データフレームの中で、連続変数、順序変数などが混在する場合、適切な相関係数を求めてくれる関数である。順序変数を要因(factor)型としておくこと。
data <- data.frame(w=c(6,7,2,5,6,3,3,4,1,2), x=c(1,2,3,6,1,4,3,4,7,2), y=as.factor(c(3,3,1,1,2,2,2,1,2,2)), z=as.factor(c(2,3,2,1,1,2,1,1,3,2))) ans <- hetcor(data) ans
この結果は次の通りである。標準誤差等も算出してくれる。
Two-Step Estimates Correlations/Type of Correlation: w x y z w 1 Pearson Polyserial Polyserial x -0.5124 1 Polyserial Polyserial y 0.4963 -0.5661 1 Polychoric z -0.1834 0.1247 0.6475 1 Standard Errors: w x y w x 0.2198 y 0.2672 0.2391 z 0.3521 0.3726 0.2527 n = 10 P-values for Tests of Bivariate Normality: w x y w x 0.5489 y 0.1887 0.9684 z 0.445 0.7139 0.8568
相関係数だけを取り出したい場合は、次のようにする。
ans$correlation w x y z w 1.0000000 -0.5123595 0.4963449 -0.1834334 x -0.5123595 1.0000000 -0.5660687 0.1247286 y 0.4963449 -0.5660687 1.0000000 0.6474603 z -0.1834334 0.1247286 0.6474603 1.0000000
これでカテゴリカル因子分析もできるというものである。