井出草平の研究ノート

lavaanパッケージinspect関数[R]

lavaanの結果はsummary関数で出すが、それよりも詳細な結果が知りたい場合にはinspect関数を利用する。

https://lavaan.ugent.be/tutorial/inspect.htmllavaan.ugent.be

前準備

まずはこちらで分析したモデルを利用するので、オブジェクトfitに格納する。

library(lavaan)
model <- '
  # measurement model
    ind60 =~ x1 + x2 + x3
    dem60 =~ y1 + y2 + y3 + y4

  # regressions
    dem60 ~ ind60
'
fit <- sem(model=model, data=PoliticalDemocracy, estimator="ML")

基本的な出力

inspect(fit)

出力。

$lambda
   ind60 dem60
x1     0     0
x2     1     0
x3     2     0
y1     0     0
y2     0     3
y3     0     4
y4     0     5

$theta
   x1 x2 x3 y1 y2 y3 y4
x1  7                  
x2  0  8               
x3  0  0  9            
y1  0  0  0 10         
y2  0  0  0  0 11      
y3  0  0  0  0  0 12   
y4  0  0  0  0  0  0 13

$psi
      ind60 dem60
ind60 14         
dem60  0    15   

$beta
      ind60 dem60
ind60     0     0
dem60     6     0

$lambda

因子負荷行列。自由母数にはそれぞれ対応する番号が振られている。固定母数にはゼロが振られている。

$theta

観測変数の誤差分散。

$psi

潜在変数の分散。

$beta

潜在変数間の回帰係数。

パラメータ表

inspect(fit, what="list")

parTable(fit)で表示されるパラメータ表と同一のものが出力できる。

   id   lhs op   rhs user block group free ustart exo label plabel start   est
1   1 ind60 =~    x1    1     1     1    0      1   0         .p1. 1.000 1.000
2   2 ind60 =~    x2    1     1     1    1     NA   0         .p2. 2.193 2.180
3   3 ind60 =~    x3    1     1     1    2     NA   0         .p3. 1.824 1.818
4   4 dem60 =~    y1    1     1     1    0      1   0         .p4. 1.000 1.000
5   5 dem60 =~    y2    1     1     1    3     NA   0         .p5. 1.296 1.419
6   6 dem60 =~    y3    1     1     1    4     NA   0         .p6. 1.055 1.095
7   7 dem60 =~    y4    1     1     1    5     NA   0         .p7. 1.294 1.428
8   8 dem60  ~ ind60    1     1     1    6     NA   0         .p8. 0.000 1.439
9   9    x1 ~~    x1    0     1     1    7     NA   0         .p9. 0.265 0.081
10 10    x2 ~~    x2    0     1     1    8     NA   0        .p10. 1.126 0.120
11 11    x3 ~~    x3    0     1     1    9     NA   0        .p11. 0.975 0.467
12 12    y1 ~~    y1    0     1     1   10     NA   0        .p12. 3.393 2.404
13 13    y2 ~~    y2    0     1     1   11     NA   0        .p13. 7.686 6.552
14 14    y3 ~~    y3    0     1     1   12     NA   0        .p14. 5.310 5.363
15 15    y4 ~~    y4    0     1     1   13     NA   0        .p15. 5.535 2.137
16 16 ind60 ~~ ind60    0     1     1   14     NA   0        .p16. 0.050 0.449
17 17 dem60 ~~ dem60    0     1     1   15     NA   0        .p17. 0.050 3.453
      se
1  0.000
2  0.139
3  0.152
4  0.000
5  0.203
6  0.171
7  0.171
8  0.379
9  0.020
10 0.072
11 0.091
12 0.516
13 1.289
14 0.996
15 0.719
16 0.087
17 0.875

オプション一覧

使わないものも多い気がするが、とりあえずオプションの一覧を訳出しておく。

モデル行列

"se"

すべての自由母数の標準誤差の推定値を行列にしたもの。2つのパラメータが等しくなるように制約されている場合,それらは両方のパラメータに対して同じ標準誤差を持つことになる。summary()の出力のStd.errと同一。"std.err "および "standard.errors"でも同じ値が得られる。

"start"

これらの値はすべてのモデル母数の初期値。"starting.values"でも同じ値が得られる。

"est"

値はモデルパラメータの推定値を表す。" estimates"や "x"でも同じ値が得られる。

