Stata分析機能例題を利用してもっと知ろう
構造方程式モデリング(SEM)

構造方程式モデリング(SEM)を利用することによって、線形回帰モデルから同時方程式まで幅広いモデルの推定が可能になります。
確証的因子分析(CFA)、誤差項の相関したモデル、潜在成長モデル、MIMICモデル、IRTモデルは、専用のコマンドだけでなくsemコマンドを使って推定することもできます。
構造方程式モデリング(SEM)とは特別なモデルに限定された推定手法ではありません。
実際、Stataのregressprobitstcoxなどのコマンドによる推定と同じことがSEMで実行可能です。
SEMは計量モデルに対する一つの考え方であると理解してください。

この例題でできること

  • 構造方程式モデリングを行い、コマンド操作でモデルの係数を推定
  • SEMビルダー(グラフィック操作)でパス図を作成します。パス図から推定
  • 作成したモデルに対する適合度検定(数種類の検定が実行されるので、用途に合った検定を使います)

SEM 1

SEM 2

Stata評価版

最新バージョンのStataをお持ちでない場合は、無料の体験版でお試しいただけます。

doファイルのダウンロード

今回使用するコマンドをまとめたdoファイルです。zipファイルをダウンロード後に展開(解凍)してください。
doファイルは、Stataのメニューの「ファイル > 開く」で開いて使用します。

PDFファイルのダウンロード

このページの内容はPDFでも配布しております。

例1 Single-facter measurementモデル

サンプルデータをダウンロードし、データを確認します。

データの確認

. use https://www.stata-press.com/data/r16/sem_1fmm
. summarize
. notes

以下の表が表示されます。

Single-facter measurementモデル データの確認1 Single-facter measurementモデル データの確認2

下図のモデルにフィットさせます。

Single-facter measurementモデル 1
. sem(x1 x2 x3 x4 <- X)
Single-facter measurementモデル 2

このモデルの方程式は、下記の通りです。

Single-facter measurementモデル モデル方程式

変数Xは、外生的な潜在変数であるため、標準化の制約が必要です。
変数Xは最初に観測された変数x1に固定されるため、パス係数に制限がかかります。

X->x1, X->2, X->3のパス係数は、それぞれ1(制約付き), 1.30, 1.06と推定されます。
一方、X->4のパス係数は7.28ですが、異常値ではありません。
このデータはStata社で作成したものですが、モデルの真の係数は、1, 1, 1, 7です。
作成したモデルと、観測可能な変数の共分散も含むモデルの検定結果が表の下部に表示されます。
χ^2 (2)統計量は1.14、有意水準は0.4827なので、「モデル化していない共分散は不要である」という帰無仮説は、棄却できません。

これはフィットの悪いモデルにおける適合度検定です。
したがって、モデルのフィットは良くないという結果が出力されます。
より数学的に正確な帰無仮説は「近似共分散行列と観測された変数の平均ベクトルが、母集団で観測された行列とベクトルに等しい」です。

同じモデルをgsemにフィットさせる

semgsemは、standard linear SEMでは同じ結果になります。

. gsem(x1 x2 x3 x4 <- X)
同じモデルをgsemにフィットさせる

結果はsemコマンドの時とほぼ同じです。
係数、分散、標準誤差は最後の桁が異なります。
gsemはより膨大な数値処理を行う別のアプローチを行っているので、精度が低下します。

対数尤度値は同じです。これは珍しいことで、一般的にgsemの対数尤度はsemのメトリックスは異なります。
ただし、モデルに観測される変数が含まれない場合は、gsemsemで同じメトリックスが使用されます。

gsemsemの両方で同じモデルをフィットさせると、semの方が若干高速かつ正確で、モデル構築後により多くの推定機能を使用できます。

Builderを使ってフィットさせる

コマンドではなく、Builderを使ってモデルをフィットさせる方法もあります。
コマンドウィンドウで下記を入力し、サンプルデータをダウンロードします。

. use https://www.stata-press.com/data/r16/sem_1fmm

メニューの統計>SEM(構造方程式モデリング)>モデル構築/推定から、新規のSEM Builderを開きます。

