riclpmr
packagericlpmr.Rmd
Here is a brief example to help you get started.
To install the package:
Generate a new model:
library(riclpmr)
var_groups <- list(
x=c("x_t1", "x_t2", "x_t3"),
y=c("y_t1", "y_t2", "y_t3"),
z=c("z_t1", "z_t2", "z_t3"))
model_text <- riclpmr::riclpm_text(var_groups)
cat(model_text)
#> ri_x =~ 1*x_t1 + 1*x_t2 + 1*x_t3
#> ri_y =~ 1*y_t1 + 1*y_t2 + 1*y_t3
#> ri_z =~ 1*z_t1 + 1*z_t2 + 1*z_t3
#> ri_x ~~ ri_x
#> ri_y ~~ ri_y
#> ri_z ~~ ri_z
#> ri_x ~~ ri_y + ri_z
#> ri_y ~~ ri_z
#> x_t1 ~ x_t1_mu*1
#> x_t2 ~ x_t2_mu*1
#> x_t3 ~ x_t3_mu*1
#> y_t1 ~ y_t1_mu*1
#> y_t2 ~ y_t2_mu*1
#> y_t3 ~ y_t3_mu*1
#> z_t1 ~ z_t1_mu*1
#> z_t2 ~ z_t2_mu*1
#> z_t3 ~ z_t3_mu*1
#> lat_x1 =~ 1*x_t1
#> lat_x2 =~ 1*x_t2
#> lat_x3 =~ 1*x_t3
#> lat_y1 =~ 1*y_t1
#> lat_y2 =~ 1*y_t2
#> lat_y3 =~ 1*y_t3
#> lat_z1 =~ 1*z_t1
#> lat_z2 =~ 1*z_t2
#> lat_z3 =~ 1*z_t3
#> lat_x1 ~~ lat_y1 + lat_z1
#> lat_x2 ~~ r_xy*lat_y2 + r_xz*lat_z2
#> lat_x3 ~~ r_xy*lat_y3 + r_xz*lat_z3
#> lat_y1 ~~ lat_z1
#> lat_y2 ~~ r_yz*lat_z2
#> lat_y3 ~~ r_yz*lat_z3
#> lat_x2 ~ x_x*lat_x1 + x_y*lat_y1 + x_z*lat_z1
#> lat_x3 ~ x_x*lat_x2 + x_y*lat_y2 + x_z*lat_z2
#> lat_y2 ~ y_x*lat_x1 + y_y*lat_y1 + y_z*lat_z1
#> lat_y3 ~ y_x*lat_x2 + y_y*lat_y2 + y_z*lat_z2
#> lat_z2 ~ z_x*lat_x1 + z_y*lat_y1 + z_z*lat_z1
#> lat_z3 ~ z_x*lat_x2 + z_y*lat_y2 + z_z*lat_z2
#> lat_x1 ~~ lat_x1
#> lat_x2 ~~ e_x*lat_x2
#> lat_x3 ~~ e_x*lat_x3
#> lat_y1 ~~ lat_y1
#> lat_y2 ~~ e_y*lat_y2
#> lat_y3 ~~ e_y*lat_y3
#> lat_z1 ~~ lat_z1
#> lat_z2 ~~ e_z*lat_z2
#> lat_z3 ~~ e_z*lat_z3
#We could edit the model code to set specific regresion coefficients. lavaan
#will automatically set them to 0.
fake_data <- riclpmr::simriclpm(riclpmModel = model_text, sample.nobs = 500)
#> Warning in simfunc(riclpmModel, int.ov.free = F, int.lv.free = F,
#> auto.fix.first = F, : lavaan WARNING: some regression coefficients are
#> unspecified and will be set to zero
fit <- riclpmr::lavriclpm(riclpmModel = model_text, data = fake_data)
lavaan::summary(fit)
#> lavaan 0.6-5 ended normally after 53 iterations
#>
#> Estimator ML
#> Optimization method NLMINB
#> Number of free parameters 51
#> Number of equality constraints 15
#> Row rank of the constraints matrix 15
#>
#> Number of observations 500
#>
#> Model Test User Model:
#>
#> Test statistic 16.840
#> Degrees of freedom 18
#> P-value (Chi-square) 0.534
#>
#> Parameter Estimates:
#>
#> Information Expected
#> Information saturated (h1) model Structured
#> Standard errors Standard
#>
#> Latent Variables:
#> Estimate Std.Err z-value P(>|z|)
#> ri_x =~
#> x_t1 1.000
#> x_t2 1.000
#> x_t3 1.000
#> ri_y =~
#> y_t1 1.000
#> y_t2 1.000
#> y_t3 1.000
#> ri_z =~
#> z_t1 1.000
#> z_t2 1.000
#> z_t3 1.000
#> lat_x1 =~
#> x_t1 1.000
#> lat_x2 =~
#> x_t2 1.000
#> lat_x3 =~
#> x_t3 1.000
#> lat_y1 =~
#> y_t1 1.000
#> lat_y2 =~
#> y_t2 1.000
#> lat_y3 =~
#> y_t3 1.000
#> lat_z1 =~
#> z_t1 1.000
#> lat_z2 =~
#> z_t2 1.000
#> lat_z3 =~
#> z_t3 1.000
#>
#> Regressions:
#> Estimate Std.Err z-value P(>|z|)
#> lat_x2 ~
#> lat_x1 (x_x) 0.008 0.066 0.123 0.902
#> lat_y1 (x_y) 0.038 0.053 0.721 0.471
#> lat_z1 (x_z) 0.049 0.053 0.914 0.361
#> lat_x3 ~
#> lat_x2 (x_x) 0.008 0.066 0.123 0.902
#> lat_y2 (x_y) 0.038 0.053 0.721 0.471
#> lat_z2 (x_z) 0.049 0.053 0.914 0.361
#> lat_y2 ~
#> lat_x1 (y_x) -0.043 0.054 -0.804 0.422
#> lat_y1 (y_y) 0.036 0.067 0.545 0.586
#> lat_z1 (y_z) -0.017 0.054 -0.306 0.760
#> lat_y3 ~
#> lat_x2 (y_x) -0.043 0.054 -0.804 0.422
#> lat_y2 (y_y) 0.036 0.067 0.545 0.586
#> lat_z2 (y_z) -0.017 0.054 -0.306 0.760
#> lat_z2 ~
#> lat_x1 (z_x) 0.033 0.048 0.679 0.497
#> lat_y1 (z_y) 0.003 0.048 0.063 0.950
#> lat_z1 (z_z) -0.111 0.057 -1.931 0.053
#> lat_z3 ~
#> lat_x2 (z_x) 0.033 0.048 0.679 0.497
#> lat_y2 (z_y) 0.003 0.048 0.063 0.950
#> lat_z2 (z_z) -0.111 0.057 -1.931 0.053
#>
#> Covariances:
#> Estimate Std.Err z-value P(>|z|)
#> ri_x ~~
#> ri_y -0.037 0.072 -0.510 0.610
#> ri_z 0.009 0.067 0.136 0.892
#> ri_y ~~
#> ri_z 0.090 0.070 1.299 0.194
#> lat_x1 ~~
#> lat_y1 0.083 0.067 1.241 0.215
#> lat_z1 -0.075 0.059 -1.265 0.206
#> .lat_x2 ~~
#> .lat_y2 (r_xy) -0.011 0.057 -0.197 0.843
#> .lat_z2 (r_xz) 0.000 0.051 0.004 0.997
#> .lat_x3 ~~
#> .lat_y3 (r_xy) -0.011 0.057 -0.197 0.843
#> .lat_z3 (r_xz) 0.000 0.051 0.004 0.997
#> lat_y1 ~~
#> lat_z1 -0.049 0.061 -0.802 0.423
#> .lat_y2 ~~
#> .lat_z2 (r_yz) -0.016 0.052 -0.311 0.756
#> .lat_y3 ~~
#> .lat_z3 (r_yz) -0.016 0.052 -0.311 0.756
#>
#> Intercepts:
#> Estimate Std.Err z-value P(>|z|)
#> .x_t1 (x_1_) 0.068 0.064 1.070 0.285
#> .x_t2 (x_2_) 0.067 0.063 1.055 0.292
#> .x_t3 (x_3_) 0.057 0.063 0.900 0.368
#> .y_t1 (y_1_) 0.064 0.066 0.971 0.332
#> .y_t2 (y_2_) 0.048 0.065 0.737 0.461
#> .y_t3 (y_3_) 0.032 0.065 0.484 0.628
#> .z_t1 (z_1_) -0.028 0.065 -0.427 0.670
#> .z_t2 (z_2_) -0.083 0.062 -1.327 0.185
#> .z_t3 (z_3_) -0.003 0.062 -0.045 0.964
#> ri_x 0.000
#> ri_y 0.000
#> ri_z 0.000
#> lat_x1 0.000
#> .lat_x2 0.000
#> .lat_x3 0.000
#> lat_y1 0.000
#> .lat_y2 0.000
#> .lat_y3 0.000
#> lat_z1 0.000
#> .lat_z2 0.000
#> .lat_z3 0.000
#>
#> Variances:
#> Estimate Std.Err z-value P(>|z|)
#> ri_x 0.997 0.097 10.283 0.000
#> ri_y 1.092 0.106 10.278 0.000
#> ri_z 1.134 0.092 12.281 0.000
#> lat_x1 1.031 0.091 11.328 0.000
#> .lat_x2 (e_x) 1.004 0.080 12.574 0.000
#> .lat_x3 (e_x) 1.004 0.080 12.574 0.000
#> lat_y1 1.085 0.097 11.154 0.000
#> .lat_y2 (e_y) 1.026 0.083 12.425 0.000
#> .lat_y3 (e_y) 1.026 0.083 12.425 0.000
#> lat_z1 0.946 0.078 12.136 0.000
#> .lat_z2 (e_z) 0.802 0.064 12.526 0.000
#> .lat_z3 (e_z) 0.802 0.064 12.526 0.000
#> .x_t1 0.000
#> .x_t2 0.000
#> .x_t3 0.000
#> .y_t1 0.000
#> .y_t2 0.000
#> .y_t3 0.000
#> .z_t1 0.000
#> .z_t2 0.000
#> .z_t3 0.000