"dx.free"

値はモデルパラメータの勾配(1次微分)値を表します。2つのパラメータが等しくなるように制約されている場合は、同じ勾配の値となる。

"dx.all"

値はすべての可能な行列要素に関する1次微分を表す。推定量が "ML "と "GLS "の場合にのみ利用可能。

"std"

値は標準化されたモデル・パラメータを表す(観測された変数と潜在変数の分散は,両方とも1に設定される)。 "std.all"と "standardized"でも同じ値が得られる。

"std.lv"

値は標準化されたモデルのパラメータを表す(潜在変数の分散のみが1に設定される)。

"std.nox"

値は標準化されたモデルパラメータを表す(観測された変数と潜在変数の両方の分散が1に設定される。どのようにしても,観測された外生変数の分散は1に設定されない)

データに関する情報

"data"

モデルを適合させるために使用された観測変数を含む行列。列/行の名前は出力されない。列名はlavNames(object)で出力、行名はlavInspect(object, "case.idx")で出力できる。

"ordered"

順序付けされた変数。

"nobs"

分析に使用された各グループの観測数。

"norig"

各グループの観測のオリジナルな数。

"ntotal"

分析で使用された観測総数。単一のグループの場合、 "nobs "オプションと同じ値となる。複数のグループの場合には各グループの "nobs "数の合計である。

"case.idx"

分析に使用したケース/観察番号。複数のグループの場合は番号のリスト。

"empty.idx"

欠損値のケース/観察の番号。 複数のグループの場合は番号のリスト。

"patterns"

行列の行は欠損データのパターンで、1と0はそれぞれ対応する観測された変数の非欠損値と欠損値を表す。 lavTech()が使用されている場合はTRUEとFALSEを表す。データが完全であれば(欠落値がない)、1つのパターンのみ。

"coverage"

対称行列で各要素は観測された変数の対応するペアについての観測されたデータ点の割合。

"group"

data.frame内のグループ変数

"ngroups"

グループの数。

"group.label"

グループのラベル。

"level.label"

レベルラベル。

"cluster"

data.frame内のクラスタ変数。

"nlevels"

レベルの数。

"nclusters"

分析に使用されたクラスタの数。

"ncluster.size"

異なるクラスタサイズの数。

"nclusters"

分析に使用されたクラスタの数。

"ncluster.size"

異なるクラスタサイズの数。

"cluster.size"

クラスタ内の観測数。多群多レベル・モデルでは、各グループ内のクラスタ・サイズを示す整数ベクトルのリスト。

"cluster.id"

クラスタを識別するクラスタID。多群多レベルモデルの場合、各グループ内のクラスタIDを示す整数ベクトルのリスト。

"cluster.idx"

各観測のクラスタインデックス。 クラスタインデックスは1からクラスタ数までの範囲である。 マルチグループ・マルチレベルモデルの場合は、各グループ内のクラスタインデックスを示す整数ベクトルのリスト。

"cluster.label"

各観測のクラスタID。マルチグループ・マルチレベル・モデルの場合、各グループ内の各オブザベーションのクラスタIDを示す整数ベクトルのリスト。

"cluster.sizes"

分析に使用された異なるクラスタサイズ。マルチグループ・マルチレベルモデルでは、各グループ内の異なるクラスタサイズを示す整数ベクトルのリスト。

"average.cluster.size"