SEM Builder

Xのコンポートを作成します。

計測要素を追加アイコンを選択し、SEM Builderの描画領域をクリックします。
ダイアログボックスを下記のように設定します。

  1. グループ変数名を「X」にします。
  2. 測定変数にx1, x2, x3, x4を指定します。
  3. 測定の向きを下にします。
  4. OKをクリックします。
測定成分

下記の図が作成されます。
誤差項からの各Xへのパスには1の制限がかかっているので、図には追加する必要がありません。

Builderを使ってフィットさせる 1

→を選択をクリックし、変数などを選択してコンポーネントの位置を調整できます。

推定を行います。
ツールバーの「推定アイコン」をクリックして、SEM推定オプションウィンドウでOKをクリックします。

Builderを使ってフィットさせる 2

下記のコマンドでBuilderに構築されたダイアグラムを呼び出すことができます。

. webgetsem sem_1fmm

例2 published covariancesからデータセットを作成する

published covariancesからデータセットを作成する方法について

Williams, Eaves, Cox(2002)では、データから得られた共変量が公開されています。
次の例で、SEMをフィットさせるためにこの共変量を使用します。
そのために、例2ではまずsummary statistics dataset(SSD)の作り方を説明します。

Williams, Eaves, Cox(2002)が発表した共変量マトリックスは、下記の表の通りです。

共変量マトリックス

SSDの作成

doファイルで下記のコマンドを実行し、SSDを作成します。

SSDの作成 コマンド

#delimitコマンドは、doファイルでのみ使用できます。
#delimitから#delimit crまでの間で改行が無視され、; が入力された時のみ改行します。
1行にすべてのコマンドを入力する場合には、使用する必要はありません。

データの保存

下記のコマンドでデータを保存し、解析を中断することができます。

. save sem2fmm

下記のコマンドで、他に設定しなければならない項目があるかどうかを調べることができます。

. ssd status
データの保存 コマンド

平均が設定されていません(上記の論文には平均の記載がありませんでした)。

SSDのラベリング

下記のコマンドでデータを確認します。

. ssd describe
SSDのラベリング

下記のコマンドで、データセットにラベルとノートを書き加えます。

SSDのラベリング コマンド

SSDは下記のように設定されます。

SSDの設定

以上のように、変数やデータにラベルを付けることができます。
データセットにノートを付けることもできます。
SSDはデータセットと同様に、保存していつでも使用することができます。

SSDのリスト

下記のコマンドで、SSDのリストを作成することができます。

. ssd list
SSDのリスト

例3 2因子のmeasurment model

複数因子のmeasurment modelについて、例2で作成したSSDを使用して解説します。
例2のSSDのデータは、下記から入手することもできます。

データの入手

. use https://www.stata-press.com/data/r16/sem_2fmm

データの確認

. ssd describe
. notes

以下の表が表示されます。

因子のmeasurment model 1

複数因子のneasurment modelをフィットさせる

下図のKline(2005, 70-74, 184)のモデルにフィットさせます。

neasurment model 1
. sem(Affective -> a1 a2 a3 a4 a5)(Cognitive -> c1 c2 c3 c4 c5)
neasurment model 2 neasurment model 3

例1では、semをrawデータで実行しました。
この例3では、SSDで実行しています。
そのため、特別なオプションを指定する必要はありません。
表の下のver(e.)で推定されている係数は、誤差分散です。
結果は(Kline 2005, 184)とは正確には一致しません。
semオプションにnm1を指定した場合、結果は3桁または4桁目で一致する可能性があります。
nm1オプションを指定すると、分散と共分散を計算する際に、NではなくN-1で割り算します。

標準化された結果を表示する

パス係数ではなく、標準化されたパスの値を表示させると、結果が見やすくなります。
標準化するには、standardizedオプションを使用します。
標準化された値とは、標準偏差単位で表示されます。
ある変数と、その変数に従って変化した変数の両方の変化を標準偏差単位で表しています。

. sem, standardized
標準化された結果を表示する

標準化された係数に加えて、誤差分散が推定されます。

