前回のエントリ、2値のカテゴリカル因子分析と潜在クラス分析の結果の差異で因子分析と潜在クラス分析のグループ分けの違いを分析した。
今回は以前のエントリで使用した児童向けウェクスラー式知能検査(Wechsler Intelligence Scale for Children; WISC)のデータを用いて、シミュレーションをしてみたい。今回は連続変数(打ち切り)が元データである。
データの読み込み
library(foreign) data <- read.spss("wiscsem.sav", to.data.frame=TRUE) d1 <- data[3:13] ## 因子分析に使用するのは3~13列目,連続変数のためのデータ library(OneR) d2 <- bin(d1, nbins = 2, labels = c(1,2)) library(dplyr) d3 <- d2 %>% mutate_if(is.factor, as.integer) # 整数型への変換
d1が連続変数のデータ、d2が2値のfactor型データ、d3が2値の整数型のデータである。
因子数の2であったため、今回も2因子として分析する。
2値の因子分析を行う。
library("psych") library("GPArotation") fa2.ca <- fa(r = d3, nfactors = 2, fm = "minres", rotate = "oblimin", scores=TRUE, cor="tet") print(fa2.ca, digits = 3)
因子1 | 因子2 | |
---|---|---|
info | 0.978 | -0.085 |
comp | 0.351 | 0.438 |
arith | 0.453 | 0.335 |
simil | 0.647 | 0.214 |
vocab | 0.785 | 0.033 |
digit | 0.353 | -0.023 |
pictcomp | 0.080 | 0.679 |
parang | -0.082 | 0.444 |
block | 0.087 | 0.537 |
object | -0.101 | 0.731 |
coding | -0.141 | 0.231 |
参考までに連続変数の因子分析もしておこう。
fa2.n <- fa(r = d1, nfactors = 2, fm = "minres", rotate = "oblimin", scores=TRUE, cor="cor") print(fa2.n, digits = 3)
結果は以下のようになる。
因子1 | 因子2 | |
---|---|---|
info | 0.831 | -0.075 |
comp | 0.502 | 0.315 |
arith | 0.604 | -0.031 |
simil | 0.562 | 0.225 |
vocab | 0.743 | 0.029 |
digit | 0.487 | -0.128 |
pictcomp | 0.063 | 0.587 |
parang | 0.095 | 0.382 |
block | 0.057 | 0.616 |
object | -0.088 | 0.656 |
coding | 0.101 | -0.021 |
やはり連続変数で分けた方が明確な結果が得られる。
前半は言語性IQ、後半は動作性IQと言われるものである。
特徴としては、符号(coding)はどちらの因子にも含まれていないという点であろうか。
さて、これを潜在クラス分析で2クラスにしてみるとどのようになるだろうか。
Rで潜在クラス分析
library(poLCA) f <- cbind(info,comp,arith,simil,vocab,digit, pictcomp,parang,block,object,coding)~1 #fomulaの設定。潜在クラス分析に入れる変数を選ぶ lca2 <- poLCA(f, d2, nclass=2,maxiter=3000, nrep=100) #5クラスモデル
結果は以下のようになる。
クラス1 | クラス2 | |
---|---|---|
info | 0.0465 | 0.5041 |
comp | 0.3329 | 0.8528 |
arith | 0.0781 | 0.4652 |
simil | 0.2218 | 0.8748 |
vocab | 0.2061 | 0.8176 |
digit | 0.3686 | 0.5790 |
pictcomp | 0.2982 | 0.7680 |
parang | 0.5594 | 0.7648 |
block | 0.3430 | 0.6872 |
object | 0.2692 | 0.6506 |
coding | 0.6412 | 0.6003 |
クラス1はIQでストが悪かったタイプ、クラス2はIQテストが良かったタイプというように分かれた。符号(coding)はどちらの割合も高い。
今回もかなり異なったグループ分けとなった。
因子分析は言語性と動作性という2つIQ概念の違いが出てきた。因子分析は項目、つまり概念のグループ分けだからだ。
一方で、潜在クラス分析はIQが低いタイプとIQが高いタイプという2分割がされた。潜在クラス分析はケース、つまり、人の持つ性質のグループ分けだからだ。
潜在クラス分析の適正なクラス数
潜在クラス分析の結果が身もふたもない結果だったので、潜在クラス分析の適正なクラス数の推定しておこう。詳しくは以前のエントリを参照してほしい。
データの出力
write.csv(d3, file = "WISC.csv", row.names=FALSE, fileEncoding = "UTF-8")
Mplusのコマンドも一応書いておこう。
TITLE: Categorical Factor Analysis vs. Latent class Analysis, using WISC Data DATA: FILE = WISC.csv; VARIABLE: NAMES = info comp arith simil vocab digit pictcomp parang block object coding; USEVARIABLES = info comp arith simil vocab digit pictcomp parang block object coding; CATEGORICAL = info comp arith simil vocab digit pictcomp parang block object coding; CLASSES = c (2); ANALYSIS: TYPE = MIXTURE; OUTPUT: TECH14;
BICとBLRTとP-vlaueは次のようになった。
BIC | BLRT Approximate P-Value |
|
---|---|---|
2class | 2456.137 | 0.0000 |
3class | 2475.115 | 0.0000 |
4class | 2509.824 | 0.1923 |
指標間の差はなく3クラスが提案されている。
Mplusで出力された3クラスの結果は以下。
Class1 | Class2 | Class3 | |
---|---|---|---|
所属割合 | 0.371 | 0.217 | 0.411 |
info | 0.612 | 0.000 | 0.061 |
comp | 0.850 | 0.693 | 0.235 |
arith | 0.478 | 0.191 | 0.078 |
simil | 0.910 | 0.400 | 0.216 |
vocab | 0.926 | 0.213 | 0.221 |
digit | 0.628 | 0.253 | 0.429 |
pictcomp | 0.758 | 0.669 | 0.192 |
parang | 0.756 | 0.788 | 0.480 |
block | 0.659 | 0.717 | 0.228 |
object | 0.613 | 0.776 | 0.096 |
coding | 0.572 | 0.807 | 0.567 |
クラス1はすべての能力が高いタイプ。
クラス2は動作性IQが高いタイプだ。ただComprehension(理解力)のみ高い。
クラス3は言語性IQのみ高いタイプであれば、きれいな結果なのだが、少し変わったクラスが作成れている。Digit Span、Paragraph Arrangement、codingが高く、Information、Arithmetic、Object Assemblyが低いというクラスだ。IQ検査を数多く実施している臨床家であれば、こういう児童がいることに心当たりがあるのかもしれないが、僕は臨床家でもなければIQについても詳しくないので、さっぱりわからない。
WISCを利用した臨床研究は「Aさんはこのようなタイプの能力が高かった/低かった」という論じ方が多い。個別例であれば特に問題はないが、ある程度の人数を根拠に傾向を論じるのであれば、因子分析を用いて妥当性が確保するWISCとの齟齬が生じる。臨床研究は人(ケース)単位で考えるので、潜在クラス分析の推定の方が理論と統計学の手技がフィットするからだ。
WISCやWAISといった知的機能検査というのは、概念(各種検査)を用いたグループ分けで妥当性が確保されている。しかし、そういった知的機能検査を、人を単位とした臨床のパターンについて語るのは望ましくないはずなのだが、臨床心理学のIQの議論では当たり前のようにされている。そのあたりの事情は臨床家は勉強することからは外れているので知らなくても仕方ないのだが、計量の学者からわかりやすく伝える努力が必要になってくるだろう。