久々に心理統計学っぽいことを書きます。
今回は順序カテゴリカルデータについてです。
直接は観測できない心理的構成概念について、われわれ心理学者は行動によってそれを測定します。そのとき、物理量のような連続性が仮定できる行動データ(例えば反応潜時など)ならいいのですが、調査票などを使う場合には、どうしても連続性が仮定できないデータになってしまいます。
調査票で主に使われるのはリッカート尺度ですが、研究者は5段階や7段階の尺度を間隔尺度として仮定し、測定を行っています。しかし、それが間隔尺度であるかどうかを厳密に検討していることは稀です。仮に、その尺度の等間隔性が確認されないならば、リッカート尺度は順序尺度データとなります。
順序尺度にもいろいろあって、構成概念そのものが順序尺度であるものから、背景では連続変量が仮定されるが、観測されるのが順序尺度であるという場合もあります。今回扱うのは後者です。
つまり、尺度で測定される心理的構成概念は、主に連続性が仮定される一方、測定段階で順序尺度になってしまう典型例であるといえます。このような場合に、どのような分析をするのがいいのかを考えます。
というわけで、今回は心理的構成概念を推定するための因子分析について考えます。順序尺度を因子分析する方法は、
- 項目反応理論
- ポリコリック相関係数に基づいた重み付け最小二乗法(WLS)によるカテゴリカル因子分析
- ベイズ推定によるカテゴリーデータの因子分析
です。1.と2.はほとんど一致するようなので、今回は2.だけを使いました。
つまりは、最尤法+WLSのカテゴリカル因子分析とベイズ因子分析はどっちがいいの?っていう話です。
※下に書いてあるシミュレーションは、参考程度にとどめておいてください。科学的知見として耐えられるようにやったわけではありませんので。
さて、前置きが長くなりましたが、簡単なシミュレーション結果について書きます。
やり方は簡単で、エクセルで真値を決めてから正規乱数を発生させて、無作為抽出したことにし、
そのサンプルから真値を推定するわけです。
今回は正規母集団において母相関係数が0.70である2つの変数を、無作為抽出によってサンプリングし、その相関係数を推定することを考えます。
このとき、2つの変数はそれぞれ5つの項目によって5件法、あるいは3件法のリッカート尺度で測定されることを考えます。つまり、測定項目は2×5の10項目です。
各項目は、該当する変数に対する負荷量がすべて0.80であると仮定します。
分析は確証的因子分析を行い、推定するのは因子間相関と因子負荷量です。
◆シミュレーションの方法
シミュレーションの手順は以下の通り。
- 母相関係数が0.7であるような標準正規分布に従う2変数を乱数で発生させる。仮にXとYとする。
- Xについて、相関が0.8であるような5項目(X1-X5とする)を乱数で発生させる。
- 同様にYについて、相関が0.8であるような5項目(Y1-Y5)を乱数で発生させる。
- X1-X5、Y1-Y5について、1~5の5段階になるように変換する(Xa1-Xa5、Ya1-Ya5)。
- 同様に、X1-X5、Y1-Y5について、1~3の3段階になるように変換する(Xb1-Xb5、Yb1-Yb5)。
このとき、5件法のデータは尺度が等間隔になるように変換し、3件法のデータは閾値がまちまちで等間隔にならないようにしました。
このようなX1-Y5の10項目、Xa1-Ya5の10項目、Xb1-Yb5の10項目について、それぞれ因子分析を行いました。
因子分析の方法は以下の通り。
- 連続変数X1-Y5の10項目を最尤法とベイズで確証的因子分析(2因子解、因子相関あり)。
- 順序変数Xa1-Ya5、Xb1-Yb5を連続変数と同じように最尤法で確証的因子分析(同上)。
- 順序変数Xa1-Ya5、Xb1-Yb5をポリコリック+WLSのカテゴリカル因子分析(同上)。
- 順序変数Xa1-Ya5、Xb1-Yb5をベイズ推定で因子分析(同上)。
ここでの注目点は、カテゴリカル因子分析とベイズ因子分析では、どちらが真値や元となる連続変量の因子分析結果に近いか、ということです。
また、最尤法よりもベイズのほうが少ないNでも大丈夫っていううわさを聞いたので、N=1000とN=50の場合をやってみました。明日時間があったらN=200の場合もやってみたいんですが。N=200のときもやってみました。下のファイルに結果を追加しています。
◆推定法のソフトウェアと方法
ソフトウェアは、カテゴリカル因子分析はMplusのWLSMV(重み付ける最小二乗法の改良版)の推定で行いました。普通のWLSは推定値と適合度が共に、WLSMVよりも圧倒的に連続変量の因子分析結果と違ってました。MuthenのMplusのディスカッションのところでWLSMVを勧めていまし、Mplusでカテゴリカル因子分析を使う人は、WLSMVを使うべきだと思います。
※ただし、Mplus6以降ではMCMCによるベイズ推定が実装されました。なので、Mplusでもベイズによるカテゴリカルデータの分析が可能です。
ベイズ推定はAmos17でやっています。バーンイン期間はすべて1000、サンプリング数は収束の仕方によって違うのですが、代替6000~12000ぐらいです。モデルのフィットが当然ながらいいので、収束は早いほうだと思います。あと、事前分布はすべて一様分布です。
補足ですが、一様分布のベイズ推定は理論的には最尤法に一致します。
◆結果
さて、結果です。下のPDFファイルを見てください。
なお、解はすべて標準化解です。また、N=50のときの3件法ではベイズ推定は収束しませんでした。サンプリングを100000以上にしても収束しないし、事前分布を正規分布にしたりしてもだめでした。
カテゴリカルデータのシミュレーション結果
※真値との差は、因子負荷量の差(絶対値)の平均値です。
※標準誤差は、各項目でほとんど同じだったので、平均したものを表示しています。
ちょっと結果がややこしいですが、要点としては以下の感じです。
- 連続変量の場合、最尤法もベイズもほとんど変わらない。
- 当然ながら、連続変量のほうがカテゴリカル分析よりも真値に近い。
- 因子負荷量については、順序データをそのまま分析するよりは、カテゴリカル分析(WLSMV、ベイズ)をするほうが圧倒的に真値に近い。因子間相関はそんなに変わらない。
- 推定値については、WLSMVとベイズはほとんど変わらない(ややベイズが有利か)。
- WLSMVによるカテゴリカル因子分析は、因子負荷量の標準誤差を過小評価している。
個人的に興味深いのは、3.と5.ですね。
3.については、やっぱりカテゴリカル分析はすごいんだな、と。順序のまま普通に因子分析をすると、相関が希薄化されて因子負荷量の推定値が小さくなります。それは、順序データになることによって情報が減ってしまう、あるいは誤差が増えてしまうからだと思います。カテゴリカル因子分析やベイズによるカテゴリカル分析は、それらの誤差を取り除く効力があるようです。
また、6.については今回の発見で特に重要かな、と思います。連続変量の因子分析と比較して、カテゴリカル因子分析は標準誤差をかなり過小評価します。これはつまり、タイプⅠエラーの危険がある、ということです。それに対して、ベイズのほうはカテゴリカル分析によって標準誤差が増えています。これは当然真値からのズレが大きくなっているわけなので、妥当な推定ではないかと思います。
ただ、ベイズのほうはN=50で3件法のデータは収束しませんでした。他の分析もいろいろやっていたのですが、2値データを順序カテゴリカルに指定した場合はN=100でも収束しませんでした。
このようにベイズでカテゴリカルデータを扱う場合は、それなりにNを必要とするようです。
追記ですが、N=200では比較的余裕に収束しました。それでも、5件法に比べて収束は遅かったですが。
◆今回の結論
背景に連続変量が仮定される順序カテゴリカルデータの場合は、Nが十分あるならば、ベイズ推定がいいんじゃないかと思います。MplusのWLSMVも悪くはないですが、標準誤差の過小評価が若干気になります。実際に、95%信頼区間を越えたところに真値がある場合が多かったです。
また、N=200の結果などを見ても、ベイズのほうがやや真値に近い推定をするようです。
逆に、Nが少ない、かつ、段階数が少ない尺度の場合は、ベイズは収束しないことが多いようですね。その場合は、WLSMVで推定して、標準誤差の値をあまり信じない方向でいくのがいいかも。
むしろ、今回の感じから言えば、ポリコリック相関+重み付け最小二乗法は結構無理なことをやってるんだな、という印象を受けましたね。もともと、ポリコリック相関は最尤法で推定しているのに、SEMの推定値は最小二乗法というのが、一貫してなくて個人的に「どうかな~」と思ってしまいます。ベイズのほうが論理が一貫しているし、「無理なものは無理」といっている感じがします。直感的な物言いで申し訳ないですが。
まぁ、実際、3件法のデータでN=50では因子分析しないと思うんですけどね。次はわれわれが普通に調査をした場合に得られるぐらいのN数(N=200くらい?)で比較してみようと思います。
※追記ですが、N=200の結果から、ややベイズのほうが真値に近いようです。ただ、ベイズは標準誤差が最尤法などよりも大きめに推定されるようなので、保守的な推定法なのかもしれません。
あと、かなり大事なことなんですが、本当のシミュレーションはこの結果を1000回ぐらいやって、その平均とかで判断する必要があります。今回の結果は超簡便的なシミュレーションなので、あまり信用するべきではありません。お話程度にとどめていおいてください。
それでは、ここまで読んでくれたあなたに、お疲れ様。そして、ごきげんよう。
2 thoughts on “順序カテゴリカルデータでシミュレーション(その1)”