semコマンドを使うと、潜在変数の分散も表示されます。
最初の出力では、潜在変数のAffectiveは1644.46で標準誤差193でした。
標準化した出力では、正規化されているため、分散が1で標準誤差はありません。
正規化された共分散は相関係数となるため、AffectiveとCognitiveの相関は0.81となります。
このモデルの標準化された係数は、各indicatorがひとつの要素を測定しているため、indicatorと潜在変数の相関係数を表します。
例えば、標準化されたパス係数a1<-Affectiveは 0.90なので、a1とAffectiveの相関は0.90となります。

Builderを使ってフィットさせる

コマンドではなく、Builderを使ってモデルをフィットさせる方法もあります。
コマンドウィンドウで下記を入力し、サンプルデータをダウンロードします。

. use https://www.stata-press.com/data/r16/sem_2fmm

メニューの統計>SEM(構造方程式モデリング)>モデル構築/推定から、新規のSEM Builderを開きます。

SEM Builder 1

変数ボックスの大きさを設定します。SEM Builderのメニューから、設定>変数>すべて...を選択します。

変数設定

ダイアログボックスのサイズを.38に変更してOKをクリックします。

測定成分
  1. affective arousalのmearsurmentコンポーネントを作成します。
    計測要素を追加アイコンを選択し、SEM Builderの描画領域をクリックします。
    ダイアログボックスを下記のように設定します。
  2. グループ変数名を「Affective」にします。
  3. 測定変数にa1, a2, a3, a4, a5を指定します。
  4. 測定の向きを下にします。
  5. OKをクリックします。

下記の図が作成されます。

SEM Builder 2

→選択をクリックし、変数などを選択してコンポーネントの位置を調整できます。
画面の右下に配置します。
文字を収めるために円を楕円に変更するには、円を選択してプロパティをクリックします。
表示形式タブの「選択した変数の外観をカスタマイズする」にチェックを入れ、「カスタム外観を設定する」をクリックし、「サイズ」を修正して適用します。

SEM Builder 3
. gsem(x1 x2 x3 x4 <- X)

上記手順を繰り返して、画面の右下にcognitive arousalのmearsurmentコンポーネントを作成します。
グループ変数名に「Cognitive」、測定変数にc1, c2, c3, c4, c5を指定します。

Cognitive 1

相関を作成します。

  1. 共分散を追加アイコンをクリックします。
  2. 右上の「Affective」の楕円をクリックしてハイライトし、左上の「Cognitive」の楕円にドラッグします。

図を整えます。

選択ツールでアイコンをクリックしてドラッグし、共変量や変数を移動させることができます。
また、共分散の円弧も、端点をクリックして接点の位置や角度を調整することができます。

Cognitive 2

推定を行います。ツールバーの 推定アイコンをクリックして、SEM推定オプションウィンドウでOKをクリックします。
SEM Builderのメニューから表示>推定値を表示にチェックを入れると、推定値が表示されます。

Cognitive 3 Cognitive 4

下記のコマンドで、例3のモデルを呼び出すことができます。

. webgetsem sem_2fmm
Cognitive 5

推定式のフィットの良さを評価する

a1とAffectiveの相関は0.90なので、Affectiveによって説明されるa1の分散は〖0.90〗^2=0.81で、説明されない分散は1-0.81=0.19となります。
これらを自動的に計算するには、estat eqgofコマンドを使います。

. estat eqgof
推定式のフィットの良さを評価する

観測された・されないにかかわらず、内生変数のフィットした分散が表示されます。
この例では、観測された内生変数が表示されています。

predicted欄には、内生変数の分散の予測値が表示されます。

residual欄には、残差の分散が表示されます。

R-squared欄には、各indicatorによって説明される分散の割合が表示されます。
例えば、1行目には上で計算したAffectiveによって説明されるa1の分散〖0.90〗^2=0.81が表示されています。
R2は決定係数とも呼ばれます。

mcは多重相関(multiple correlation)、mc2は多重相関の二乗を表します。

