本アーティクルは The Mathematica Journal (volume 22, 2021) で発表されたもので、著作権は Wolfram Research, Inc. に属します。 |
"This article was previously published in The Mathematica Journal (volume 22, 2021) and the copyright holder is Wolfram Research, Inc." |
構造方程式モデリング (SEM: Structural equational modeling) は、因子分析やパス分析などを特別なケースとして含む、非常に柔軟な手法であるため、社会科学において人気のある統計手法です。通常は、専用のソフトウェアで行われますが、Mathematica でも同様のことが可能で、計算のあらゆる側面を制御できるという利点があります。さらに、これらのモデルを計算するための2つ目の、より柔軟なアプローチについても説明します。これは、概念的にははるかに簡単ですが、より強力な可能性を秘めています。この2つ目のアプローチは、回帰の減衰問題の解決策を説明するために使われます。
線形構造方程式モデリング(SEM)は、過去数十年間に多くの科学分野で広く利用されるようになってきた手法です。初期の基礎的な研究は Bollen [1] であり、より最近の研究は Hoyle [2] によるものです。基本的な考え方は、n 個のケース(観測、被験者)の k 個の観測変数 x1,…,xk の線形構造を、洗剤変数を含む可能性のある線型方程式でモデル化することです。これらの変数は、直接測定されるものではなく、観測された変数との線形関係によって推測されるものです。推定手順を実行するために、多くの商用ソフトウェア(LISREL、Amos、Mplus など)やフリーウェア (lavaan、sem、OpenMX など)が開発されています。私の意見では、Yves Rosseel 氏による R パッケージ lavaan [3, 4]は、フリーウェアの中で最も信頼性が高く、便利なものです。私は自分のコードの結果を判断するゴールドスタンダードとして使っています。この記事では、まず標準的な SEM 理論の概要を説明し、次に Mathematica で計算を実行する方法を紹介します。
Lavaan のマニュアルでも使われている Bollen による標準的な例があります。データセットは11個の潜在変数 x1,x2,x3,y1,y2,y3,y4,y5,y6,y7,y8 の観測値で構成されています。SEM モデルは、通常グラフィックに描かれます。Lavaan のドキュメントでは、図1のように表示されています。
図1:Bollen のデモクラシーモデル(画像は lavaan のドキュメント[4]より)
変数 x1,x2,x3 は、1960年の工業化というコンストラクトを測定する観測変数であり、潜在変数 ind60
で記述されます。これは、工業化のレベルは国ごとに1つの数値で表せると仮定していますが、その数値は直接測定できません。国民総生産 x1 、一人当たりのエネルギー消費 x2 、労働者の割合 x3 との線形関係から推察する必要があります。次に、dem60
と dem65
は、1960年と1965年の民主主義レベルで、 y1,y2,y3,y4 と y5,y6,y7,y8 で測定されます(これらの指標は、報道の自由度などです)。データマトリックスは、75の国(ケース)ごとに、この11個の数字で構成されています。データは、R の lavaan パッケージで提供されます。このモデルを推定する目的は2つあります。まず、線形接続(図では矢印で表されています)の重荷が推定されます。これらの矢印は、変数で終わるすべての矢印は、この変数の値に何らかの誤差後編数を加えた値を得る線形結合を示す、という規則によって、線形方程式ををエンコードします。この神秘的な言葉を身近なものにするために、図1のような方程式を考えます。
変数 ind60
は、矢印がそこで終わっていないため、外生的潜在変数と呼ばれます。関連するエラー変数はありません。しかし、その顕在(測定)指標変数 x1,x2,x3 は、誤差変数 ei
を関連付けます([1]では δi
と呼んでいます)。2つの内生潜在変数(矢印の先にある潜在変数)の指標変数 y1,y2,y3,y4とy5,y6,y7,y8 は、誤差変数 fi
([1]では εi
と呼ぶ)を持ちます。
潜在変数と顕在変数を関連付ける方程式が、モデルの測定部分を定義します。潜在変数の間の(3つの矢印からの)2つの式が構造モデルで、通常は最も関心のあるものです。モデルをデータにフィットさせることで、矢印の重みb1,b2,b3,c1,c2,…を推定することができます。SEMモデリングの第2の目的は、モデルの構造がどれだけデータに適合しているかを確認することであり、SEMは仮説検証の手法でもあります。
与えられた方程式は、まだすべての変数を特定していません。xi=ci·ind60+ei
という解があるとすると、任意の数 k に対して、ci':=ci·k
と ind60':=ind60/k
という数値も解となります。この問題を回避するには、潜在変数の分散を1に固定するか、重みの一部を1に固定します。これは lavaan のデフォルトであり、ここではそれを採用しています。したがって、c1=1、d1=1、d5=1 です。
SEM が発明されて以来、SEM モデルはモデルの共分散行列を計算することで推定されています。kのデータから、経験的共分散行列 S が得られます。一方、モデルからは、観測された変数の間の理論的な共分散行列 Z を算出することができます( Z はモデルに依存し、したがってパラメーターに依存します)。例えば、この行列の1つのエントリは、 cov(x1,x2)=cov(c1·ind60+e1,c2·ind60+e2) となります。共分散の線形性などの特性を利用すると、モデルのパラメーターと潜在変数、誤差変数の間の共分散と分散の多項式をエントリとする行列に帰着します。しかし、更なる仮定をしないと、モデルによって決定されない多くの共分散(例:cov(e1,e2))が得られるため、推定する必要があります。これでは自由度が高くなりすぎるため、大まかな仮定として、ほとんどの誤差変数は無相関であるとしています。誤差変数間の共分散が0を仮定されていないものもあり、それらは図の中で観測変数の間に双頭の矢印で示されています。観測された変数のペアごとに、上記のモデル式を置換規則として用い、線形性と独立性の仮定を適用して共分散を計算します。最終的に、モデルパラメーターb1,b2,b3,c1c2,…と、潜在変数の分散、0 と仮定されていない誤差変数の共分散に依存する共分散行列Zが得られます。詳細は Bollen [1] を参照してください。
経験的な共分散行列と理論的な共分散行列を適合させるには、ある距離関数を最小化するようにこれらのパラメーターを選択する必要があります。最も一般的な3つの方法は、一様最小二乗法 、一般化最小二乗法
(Iは恒等行列)、最尤法
(ここで k は潜在変数の数)です。
これで、SEM を実行する Mathematica 関数を定義できるようになりました。まず、ヘルパー関数の getAllVariables
を定義します。これは、式に含まれるすべての変数を取得するもので、例えば、x[1] が1つの変数としてカウントされるようになっています。
この方法は Bollen の民主主義データセットを使って説明するので、まず、このデータセットを読み込む必要があります。Bollen.csv ファイルには、ヘッダ(変数が BollenObserved リストに保存されている)と、ケースに番号を付けた最初の列が含まれており、これは削除されます。
データは75行あります。
モデル自体は、これまで議論されたモデル方程式を反映した置換規則のリストとして指定する必要があります。
推定関数 SEM
のコードには、いくつかのユーティリティが含まれています。例えば、どの変数が無相関であると仮定するかを考慮して、独自の共分散関数や分散関数を定義しています。SEM
の入力は、データマトリックス data
、数値のマトリックスで、1ケースにつき1行です。構造方程式 modelRules
は、前節の「標準的な例」で説明した形式で与えられます。さらに、関数には次が必要です:
parameters
(例:パスの重み)endogenousLatentVariables
exogenousLatentVariables
errorVariablesOfLatentVariables
errorsOfExogenousManifestVariables
errorsOfEndogenousManifestVariables
correlated
で、どの誤差変数に相関性を持たせるかを指定します。Z
を定義した後のコードは、最初の読み込みでは省略できます。これはいくつかの適合度指数(Fit Index)を計算するためにのみ必要です(適合度指数の計算を求めるオプション do FI
が必要な場合、同様に doML
が最尤推定を求める場合)。推定は関数の最後に行われます。
SEM プログラムの前半の目標は、SEM の仮定を考慮に入れた共分散関数 Cov
の定義です。ほとんどの誤差変数は(相関があると指定されたものを除いて)無相関であり、潜在変数の分散は推定されるべきシンボリックなエンティティとして残されています。
この関数を使って、モデル暗示の共分散行列 Z
を計算します。モデル方程式のルールを繰り返し適用すると、パラメーター、潜在変数と誤差変数の分散、誤差変数の許容された共分散のみに依存する行列が得られます。df
(自由度)を定義する行以降のコードは、適合度指数を得るためにのみ重要です。モデルのパラメーターを推定することだけに興味がある場合、次の興味深い行はモデルを推定するために FindMinimum
が適用されるところです。冒頭で述べたように、共分散行列の偏差を測定する方法はいくつかあります。例えば、uls
の定義は、 を最小化するための簡単なコーディングです。
Bollen のモデルを、誤差変数の相関がないと仮定した簡略化したバージョンでコードを実行してみましょう。これには数分かかります。
その結果、様々な推定方法に応じて、パラメーター、分散、共分散の推定値を組み合わせることができます。モデルがどれだけデータにフィットしているかを判断するために、doFI というオプションでいくつかの適合指標を設定することができます:
RMSEA は、0.1以下であればよく、0.05以下、最後の3つはすべて0.9または0.95以上であればモデルの適合性が高いといえます。
3つの異なる方法で見積もった結果は、多少異なります。これは、私たちのプログラムのバグではなく、lavaan は同じ数字を小数点以下数桁まで判定します。どのような条件でどの方法が同等なのかについては、文献に結果が示されています。これらの適合性指数を解釈するためには、データが多変量の正規分布であることを仮定する必要があります。この仮定に反している場合は、他の指標でモデルの適合性を判断する必要がありますが、それは本記事の対象外です。しかし、現在の方法でも計算することは可能です。Hoyle が編集した本 [2] には、これらの方法についての情報があります。
誤差変数間にいくつかの共分散を認めるオリジナルモデルでは、特に最尤推定の場合、ランタイムが悪化します。そのため、そのため、以下のコードではこれをオフにしています。
両方のモデルの結果は、lavaan で計算したものと全く同じです。
SEM を初めて知ったとき、多くの概念(外生的、内生的など)と必要な仮定に戸惑いました。例えば、誤差変数の相関関係は推定アルゴリズムによって計算されるべきであり、モデルを指定する際に任意に設定すべきではないと感じました。しかし、実際にはこのような困難は大きな役割を果たしていないようで、社会科学の分野では、これらの手法を用いて大成功を収めている研究論文が何千とあります。ただ、共分散行列を用いたSEMの標準的なアプローチが批判される理由がいくつかあります(より詳細な議論は [5] にあります)。従来の SEM は:Traditional SEM:
では、なぜ共分散行列ベースのアプローチが人気なのかと思われるかもしれません。40年以上前は、コンピューターの性能が十分ではなかったので、相関行列を計算して情報を削減することが不可欠だったのでしょう。それ以来、多くの強力なプログラムが開発され、この手法がうまく機能する条件をよく理解した研究が行われてきました。また、モデルの適合性をどのように判断すべきかについては、心理測定のコミュニティでコンセンサスが得られており、この方法を用いた研究は問題なく発表されています。
このアプローチは、実装が非常に簡単で(素朴といってもいいかもしれません)、かつ柔軟性があり、今日のコンピューティングパワーをもってすれば、多くの現実的な状況で実現可能です。
そこで私は、SEM ケースベースで、方程式の欠陥を最小二乗法で最適化することを提案します。K 個の変数 ,
. の観測値(ケース)を確保しているとする。一般方程式モデルは、データである潜在変数 Li,i=1,…,l とパラメーター ci を含む m 個の方程式 gk({xi},{Li},{ci})=0,1≤k≤m からなります。そして、潜在変数とパラメーターは、 ∑k= を最小化することによって推定されます。
しかし、最高の結果を得るためには、もう一工夫が必要です。上記の目的関数は、すべての方程式に同じ重みを与えます。(どのパラメーターを見つけるべきかが明確なシミュレーションデータを使って)方程式に異なる重みを与える係数を掛けることで、より良い結果が得られることがわかりました。つまり、 です。係数 k は、以下のコードのオプションで変更することができます。最良の結果が得られるのは、sk=n-q の場合で、q は gk の潜在的な変数の数です。この選択の背景にある考え方は、1つの潜在変数のみを含む方程式は、その変数を顕在データに直接結びつけるため、高い重みをもつべきだというものです。対照的に、多くの潜在変数を持つ方程式は、顕在変数観測値にそれほど近くなく、したがって、より仮説的であるため、低い重みをもつべきです。
モデル式は、最初の SEM のようにルールとして定式化されておらず、各式に誤差変数の名前が付けられた式になっています。さらに、データセットは正規化されていないため、線形方程式にはゼロではない切片が存在します。最初のアプローチでは、このような加法的な値は共分散行列を計算することで排除されるため、何の影響もありませんでしたが、SEM2 アプローチでは、切片を明示的にモデル化する必要があります(また、切片の推定値も得られるという利点もあります)。
モデル推定を行う関数 SEM2 は、データと顕在変数(observed)
および潜在変数 (latentVariables)
の名前を入力として受け取ります。この機能の技術的な中心となるのが、サブルーチン EQ です。この関数は、潜在変数を含む方程式 (例:dem60==b1ind60+u1) を受け取り、各ケースに適した項を目的関数 targetFunction
に追加します(つまり、データの値が顕在変数の名前に置き換わる)。
オプションが1つあります。
このコードは Bollen のモデルを推定するものです。
前述のように、潜在変数の数に応じて方程式の重み付けを行うバージョンもあります。
推定値の結果は、 SEM に与えられた伝統的な共分散行列ベースのアプローチで計算されたものとは異なります。この2つのアプローチを比較したシミュレーション研究 [5] では、多くの状況でケースベースのアプローチのほうが優れた結果を得ることができ、特に独立したエラーの仮定が破られた場合に有効であることが示されました。さらに、ケースベースのアプローチは、非線形方程式にも適用できます。しかし、状況によっては、ハードウェアの標準的な浮動小数点数よりも高い精度で最小化を行う必要がある場合もあります。
標準的な線形回帰 y~x では、独立変数が正確に測定され、従属変数には理想的な正規分布を持つ誤差があると仮定します。独立変数の測定値にも誤差がある場合、標準的な線形回帰では回帰係数が過小評価されます。これが有名な減衰問題で、その解決方法を紹介します。まず、両方の変数に誤差があるデータセットをシミュレーションしてみましょう。
すると、線形回帰では傾きが過小評価され、0.5 になるはずです。
ケースベースのモデリングを使用する場合、いくつかの戦略が考えられます。真の値に対して、1つまたは2つの潜在的な変数を使用することができます。真の従属変数は y0=ax0 だけなので、以下のコードでは潜在変数を1つだけ使用しています。もう何時の工夫は、方程式を経験的な標準偏差で割って、対等な立場にすることです。
この例は、この手法の力と、適切な方程式を設定するモデラーの責任の両方を示しています。誤差が相関していないことが確認できた場合は、 Sum[e1[i]×e2[i],{i,n}]==0 を別の制約条件として追加し、推定値をさらに向上させることができます。また、これは SEM2 の拡張バージョンで自動的に行われる可能性もあり、その開発が完了したら公開されるでしょう。
構造方程式モデルを推定するための2つの方法を紹介します。1つは伝統的な共分散行列に基づくアプローチで、そのため一次方程式に限定されますが、もう1つのアプローチはより一般的ですが、実際にはまだ確立されていません。モデルの推定は Mathematica で簡単にできますが、発生する数値問題は厳しいものになります。新しいケースベースのアプローチは非常に柔軟で、標準的なアプローチでは限界があるような特定の状況において有望です。
ケースベースの SEM 計算は、今日のコンピューターの数値的な能力を考えると非常に有望であり、従来のアプローチの制約により、研究者が妥当ではない仮定をしなければならないような状況において、ヒントを与えてくれるかもしれません。
SEMについて多くの説明をしてくれたEd Merkle 氏と Yves Rosseel 氏に感謝します。
[1] | K. A. Bollen, Structural Equations with Latent Variables, New York: Wiley, 1989. |
[2] | R. H. Hoyle (ed.), Handbook of Structural Equation Modeling, New York: Guilford Press, 2012. |
[3] | K. Gana and G. Broc, Structural Equation Modeling with lavaan, Hoboken: John Wiley & Sons, 2019. |
[4] | Y. Rosseel. “lavaan.” (Aug 25, 2019) https://lavaan.ugent.be. |
[5] | R. Oldenburg, “Case-based vs. Covariance-based SEM,” forthcoming. |
D. Schultz, “Manipulating Subgroups of the Modular Group,” The Mathematica Journal, 2016. dx.doi.org/doi:10.3888/tmj.18-4. |
Reinhard Oldenburg は、物理学と数学を学び、代数学で博士号を取得しました。高校教師を経て、現在はアウグスブルグ大学で数学教育の教授職に就いています。研究テーマは、コンピューター代数、初等代数の論理、実世界への応用です。
Reinhard Oldenburg