双域潜在增长曲线的选项(可能在 lavaan 中?)
Options for dual domain latent growth curves (perhaps in lavaan?)
我正在尝试分析两个结果变量的三个重复测量值。建议使用潜在增长曲线模型。我知道在某些软件 (SPSS) 中,您可以通过多种措施制作增长曲线,但在 lavaan 中似乎并不那么简单。阅读 lavaan 教程,它提到了使用 sem() 的多级 SEM - 这是否适用于重复测量数据集?或者是否有另一个包允许 R 中的多个结果增长曲线?
要在 lavaan
内创建潜在增长曲线很容易,请参见下面的示例(有 4 个时间点):
library(lavaan)
model <- ' i =~ 1*t1 + 1*t2 + 1*t3 + 1*t4
s =~ 0*t1 + 1*t2 + 2*t3 + 3*t4 '
fit <- growth(model, data=Demo.growth)
summary(fit)
#> lavaan 0.6-8 ended normally after 29 iterations
#>
#> Estimator ML
#> Optimization method NLMINB
#> Number of model parameters 9
#>
#> Number of observations 400
#>
#> Model Test User Model:
#>
#> Test statistic 8.069
#> Degrees of freedom 5
#> P-value (Chi-square) 0.152
#>
#> Parameter Estimates:
#>
#> Standard errors Standard
#> Information Expected
#> Information saturated (h1) model Structured
#>
#> Latent Variables:
#> Estimate Std.Err z-value P(>|z|)
#> i =~
#> t1 1.000
#> t2 1.000
#> t3 1.000
#> t4 1.000
#> s =~
#> t1 0.000
#> t2 1.000
#> t3 2.000
#> t4 3.000
#>
#> Covariances:
#> Estimate Std.Err z-value P(>|z|)
#> i ~~
#> s 0.618 0.071 8.686 0.000
#>
#> Intercepts:
#> Estimate Std.Err z-value P(>|z|)
#> .t1 0.000
#> .t2 0.000
#> .t3 0.000
#> .t4 0.000
#> i 0.615 0.077 8.007 0.000
#> s 1.006 0.042 24.076 0.000
#>
#> Variances:
#> Estimate Std.Err z-value P(>|z|)
#> .t1 0.595 0.086 6.944 0.000
#> .t2 0.676 0.061 11.061 0.000
#> .t3 0.635 0.072 8.761 0.000
#> .t4 0.508 0.124 4.090 0.000
#> i 1.932 0.173 11.194 0.000
#> s 0.587 0.052 11.336 0.000
但是,如果您想为 2 个并行过程(睡眠和焦虑)建模潜在增长曲线,您可以使用这种方法:
library(lavaan)
#> This is lavaan 0.6-8
#> lavaan is FREE software! Please report any bugs.
model <- "
i1 =~ 1*t1 + 1*t2 + 1*t3 + 1*t4
s1 =~ 0*t1 + 1*t2 + 2*t3 + 3*t4
i2 =~ 1*c1 + 1*c2 + 1*c3 + 1*c4
s2 =~ 0*c1 + 1*c2 + 2*c3 + 3*c4
s1 ~ i2
s2 ~ i1
"
fit <- growth(model, data=Demo.growth)
#> Warning in lav_object_post_check(object): lavaan WARNING: covariance matrix of latent variables
#> is not positive definite;
#> use lavInspect(fit, "cov.lv") to investigate.
summary(fit)
#> lavaan 0.6-8 ended normally after 76 iterations
#>
#> Estimator ML
#> Optimization method NLMINB
#> Number of model parameters 20
#>
#> Number of observations 400
#>
#> Model Test User Model:
#>
#> Test statistic 156.195
#> Degrees of freedom 24
#> P-value (Chi-square) 0.000
#>
#> Parameter Estimates:
#>
#> Standard errors Standard
#> Information Expected
#> Information saturated (h1) model Structured
#>
#> Latent Variables:
#> Estimate Std.Err z-value P(>|z|)
#> i1 =~
#> t1 1.000
#> t2 1.000
#> t3 1.000
#> t4 1.000
#> s1 =~
#> t1 0.000
#> t2 1.000
#> t3 2.000
#> t4 3.000
#> i2 =~
#> c1 1.000
#> c2 1.000
#> c3 1.000
#> c4 1.000
#> s2 =~
#> c1 0.000
#> c2 1.000
#> c3 2.000
#> c4 3.000
#>
#> Regressions:
#> Estimate Std.Err z-value P(>|z|)
#> s1 ~
#> i2 6.115 3.785 1.615 0.106
#> s2 ~
#> i1 -0.011 0.017 -0.644 0.519
#>
#> Covariances:
#> Estimate Std.Err z-value P(>|z|)
#> i1 ~~
#> i2 0.101 0.062 1.632 0.103
#> .s1 ~~
#> .s2 0.021 0.017 1.205 0.228
#>
#> Intercepts:
#> Estimate Std.Err z-value P(>|z|)
#> .t1 0.000
#> .t2 0.000
#> .t3 0.000
#> .t4 0.000
#> .c1 0.000
#> .c2 0.000
#> .c3 0.000
#> .c4 0.000
#> i1 0.615 0.077 8.009 0.000
#> .s1 0.824 0.276 2.990 0.003
#> i2 0.030 0.041 0.731 0.464
#> .s2 0.002 0.024 0.063 0.950
#>
#> Variances:
#> Estimate Std.Err z-value P(>|z|)
#> .t1 0.597 0.086 6.978 0.000
#> .t2 0.673 0.061 11.056 0.000
#> .t3 0.636 0.072 8.780 0.000
#> .t4 0.507 0.124 4.095 0.000
#> .c1 0.977 0.069 14.120 0.000
#> .c2 0.892 0.064 14.016 0.000
#> .c3 0.838 0.065 12.996 0.000
#> .c4 0.803 0.080 10.010 0.000
#> i1 1.931 0.173 11.193 0.000
#> .s1 0.533 0.203 2.626 0.009
#> i2 0.001 0.006 0.246 0.806
#> .s2 0.007 0.006 1.033 0.302
由 reprex package (v1.0.0)
创建于 2021-03-19
我正在尝试分析两个结果变量的三个重复测量值。建议使用潜在增长曲线模型。我知道在某些软件 (SPSS) 中,您可以通过多种措施制作增长曲线,但在 lavaan 中似乎并不那么简单。阅读 lavaan 教程,它提到了使用 sem() 的多级 SEM - 这是否适用于重复测量数据集?或者是否有另一个包允许 R 中的多个结果增长曲线?
要在 lavaan
内创建潜在增长曲线很容易,请参见下面的示例(有 4 个时间点):
library(lavaan)
model <- ' i =~ 1*t1 + 1*t2 + 1*t3 + 1*t4
s =~ 0*t1 + 1*t2 + 2*t3 + 3*t4 '
fit <- growth(model, data=Demo.growth)
summary(fit)
#> lavaan 0.6-8 ended normally after 29 iterations
#>
#> Estimator ML
#> Optimization method NLMINB
#> Number of model parameters 9
#>
#> Number of observations 400
#>
#> Model Test User Model:
#>
#> Test statistic 8.069
#> Degrees of freedom 5
#> P-value (Chi-square) 0.152
#>
#> Parameter Estimates:
#>
#> Standard errors Standard
#> Information Expected
#> Information saturated (h1) model Structured
#>
#> Latent Variables:
#> Estimate Std.Err z-value P(>|z|)
#> i =~
#> t1 1.000
#> t2 1.000
#> t3 1.000
#> t4 1.000
#> s =~
#> t1 0.000
#> t2 1.000
#> t3 2.000
#> t4 3.000
#>
#> Covariances:
#> Estimate Std.Err z-value P(>|z|)
#> i ~~
#> s 0.618 0.071 8.686 0.000
#>
#> Intercepts:
#> Estimate Std.Err z-value P(>|z|)
#> .t1 0.000
#> .t2 0.000
#> .t3 0.000
#> .t4 0.000
#> i 0.615 0.077 8.007 0.000
#> s 1.006 0.042 24.076 0.000
#>
#> Variances:
#> Estimate Std.Err z-value P(>|z|)
#> .t1 0.595 0.086 6.944 0.000
#> .t2 0.676 0.061 11.061 0.000
#> .t3 0.635 0.072 8.761 0.000
#> .t4 0.508 0.124 4.090 0.000
#> i 1.932 0.173 11.194 0.000
#> s 0.587 0.052 11.336 0.000
但是,如果您想为 2 个并行过程(睡眠和焦虑)建模潜在增长曲线,您可以使用这种方法:
library(lavaan)
#> This is lavaan 0.6-8
#> lavaan is FREE software! Please report any bugs.
model <- "
i1 =~ 1*t1 + 1*t2 + 1*t3 + 1*t4
s1 =~ 0*t1 + 1*t2 + 2*t3 + 3*t4
i2 =~ 1*c1 + 1*c2 + 1*c3 + 1*c4
s2 =~ 0*c1 + 1*c2 + 2*c3 + 3*c4
s1 ~ i2
s2 ~ i1
"
fit <- growth(model, data=Demo.growth)
#> Warning in lav_object_post_check(object): lavaan WARNING: covariance matrix of latent variables
#> is not positive definite;
#> use lavInspect(fit, "cov.lv") to investigate.
summary(fit)
#> lavaan 0.6-8 ended normally after 76 iterations
#>
#> Estimator ML
#> Optimization method NLMINB
#> Number of model parameters 20
#>
#> Number of observations 400
#>
#> Model Test User Model:
#>
#> Test statistic 156.195
#> Degrees of freedom 24
#> P-value (Chi-square) 0.000
#>
#> Parameter Estimates:
#>
#> Standard errors Standard
#> Information Expected
#> Information saturated (h1) model Structured
#>
#> Latent Variables:
#> Estimate Std.Err z-value P(>|z|)
#> i1 =~
#> t1 1.000
#> t2 1.000
#> t3 1.000
#> t4 1.000
#> s1 =~
#> t1 0.000
#> t2 1.000
#> t3 2.000
#> t4 3.000
#> i2 =~
#> c1 1.000
#> c2 1.000
#> c3 1.000
#> c4 1.000
#> s2 =~
#> c1 0.000
#> c2 1.000
#> c3 2.000
#> c4 3.000
#>
#> Regressions:
#> Estimate Std.Err z-value P(>|z|)
#> s1 ~
#> i2 6.115 3.785 1.615 0.106
#> s2 ~
#> i1 -0.011 0.017 -0.644 0.519
#>
#> Covariances:
#> Estimate Std.Err z-value P(>|z|)
#> i1 ~~
#> i2 0.101 0.062 1.632 0.103
#> .s1 ~~
#> .s2 0.021 0.017 1.205 0.228
#>
#> Intercepts:
#> Estimate Std.Err z-value P(>|z|)
#> .t1 0.000
#> .t2 0.000
#> .t3 0.000
#> .t4 0.000
#> .c1 0.000
#> .c2 0.000
#> .c3 0.000
#> .c4 0.000
#> i1 0.615 0.077 8.009 0.000
#> .s1 0.824 0.276 2.990 0.003
#> i2 0.030 0.041 0.731 0.464
#> .s2 0.002 0.024 0.063 0.950
#>
#> Variances:
#> Estimate Std.Err z-value P(>|z|)
#> .t1 0.597 0.086 6.978 0.000
#> .t2 0.673 0.061 11.056 0.000
#> .t3 0.636 0.072 8.780 0.000
#> .t4 0.507 0.124 4.095 0.000
#> .c1 0.977 0.069 14.120 0.000
#> .c2 0.892 0.064 14.016 0.000
#> .c3 0.838 0.065 12.996 0.000
#> .c4 0.803 0.080 10.010 0.000
#> i1 1.931 0.173 11.193 0.000
#> .s1 0.533 0.203 2.626 0.009
#> i2 0.001 0.006 0.246 0.806
#> .s2 0.007 0.006 1.033 0.302
由 reprex package (v1.0.0)
创建于 2021-03-19