R-squared、mc、mc2は従属変数の関係性を表します。
回帰的なモデルでは、この3つの統計量は実質的に同じ数値になります。
mcはR-squaredの2乗根に等しく、mc2はR-squaredに等しくなります。
mcとR-squaredが負の値になることがありますが、これはモデルが負の予測をしている、モデルが妥当ではないという意味ではありません。
mc2(mc2)は、非再帰的でないモデルでR-squaredの代わりに使用することが推奨されています(Bentler and Raykov, 2000)。

例4 適合度(goodness-of-fit)の 統計

estat gofコマンドの例を示します。
例3と同じデータを使用します。

データの入手

. use https://www.stata-press.com/data/r16/sem_2fmm
. sem(Affective -> a1 a2 a3 a4 a5)(Cognitive -> c1 c2 c3 c4 c5)

このモデルを例3でフィットさせた時に、計算結果の下の方に次のような結果が出力されました。

フィット
. ssd describe
. notes

この飽和モデルを、「model χ^2 test」と呼びます。
結果は、フィットが良くないことを示しています。
semでのフィットの結果が良くても、フィットは、標本サイズ、相関、モデルに無関係の分散、multivariate nonnormalityに影響を受ける可能性があります(Kline, 2016)。

semでの適合度とは、観測される値をどの程度フィットさせることができるかということです。
この例では、a1からa5、c1からc5の間の共分散です。
測定されるモデルでは、根本的な原因(この例では潜在変数のAffectiveとCognitive)は観測されません。
観測されるa1からa5、c1からc5をAffectiveとCognitiveでフィルタリングできると仮定することは手軽かもしれませんが、元の変数に含まれる情報が多く失われていない場合のみ有効です。
観測されない値がある場合はモデルの適合度は重要ですが、すべての変数が観測される場合は重要ではなくなります。

次のコマンドで、適合度を調べます。

. estat gof, stats(all)
適合度(goodness-of-fit)の統計

望ましい値は、検定ごとに異なります。
例では、すべての適合度の検定が行われています。
オプションを使用して、特定の検定のみ行うこともできます。

尤度比検定については、2つの検定が行われます。
ひとつめはsemコマンドで表の下部に出力されるmodel 2 testと同じです。
このsaturated modelは、共分散を完全にフィットさせるモデルです。
ふたつめは、baseline 対 saturated omparisonです。
baselineモデルは、平均と、観測されるすべての変数の分散+すべての外生変数の共分散のみを含みます。
どちらも5%レベル(または他のレベル)で、モデルのsaturatedモデルに対する適合性を棄却することができます。
このレベルの設定は、研究者によって異なります。

RMSEA値は、90%信頼区間の上限と下限が表示されます。
多くの場合、90%信頼区間の上限か下限のどちらかで検定し、95%信頼区間を持たせます。
下限が0.05未満または上限が0.10を超える場合は、適合度が低いという仮説を棄却しません。
このモデルは上限が0.10を超えているので、適合度が低いという仮説を棄却できません。

pcloseは、RMSEA値が0.05未満の確率です。
これは、予測された積率が母集団の積率にどのくらい近いかを表しています。
このモデルは、近いとはいえません。

AICとBICは、モデルを比較するために使用されます。
値が小さいほど良いとみなされます。

baseline comparisonのCFIとTLIは、1に近い程良いとみなされます。
TLIは、NNFI(non-normed fit index)とも呼ばれます。

最後に、standardized root mean squared residual(SRMS)と決定係数(CD)が表示されます。
SRMSは0で完全に適合、0.08までの値であれば良く適合しているとされます。
このモデルは、よく適合しています。

決定係数は、モデル全体のR2のような値です。1に近いと良いとされます。

estat gofコマンドは、分野や研究者によって必要な統計が異なるため、複数の適合度の検定を行います。
必要な検定の結果のみをご利用ください。

テクニカルサポート

ご不明な点がございましたら、お気軽にお問合せフォームよりテクニカルサポートまでご連絡ください。

その際、必ず「製品名」「バージョン」「シリアル番号」をご連絡ください。

Stata is a registered trademark of StataCorp LLC, College Station, TX, USA, and the Stata logo is used with the permission of StataCorp.

page_top_icon