--- title: "Inspecting generated SEM syntax" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{Inspecting generated SEM syntax} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- ## Demonstration of `printGM()` ### Using `printGM()` with `wsMed()` The `wsMed()` function returns a list containing `sem_model`. `printGM()` can automatically extract and format the model equations. ``` r library(wsMed) data(example_data) result1 <- wsMed( data = example_data, M_C1 = c("A1", "B1", "C1"), M_C2 = c("A2", "B2", "C2"), Y_C1 = "D1", Y_C2 = "D2" ) printGM(result1) ``` ``` ## ## Outcome Difference Model (Ydiff): ## Ydiff ~ cp*1 + b1*M1diff + d1*M1avg + b2*M2diff + d2*M2avg + b3*M3diff + d3*M3avg ## ## Mediator Difference Model (Chained Mediator - M1diff): ## M1diff ~ a1*1 ## ## Mediator Difference Model (Other Mediators): ## M2diff ~ a2*1 ## M3diff ~ a3*1 ## ## Indirect Effects: ## indirect_1 := a1 * b1 ## indirect_2 := a2 * b2 ## indirect_3 := a3 * b3 ## ## Total Indirect Effect: ## total_indirect := indirect_1 + indirect_2 + indirect_3 ## ## Total Effect: ## total_effect := cp + total_indirect ``` ### Using printGM() with GenerateModel*() If you already have preprocessed data, you can directly generate the SEM model syntax using GenerateModelPC() or other GenerateModel*() functions. ``` r # Load necessary packages library(wsMed) # Load example data data(example_data) # Prepare data prepared_data <- PrepareData( data = example_data, M_C1 = c("A1", "B1", "C1"), M_C2 = c("A2", "B2", "C2"), Y_C1 = "D1", Y_C2 = "D2" ) # Generate Model sem_model <- GenerateModelPC(prepared_data) # print Model equations printGM(sem_model) ``` ``` ## ## Outcome Difference Model (Ydiff): ## Ydiff ~ cp*1 + b1*M1diff + d1*M1avg + b2*M2diff + b3*M3diff + d2*M2avg + d3*M3avg ## ## Mediator Difference Model (Chained Mediator - M1diff): ## M1diff ~ a1*1 + b_2_1*M2diff + d_2_1*M2avg + b_3_1*M3diff + d_3_1*M3avg ## ## Mediator Difference Model (Other Mediators): ## M2diff ~ a2*1 ## M3diff ~ a3*1 ## ## Indirect Effects: ## indirect_1 := a1 * b1 ## indirect_2 := a2 * b2 ## indirect_2_1 := a2 * b_2_1 * b1 ## indirect_3 := a3 * b3 ## indirect_3_1 := a3 * b_3_1 * b1 ## ## Total Indirect Effect: ## total_indirect := indirect_1 + indirect_2 + indirect_2_1 + indirect_3 + indirect_3_1 ## ## Total Effect: ## total_effect := cp + total_indirect ``` `printGM()` displays the unstandardized model equations; requesting standardized estimates does not rewrite the SEM syntax. For standardized estimates and plots, use `summary(result1, standardized = TRUE)` and `plot(result1, standardized = TRUE)`. The same methods also support conditional results when a moderator is present; see [Standardized moderated mediation](StandardizedModeratedMediation.html).