平均クラスタ・サイズ(式は (N2 -sum(cluster.size2))/ (N*(nclusters -1L)).
マルチグループ・マルチレベルモデルの場合は,グループごとの平均クラスター・サイズを含むリスト。

観測標本統計量

"sampstat"

観測された標本統計量。0.6-3以降はにh1スロットが利用可能かどうかをチェックする(無制限モデルの推定値);もしあれば,このスロットから標本統計量を抽出します. これは,変数が連続的で,dmissing = "ml"(または"fiml")であれば,非制限(h1)モデルの下でEMアルゴリズムによって計算された共分散行列(および平均ベクトル)を返すことを意味する。 h1が存在しない場合(おそらくモデルがh1 = FALSEで適合されているため)、SampleStatsスロットからサムプル統計量を返します。 ここでは,共分散行列(または相関行列)の要素に対してはペアワイズによる削除され、すべての単変量統計量(平均,切片,閾値)に対してはリストワイズによる削除が用いられる。

"sampstat.h1":

撤回。使用しない。

"wls.obs"

観測された標本統計量(共分散要素,切片/閾値など)。

"wls.v"

重み付き最小二乗推定で用いられる重みベクトル。

"gamma"

標本統計量の漸近分散行列のN倍。"sampstat.nacov"でも同じ値が得られる。

モデル特性

"meanstructure"

TRUEの場合、平均構造がモデルに含まれている場合TRUE。

"categorical"

カテゴリ内生変数がモデルの一部である場合TRUE。

"fixed.x"

外生的なx共変量が固定として扱われる場合TRUE。

"parameterization"

デルタまたはシータのいずれか。

Model-implied sample statistics:

"implied"

Model-implied sample statistics。fitted"、"expected"、 "exp"でも同じ値が求められる。

"resid"

観測された統計量とModel-implied sample statistics量の差。"residuals"、"residual"、"res"でも同じ値が求められる。

"cov.lv"

潜在変数のModel-implied分散-共分散行列。"veta"[for V(eta)]でも同じ値が求められる。

"cor.lv"

潜在変数のModel-implied相関行列。

"mean.lv"

潜在変数のモデル推定平均ベクトル. "eeta"[for E(eta)]でも同じ値が求められる。

cov.ov"

観測された変数のModel-implied分散-共分散行列。"sigma"、"sigma.hat"でも同じ値が求められる。

"cor.ov"

観測された変数のモデル化された相関行列。

"mean.ov"

観測された変数のモデル推定平均ベクトル. "mu"、"mu.hat"でも同じ値が求められる。

"cov.all"

観測された変数と潜在変数の両方の分散-共分散行列をモデル化したもの。

"cor.all"

観測された変数と潜在変数の両方のモデル化された相関行列。

"th"

モデルにインプライドされた閾値。"thresholds"でも同じ値が求められる。

"wls.est"

1つのベクトルでののModel-impliedサンプル統計量(共分散要素,切片/閾値など)。

"vy"

観察された変数ののModel-implied無条件分散。

"rsquare"

すべての内生変数のR2乗値。"r-square"、"r2"でも同じ値が求められる。

最適化情報

"converged"

最適化が収束した場合はTRUE、それ以外の場合はFALSEとなる。

"iteratons"

最適化の反復回数。

"optit"

最適化結果に関する利用可能なすべての情報。自由パラメータの数(制約を無視したもの)。

"coef"

推定パラメータベクトル.

勾配、ヘシアン行列、観測値、期待値、一次情報行列

"gradient"

モデルパラメータを基準とした不一致関数の第1導関数を含む数値ベクトル。

"hessian"

モデルパラメータを基準とした不一致関数の第2次導関数を含む行列。

"information"

観測された情報行列または期待された情報行列を含む行列(適合モデルの情報オプションに依存しない)。これは単位情報であり、合計情報ではない。

"information.expected"

自由モデルパラメータの期待情報行列を含む行列。

"information.observed"

自由モデルパラメータの観測された情報行列を含む行列。

"information.first.order"

自由モデルパラメータの1次情報行列を含む行列. これは,勾配要素の外積((自由)モデルパラメータに対する不一致関数の1次微分)である."first.order"でも同じ値が求められる。

"argmented.information"

観測された、または期待された拡張された(または境界化された)情報行列を含む行列(フィットされたモデルの情報オプションに依存する。モデルに制約が使用されている場合のみ無関連。

"argmented.information.expected"

期待される拡張(または境界化された)情報行列を含む行列。モデルで制約が使用されている場合のみ関連する。

"augmented.information.observed"

観測された拡張(または境界化された)情報行列を含む行列。モデルで制約が使用されている場合にのみ関連する。

"augmented.information.first.order"

1次の拡張された(または境界化された)情報行列を含む行列。モデルで制約が使用されている場合にのみ関連する。

"inverted.information"

観測された転置情報行列または期待された転置情報行列を含む行列 (適合モデルの情報オプションに依存する)。

"inverted.information.expected"

自由モデルパラメータの期待される情報の転置行列を含む行列。

"inverted.information.observed"

自由モデルパラメータの転置期待情報行列を含む行列。

"inverted.information.first.order"

自由モデルパラメータの倒立1次情報行列を含む行列。

"h1.information"

無制限h1モデルの観測された情報、期待された情報、または1次情報行列(適合モデルの情報オプションに依存)を含む行列。

"h1.information.expected"

非拘束h1モデルの期待情報行列を含む行列。

"h1.information.observed"

非拘束h1モデルの観測情報行列を含む行列。

"h1.information.first.order"

無制限h1モデルの1次情報行列を含む行列。"h1.first.order"でも同じ値が求められる。

モデルパラメータの分散共分散行列.

vcov"

推定モデルパラメータの分散共分散行列を含む行列。

"vcov.std.all"

標準化された推定モデルパラメータの分散共分散行列を含む行列。標準化は観測された変数と潜在変数の両方に関して行われる。

"vcov.std.lv"

標準化された推定モデルパラメータの分散共分散行列を含む行列。標準化は潜在変数に関してのみ行われる。

"vcov.std.nox"

標準化された推定モデルパラメータの分散共分散行列を含む行列。標準化は観測された変数と潜在変数の両方に関して行われるが,外生的な観測された共変量は無視される。

"vcov.def"

ユーザ定義の(=operatorを用いる)パラメータの分散共分散行列を含む行列。

"vcov.def.std.all"

標準化されたユーザ定義パラメータの分散共分散行列を含む行列。標準化は、観測された変数と潜在変数の両方に関して行われる。

"vcov.def.std.lv"

標準化されたユーザ定義パラメータの分散共分散行列を含む行列。標準化は,潜在変数に関してのみ行われる。

"vcov.def.std.nox"

標準化されたユーザ定義パラメータの分散共分散行列を含む行列。標準化は、観測された変数と潜在変数の両方に関して行われるが、外生的な観測された共変量は無視される。

"vcov.def.joint"

推定モデル・パラメータと定義された(=operatorを用いる)パラメータの両方のジョイント分散共分散行列を含む行列。

"vcov.def.joint.std.all"

標準化されたモデルパラメータとユーザ定義パラメータの両方のジョイント分散共分散行列を含む行列。 標準化は、観測された変数と潜在変数の両方について行われる。

"vcov.def.joint.std.lv"

標準化されたモデルパラメータとユーザ定義パラメータの両方のジョイント分散共分散行列を含む行列。標準化は,潜在変数についてのみ行われる。

"vcov.def.joint.std.nox"

標準化されたモデルパラメータとユーザ定義パラメータの両方のジョイント分散共分散行列を含む行列.標準化は観測された変数と潜在変数の両方を考慮して行われますが、外生的な観測された共変量は無視される。

その他

"coef.boot"

各ブートストラップ標本の推定モデル・パラメータを含む行列。ブートストラップが使用された場合のみ関係する。

"UGamma"

Satorra-Bentler 補正で使用される'U'行列と'Gamma'行列の積を含む行列。この行列の正方行列の対角成分の和を自由度で割ったものがスケーリング係数となる。

"UfromUGamma"

Satorra-Bentler補正で使用される'U'行列を含む行列。"U"でも同じ値が求められる。

"list"

パラメータテーブル。parTable() と同じ出力。

"fit"

統計量。"fitmeasures"、 "fit.measures"、"fit.indices"、 fitMeasures()でも同じ値が求められる。

"mi"

修正指標とEPSの値を含むデータフレーム。非標準化推定値と標準化推定との両方が出力される。"modindices"、"modification.indices"、bymodindices()でも同じ値が求められる。

"loglik.casewise"

ケースワイズ対数尤度の寄与を含むベクトル。estimator ="ML "の場合のみ利用可能。

"options"

オプションのリスト。

"call"

match.call によって返される呼び出し。

"timing"

様々なlavaanサブプロシージャのタイミング(ミリ秒単位)。

"test"

(適合度の)テスト統計量に関する利用可能なすべての情報。

"baseline.test"

ベースライン・モデルの(適合度の)検定統計量に関するすべての利用可能な情報。

"baseline.partable"

ベースラインモデルの(内部)パラメータテーブル。

"post.check"

解が許容可能かどうかのフィット後チェックを行う。負の値が見つかった場合や、lavInspect(fit, "cov.lv")またはlavInspect(fit, "theta")が非正定値行列を返す場合は警告が発生する。

"zero.cell.tables"

少なくとも1つのセルが空である二変量度数表のリスト。

"version"

lavaanのバージョン番号。