[R]{lavaan} gwoth() : 成長曲線モデルのあてはめを行う関数

説明

lavaan::growth()は成長曲線モデルのあてはめを行う関数である。lavaan()の成長曲線に特化したラッパー関数である。

使用法

# ミニマム
fit <- growth(model = "成長曲線モデルのモデル式", data = モデルあてはめを行うデータフレーム) 
summary(fit)
# 完全な構文
growth(model = NULL, data = NULL, 
    conditional.x = "default", fixed.x = "default",
    orthogonal = FALSE, std.lv = FALSE, 
    parameterization = "default", std.ov = FALSE,
    missing = "default", ordered = NULL, 
    sample.cov = NULL, sample.cov.rescale = "default",
    sample.mean = NULL, sample.nobs = NULL, 
    ridge = 1e-05, group = NULL, 
    group.label = NULL, group.equal = "", group.partial = "", 
    group.w.free = FALSE, cluster = NULL, constraints = '', 
    estimator = "default", likelihood = "default", link = "default",
    information = "default", se = "default", test = "default",
    bootstrap = 1000L, mimic = "default", representation = "default", 
    do.fit = TRUE, control = list(), WLS.V = NULL, NACOV = NULL,
    zero.add = "default", zero.keep.margins = "default",
    zero.cell.warn = TRUE,
    start = "default", verbose = FALSE, warn = TRUE, debug = FALSE)

解説

growth()そのものの使い方は、lavaan()、cfa()、sem()と同様であり、モデル式とデータを引数に設定して返り値を受け取り、返り値の内容をsummary()などで表示すればいいだけである。

問題はモデル式の記述方法である。成長曲線のモデル式の記述方法はある意味ではワンパターンである。基本的には確認的因子分析と同じモデル構造である。即ち、各時点のデータを観測データ、成長曲線の要である切片(水準)と傾き(変化)を潜在変数に見立てたモデルとなる。これに加えて、潜在因子を目的変数にみたてた独立変数を追加したり(=回帰式の追加)、時間で変動する共変量(=ある時点のデータのみに影響を与え、他の時点のデータには影響を与えない説明変数)などと適宜追加すればよい。

以下に上記全ての要素を含むモデル式とそのパス図を示す(コチラから引用させて頂いた)。

# a linear growth model with a time-varying covariate
model <- '
  # intercept and slope with fixed coefficients
    i =~ 1*t1 + 1*t2 + 1*t3 + 1*t4
    s =~ 0*t1 + 1*t2 + 2*t3 + 3*t4
  # regressions
    i ~ x1 + x2
    s ~ x1 + x2
  # time-varying covariates
    t1 ~ c1
    t2 ~ c2
    t3 ~ c3
    t4 ~ c4
'
fit <- growth(model, data = Demo.growth)
summary(fit)

growth

技術的にはgrowth()はsem()とほとんど同一である。違いは平均構造が自動で仮定されること、観察変数の切片はデフォルトでは0に固定されること、一方で潜在変数である切片/平均は自由に推定されることである。

詳細

growth()はより一般的な関数であるlavaan()のラッパー関数である。即ちいくつかの引数に対してデフォルト値を設定する。その設定は以下の通り。

meanstructure = TRUE

int.ov.free = FALSE

int.lv.free = TRUE

auto.fix.first = TRUE (unless std.lv = TRUE)

auto.fix.single = TRUE

auto.var = TRUE

auto.cov.lv.x = TRUE

auto.th = TRUE

auto.delta = TRUE

auto.cov.y = TRUE.

返り値

lavaanクラスのオブジェクトを返す。lavaanクラスのオブジェクトに対しては、summary()、inspect()など複数の関数がある。lavaanクラスのオブジェクトをこれらの関数の引数として実行すればよい。

コメント