PTSD and Distress Among the Ukrainian Population During the War: Does Media Traumatization Play a Mediating Role?

Analytical Code Report — Working Version

Author

Andrii Bova

Published

February 23, 2026

Abstract

Background. Media consumption during armed conflict may amplify the psychological burden imposed by trauma exposure.

Objective. This study tests whether media traumatization mediates the relationship between PTSD symptomatology and psychological distress in a nationally representative Ukrainian wartime sample.

Methods. Data were drawn from a nationwide CATI/CAWI survey conducted in October 2023, resulting in a final analytical sample of n = 2,712. Psychological distress was assessed using a survey-based 28-item adaptation of the SCL-90-R (SCL-28-SA), modeled as a hierarchical second-order latent factor.Post-Traumatic Stress Disorder (PTSD) and media traumatization were each operationalized as single-factor latent constructs. A full-information SEM was estimated using the WLSMV estimator with sampling weights.

Results. The hierarchical SCL-28-SA structure demonstrated acceptable fit. The indirect effect of PTSD on distress via media traumatization was statistically significant, indicating partial mediation.

Conclusions. War-related media exposure constitutes a secondary pathway through which PTSD translates into broader psychological distress.

Keywords

psychological distress, PTSD, media traumatization, structural equation modeling, mediation analysis, wartime Ukraine, SCL-28-SA, confirmatory factor analysis

Packages

Show / Hide Code
# ── Core data wrangling ───────────────────────────────────────────────────────
library(here)
library(haven)
library(dplyr)
library(purrr)
library(stringr)
library(tibble)

# ── SEM / CFA ─────────────────────────────────────────────────────────────────
library(lavaan)
library(semTools)
library(lavaanExtra)
library(lavaanPlot)
library(BifactorIndicesCalculator)
library(semPlot)

# ── Psychometrics ─────────────────────────────────────────────────────────────
library(psych)
library(sjmisc)

# ── Visualization ─────────────────────────────────────────────────────────────
library(ggcorrplot)
library(patchwork)
library(DiagrammeR)

# ── Reporting tables ──────────────────────────────────────────────────────────
library(knitr)
library(kableExtra)
library(gridExtra)

Introduction

The empirical basis of this study is data from a sociological survey conducted within > the framework of the Institute of Sociology of the National Academy of Sciences of Ukraine project, “Stress States of the Ukrainian Population in the Context of War: Prevalence, Risk Groups, and Compensation Pathways” (Project PI: Dr. Serhii Dembitskyi). The survey as carried out by the “Rating” group across Ukraine (excluding occupied territories of Crimea and Donbas) from October 6–10, 2023, using the CATI-CAVI method. The sample includes 2,767 respondents (Dembitskyi, 2023), with an overview of the primary survey results presented in Dembitskyi et al. (2025).

The present study represents an independent analytical contribution to this research program. While drawing on the same empirical dataset, the current analysis pursues a distinct research objective: testing a theoretically grounded mediation model using confirmatory factor analysis (CFA) and structural equation modeling (SEM), with the inclusion of additional measurement scales not analyzed in the original publication. Specifically, this study introduces a hierarchical second-order CFA structure for the SCL-28-SA distress instrument, a bifactor model comparison, and a formal test of media traumatization as a mediator between PTSD and psychological distress.

1 Research Objective and Hypotheses

RQ: Does media traumatization mediate the relationship between PTSD and psychological distress?

H1: PTSD positively predicts psychological distress.
H2: PTSD positively predicts media traumatization.
H3: The effect of PTSD on distress is partially mediated by media traumatization.

2 Sample

The initial survey yielded a total of N = 2,767 respondents. During the data cleaning > process, 55 individuals were excluded as they reported residing outside of Ukraine at > the time of data collection. Consequently, the final analytical sample comprises n = 2,712.

3 Measures

3.1 PTSD Symptoms

PTSD symptomatology was measured using five items reflecting core re-experiencing symptoms consistent with DSM-5 criteria (American Psychiatric Association, 2013), including recurrent distressing memories, nightmares, flashbacks, psychological distress at trauma-related cues, and physiological reactivity to trauma reminders. Each item was rated on a 5-point ordinal scale from 1 (Never) to 5 (Very often).

3.2 Media Traumatization

Media traumatization was operationalized as the degree of psychological impact experienced while consuming war-related media content. Five items captured both intrusive reactions (e.g., involuntary recall of distressing media images) and avoidance-related responses (e.g., deliberate efforts to suppress media-related thoughts), rated on a 5-point ordinal scale from 1 (Not at all) to 5 (Extremely). This operationalization parallels the intrusion and avoidance symptom clusters associated with trauma exposure (Holman et al., 2014).

3.3 Psychological Distress (SCL-28-SA)

Psychological distress was assessed using a 28-item adapted version of the Symptom Checklist-90-Revised (SCL-90-R; Derogatis, 1994), covering seven subscales: Depression (DEP), Anxiety (ANX), Somatization (SOM), General Exhaustion (EXH), Interpersonal Sensitivity (SEN), Paranoid Ideation (PAR), and Hostility (HOS), with four items per subscale. Respondents rated the frequency of each symptom on 4-point ordinal scale ranging from 1 (Never) to 4 (Almost constantly).

4 Data Preparation

This section describes the data source, sampling procedure, variable operationalization, and recoding decisions made prior to analysis.

4.1 Data Loading and Initial Processing

Show / Hide Code
# Load data from SPSS file
data_raw <- read_sav(here("stressFin.sav"))

# Respondents residing in Ukraine have NA on sd11 (country of residence)
data_raw <- data_raw %>%
  filter(is.na(sd11))

cat("Total observations after filtering:", nrow(data_raw), "\n")
Total observations after filtering: 2712 

4.2 Helper Functions

Show / Hide Code
# Extract SPSS variable label from attribute
get_label <- function(x) {
  label <- attr(x, "label")
  if (is.null(label)) return(NA_character_)
  label
}

# Build a code → label reference table for a set of variables
create_variable_labels_table <- function(data, variables) {
  labels <- sapply(data[variables], get_label)
  tibble(
    Variable_Code = names(labels),
    Question_Text = unname(labels)
  )
}

5 Descriptive Statistics

Show / Hide Code
data.frame(
  Variable_Code  = variables_to_select,
  New_Name       = new_names, 
  Question_Text  = unname(question_labels),
  stringsAsFactors = FALSE
) %>%
  mutate(
    Scale = case_when(
      str_detect(New_Name, "^dep")  ~ "Depression",
      str_detect(New_Name, "^anx")  ~ "Anxiety",
      str_detect(New_Name, "^som")  ~ "Somatization",
      str_detect(New_Name, "^exh")  ~ "General Exhaustion",
      str_detect(New_Name, "^sen")  ~ "Interpersonal Sensitivity",
      str_detect(New_Name, "^par")  ~ "Paranoid Ideation",
      str_detect(New_Name, "^hos")  ~ "Hostility",
      str_detect(New_Name, "^ptsd") ~ "PTSD",
      str_detect(New_Name, "^mt")   ~ "Media Traumatization",
      TRUE ~ "Other"
    )
  ) %>%
  select(Scale, New_Name, Variable_Code, Question_Text) %>%
  kable(
    col.names = c("Scale", "Item ID", "Original Code", "Question Text"),
    align     = c("l", "l", "l", "l")
  ) %>%
  kable_styling(
    bootstrap_options = c("striped", "hover", "condensed"),
    full_width = FALSE,
    font_size  = 13
  ) %>%
  column_spec(1, bold = TRUE, width = "3cm") %>%
  column_spec(4, width = "10cm") %>%
  collapse_rows(columns = 1, valign = "top")
Table 1: Study Variables and Item Formulations
Scale Item ID Original Code Question Text
PTSD ptsd1 str2.1 Повторювалися тривожні спогади, думки чи уявні картини стресового досвіду з минулого
ptsd2 str2.2 Повторювалися тривожні сни про стресовий досвід з минулого
ptsd3 str2.3 Виникали раптові відчуття, ніби стресова подія відбувається знову (або діяли так, наче Ви знову це переживаєте)
ptsd4 str2.4 Почувалися сильно засмученими, коли Вам щось нагадувало стресовий досвід з минулого
ptsd5 str2.5 Були фізичні реакції, коли щось нагадало Вам про стресовий досвід з минулого
Media Traumatization mt1 str3.1 Коли переглядали/ознайомлювалися, відчувалося, що це реально відбувається зараз зі мною
mt2 str3.2 Картини побаченого/прочитаного потім виринали в моїй пам'яті
mt3 str3.3 У мене були хвилі сильних почуттів з приводу побаченого/прочитаного
mt4 str3.4 Ви думали про побачене/прочитане, навіть коли не хотіли
mt5 str3.5 Ви намагалися не думати про побачене/прочитане
Depression dep1 str1.1 Пригнічений настрій, «хандра»
dep2 str1.2 Відчуття, що майбутнє безнадійне
dep3 str1.3 Думки про смерть
dep4 str1.4 Відчуття втрати сенсу життя
Anxiety anx1 str1.13 Повторювана знервованість або внутрішнє тремтіння
anx2 str1.14 Відчуття страху
anx3 str1.15 Відчуття, що з Вами станеться щось погане
anx4 str1.17 Відчуття напруженості або збудженості
Somatization som1 str1.9 Відчуття слабкості в різних частинах тіла
som2 str1.10 Сильне або прискорене серцебиття
som3 str1.11 Ускладнене дихання
som4 str1.12 Напади жару чи ознобу
General Exhaustion exh1 str1.5 Знесилення чи загальмованість
exh2 str1.6 Те, що Ви легко губите думку
exh3 str1.7 Те, що Вам важко зосередитися
exh4 str1.8 Відсутність мотивації
Interpersonal Sensitivity sen1 str1.18 Відчуття, що Ви гірші за інших
sen2 str1.19 Відчуття незручності, коли люди спостерігають за Вами або говорять про Вас
sen3 str1.20 Надмірна сором’язливість при спілкуванні з іншими
sen4 str1.21 Те, що Ваші почуття легко зачепити
Paranoid Ideation par1 str1.22 Відчуття, що більшості людей не можна довіряти
par2 str1.23 Наявність у Вас ідей, які не поділяють інші
par3 str1.24 Відчуття, що люди зловживають Вашою довірою, якщо Ви їм дозволите
par4 str1.25 Відчуття, що Вас зрадили
Hostility hos1 str1.26 Те, що Ви часто вступаєте в суперечку
hos2 str1.27 Те, що Ви кричите або шпурляєте речі
hos3 str1.28 Імпульси ламати або трощити що-небудь
hos4 str1.30 Спалахи гніву, які Ви не могли стримати

5.0.1 PTSD

Show / Hide Code
sjmisc::frq(df[, paste0("ptsd", 1:5)], weights = df$wt)
Повторювалися тривожні спогади, думки чи уявні картини стресового досвіду з минулого (ptsd1) <numeric> 
# total N=2746 valid N=2746 mean=2.58 sd=0.99

Value |        Label |    N | Raw % | Valid % | Cum. %
------------------------------------------------------
    1 |       Ніколи |  507 | 18.46 |   18.46 |  18.46
    2 | Майже ніколи |  581 | 21.16 |   21.16 |  39.62
    3 |        Іноді | 1305 | 47.52 |   47.52 |  87.14
    4 | Досить часто |  273 |  9.94 |    9.94 |  97.09
    5 |   Дуже часто |   80 |  2.91 |    2.91 | 100.00
 <NA> |         <NA> |    0 |  0.00 |    <NA> |   <NA>

Повторювалися тривожні сни про стресовий досвід з минулого (ptsd2) <numeric> 
# total N=2746 valid N=2746 mean=2.26 sd=1.04

Value |        Label |    N | Raw % | Valid % | Cum. %
------------------------------------------------------
    1 |       Ніколи |  843 | 30.70 |   30.70 |  30.70
    2 | Майже ніколи |  659 | 24.00 |   24.00 |  54.70
    3 |        Іноді | 1003 | 36.53 |   36.53 |  91.22
    4 | Досить часто |  167 |  6.08 |    6.08 |  97.31
    5 |   Дуже часто |   74 |  2.69 |    2.69 | 100.00
 <NA> |         <NA> |    0 |  0.00 |    <NA> |   <NA>

Виникали раптові відчуття, ніби стресова подія відбувається знову (або діяли так, наче Ви знову це переживаєте) (ptsd3) <numeric> 
# total N=2746 valid N=2746 mean=2.22 sd=1.01

Value |        Label |   N | Raw % | Valid % | Cum. %
-----------------------------------------------------
    1 |       Ніколи | 864 | 31.46 |   31.46 |  31.46
    2 | Майже ніколи | 686 | 24.98 |   24.98 |  56.45
    3 |        Іноді | 988 | 35.98 |   35.98 |  92.43
    4 | Досить часто | 156 |  5.68 |    5.68 |  98.11
    5 |   Дуже часто |  52 |  1.89 |    1.89 | 100.00
 <NA> |         <NA> |   0 |  0.00 |    <NA> |   <NA>

Почувалися сильно засмученими, коли Вам щось нагадувало стресовий досвід з минулого (ptsd4) <numeric> 
# total N=2747 valid N=2747 mean=2.57 sd=1.03

Value |        Label |    N | Raw % | Valid % | Cum. %
------------------------------------------------------
    1 |       Ніколи |  538 | 19.59 |   19.59 |  19.59
    2 | Майже ніколи |  584 | 21.26 |   21.26 |  40.84
    3 |        Іноді | 1238 | 45.07 |   45.07 |  85.91
    4 | Досить часто |  292 | 10.63 |   10.63 |  96.54
    5 |   Дуже часто |   95 |  3.46 |    3.46 | 100.00
 <NA> |         <NA> |    0 |  0.00 |    <NA> |   <NA>

Були фізичні реакції, коли щось нагадало Вам про стресовий досвід з минулого (ptsd5) <numeric> 
# total N=2747 valid N=2747 mean=2.29 sd=1.06

Value |        Label |    N | Raw % | Valid % | Cum. %
------------------------------------------------------
    1 |       Ніколи |  867 | 31.56 |   31.56 |  31.56
    2 | Майже ніколи |  565 | 20.57 |   20.57 |  52.13
    3 |        Іноді | 1040 | 37.86 |   37.86 |  89.99
    4 | Досить часто |  213 |  7.75 |    7.75 |  97.74
    5 |   Дуже часто |   62 |  2.26 |    2.26 | 100.00
 <NA> |         <NA> |    0 |  0.00 |    <NA> |   <NA>

5.0.2 Media Traumatization

Show / Hide Code
sjmisc::frq(df[, paste0("mt", 1:5)], weights = df$wt)
Коли переглядали/ознайомлювалися, відчувалося, що це реально відбувається зараз зі мною (mt1) <numeric> 
# total N=2746 valid N=2746 mean=2.27 sd=1.07

Value |         Label |   N | Raw % | Valid % | Cum. %
------------------------------------------------------
    1 |     Зовсім ні | 785 | 28.59 |   28.59 |  28.59
    2 |         Трохи | 889 | 32.37 |   32.37 |  60.96
    3 |       Помірно | 670 | 24.40 |   24.40 |  85.36
    4 | Досить сильно | 345 | 12.56 |   12.56 |  97.92
    5 |   Надзвичайно |  57 |  2.08 |    2.08 | 100.00
 <NA> |          <NA> |   0 |  0.00 |    <NA> |   <NA>

Картини побаченого/прочитаного потім виринали в моїй пам'яті (mt2) <numeric> 
# total N=2745 valid N=2745 mean=2.40 sd=1.01

Value |         Label |    N | Raw % | Valid % | Cum. %
-------------------------------------------------------
    1 |     Зовсім ні |  537 | 19.56 |   19.56 |  19.56
    2 |         Трохи | 1036 | 37.74 |   37.74 |  57.30
    3 |       Помірно |  754 | 27.47 |   27.47 |  84.77
    4 | Досить сильно |  362 | 13.19 |   13.19 |  97.96
    5 |   Надзвичайно |   56 |  2.04 |    2.04 | 100.00
 <NA> |          <NA> |    0 |  0.00 |    <NA> |   <NA>

У мене були хвилі сильних почуттів з приводу побаченого/прочитаного (mt3) <numeric> 
# total N=2747 valid N=2747 mean=2.82 sd=1.04

Value |         Label |   N | Raw % | Valid % | Cum. %
------------------------------------------------------
    1 |     Зовсім ні | 282 | 10.27 |   10.27 |  10.27
    2 |         Трохи | 830 | 30.21 |   30.21 |  40.48
    3 |       Помірно | 840 | 30.58 |   30.58 |  71.06
    4 | Досить сильно | 692 | 25.19 |   25.19 |  96.25
    5 |   Надзвичайно | 103 |  3.75 |    3.75 | 100.00
 <NA> |          <NA> |   0 |  0.00 |    <NA> |   <NA>

Ви думали про побачене/прочитане, навіть коли не хотіли (mt4) <numeric> 
# total N=2747 valid N=2747 mean=2.47 sd=1.05

Value |         Label |   N | Raw % | Valid % | Cum. %
------------------------------------------------------
    1 |     Зовсім ні | 522 | 19.00 |   19.00 |  19.00
    2 |         Трохи | 985 | 35.86 |   35.86 |  54.86
    3 |       Помірно | 756 | 27.52 |   27.52 |  82.38
    4 | Досить сильно | 396 | 14.42 |   14.42 |  96.80
    5 |   Надзвичайно |  88 |  3.20 |    3.20 | 100.00
 <NA> |          <NA> |   0 |  0.00 |    <NA> |   <NA>

Ви намагалися не думати про побачене/прочитане (mt5) <numeric> 
# total N=2746 valid N=2746 mean=2.41 sd=1.05

Value |         Label |   N | Raw % | Valid % | Cum. %
------------------------------------------------------
    1 |     Зовсім ні | 594 | 21.63 |   21.63 |  21.63
    2 |         Трохи | 947 | 34.49 |   34.49 |  56.12
    3 |       Помірно | 787 | 28.66 |   28.66 |  84.78
    4 | Досить сильно | 329 | 11.98 |   11.98 |  96.76
    5 |   Надзвичайно |  89 |  3.24 |    3.24 | 100.00
 <NA> |          <NA> |   0 |  0.00 |    <NA> |   <NA>

5.0.3 Distress Subscales

Show / Hide Code
cat("**Depression**\n")
**Depression**
Show / Hide Code
sjmisc::frq(df[, paste0("dep", 1:4)], weights = df$wt)
Пригнічений настрій, «хандра» (dep1) <numeric> 
# total N=2746 valid N=2746 mean=2.20 sd=0.78

Value |          Label |    N | Raw % | Valid % | Cum. %
--------------------------------------------------------
    1 |         Ніколи |  458 | 16.68 |   16.68 |  16.68
    2 |         Зрідка | 1447 | 52.69 |   52.69 |  69.37
    3 |     Періодично |  679 | 24.73 |   24.73 |  94.10
    4 | Майже постійно |  162 |  5.90 |    5.90 | 100.00
 <NA> |           <NA> |    0 |  0.00 |    <NA> |   <NA>

Відчуття, що майбутнє безнадійне (dep2) <numeric> 
# total N=2746 valid N=2746 mean=1.85 sd=0.90

Value |          Label |    N | Raw % | Valid % | Cum. %
--------------------------------------------------------
    1 |         Ніколи | 1198 | 43.63 |   43.63 |  43.63
    2 |         Зрідка |  933 | 33.98 |   33.98 |  77.60
    3 |     Періодично |  454 | 16.53 |   16.53 |  94.14
    4 | Майже постійно |  161 |  5.86 |    5.86 | 100.00
 <NA> |           <NA> |    0 |  0.00 |    <NA> |   <NA>

Думки про смерть (dep3) <numeric> 
# total N=2748 valid N=2748 mean=1.72 sd=0.82

Value |          Label |    N | Raw % | Valid % | Cum. %
--------------------------------------------------------
    1 |         Ніколи | 1338 | 48.69 |   48.69 |  48.69
    2 |         Зрідка |  936 | 34.06 |   34.06 |  82.75
    3 |     Періодично |  386 | 14.05 |   14.05 |  96.80
    4 | Майже постійно |   88 |  3.20 |    3.20 | 100.00
 <NA> |           <NA> |    0 |  0.00 |    <NA> |   <NA>

Відчуття втрати сенсу життя (dep4) <numeric> 
# total N=2746 valid N=2746 mean=1.61 sd=0.84

Value |          Label |    N | Raw % | Valid % | Cum. %
--------------------------------------------------------
    1 |         Ніколи | 1599 | 58.23 |   58.23 |  58.23
    2 |         Зрідка |  715 | 26.04 |   26.04 |  84.27
    3 |     Періодично |  327 | 11.91 |   11.91 |  96.18
    4 | Майже постійно |  105 |  3.82 |    3.82 | 100.00
 <NA> |           <NA> |    0 |  0.00 |    <NA> |   <NA>
Show / Hide Code
cat("**Anxiety**\n")
**Anxiety**
Show / Hide Code
sjmisc::frq(df[, paste0("anx", 1:4)], weights = df$wt)
Повторювана знервованість або внутрішнє тремтіння (anx1) <numeric> 
# total N=2746 valid N=2746 mean=1.96 sd=0.81

Value |          Label |    N | Raw % | Valid % | Cum. %
--------------------------------------------------------
    1 |         Ніколи |  841 | 30.63 |   30.63 |  30.63
    2 |         Зрідка | 1271 | 46.29 |   46.29 |  76.91
    3 |     Періодично |  523 | 19.05 |   19.05 |  95.96
    4 | Майже постійно |  111 |  4.04 |    4.04 | 100.00
 <NA> |           <NA> |    0 |  0.00 |    <NA> |   <NA>

Відчуття страху (anx2) <numeric> 
# total N=2746 valid N=2746 mean=2.22 sd=0.79

Value |          Label |    N | Raw % | Valid % | Cum. %
--------------------------------------------------------
    1 |         Ніколи |  449 | 16.35 |   16.35 |  16.35
    2 |         Зрідка | 1429 | 52.04 |   52.04 |  68.39
    3 |     Періодично |  697 | 25.38 |   25.38 |  93.77
    4 | Майже постійно |  171 |  6.23 |    6.23 | 100.00
 <NA> |           <NA> |    0 |  0.00 |    <NA> |   <NA>

Відчуття, що з Вами станеться щось погане (anx3) <numeric> 
# total N=2747 valid N=2747 mean=1.92 sd=0.79

Value |          Label |    N | Raw % | Valid % | Cum. %
--------------------------------------------------------
    1 |         Ніколи |  863 | 31.42 |   31.42 |  31.42
    2 |         Зрідка | 1346 | 49.00 |   49.00 |  80.41
    3 |     Періодично |  434 | 15.80 |   15.80 |  96.21
    4 | Майже постійно |  104 |  3.79 |    3.79 | 100.00
 <NA> |           <NA> |    0 |  0.00 |    <NA> |   <NA>

Відчуття напруженості або збудженості (anx4) <numeric> 
# total N=2747 valid N=2747 mean=2.21 sd=0.74

Value |          Label |    N | Raw % | Valid % | Cum. %
--------------------------------------------------------
    1 |         Ніколи |  395 | 14.38 |   14.38 |  14.38
    2 |         Зрідка | 1508 | 54.90 |   54.90 |  69.28
    3 |     Періодично |  708 | 25.77 |   25.77 |  95.05
    4 | Майже постійно |  136 |  4.95 |    4.95 | 100.00
 <NA> |           <NA> |    0 |  0.00 |    <NA> |   <NA>
Show / Hide Code
cat("**Somatization**\n")
**Somatization**
Show / Hide Code
sjmisc::frq(df[, paste0("som", 1:4)], weights = df$wt)
Відчуття слабкості в різних частинах тіла (som1) <numeric> 
# total N=2746 valid N=2746 mean=2.27 sd=0.80

Value |          Label |    N | Raw % | Valid % | Cum. %
--------------------------------------------------------
    1 |         Ніколи |  419 | 15.26 |   15.26 |  15.26
    2 |         Зрідка | 1348 | 49.09 |   49.09 |  64.35
    3 |     Періодично |  794 | 28.91 |   28.91 |  93.26
    4 | Майже постійно |  185 |  6.74 |    6.74 | 100.00
 <NA> |           <NA> |    0 |  0.00 |    <NA> |   <NA>

Сильне або прискорене серцебиття (som2) <numeric> 
# total N=2745 valid N=2745 mean=2.17 sd=0.78

Value |          Label |    N | Raw % | Valid % | Cum. %
--------------------------------------------------------
    1 |         Ніколи |  497 | 18.11 |   18.11 |  18.11
    2 |         Зрідка | 1411 | 51.40 |   51.40 |  69.51
    3 |     Періодично |  699 | 25.46 |   25.46 |  94.97
    4 | Майже постійно |  138 |  5.03 |    5.03 | 100.00
 <NA> |           <NA> |    0 |  0.00 |    <NA> |   <NA>

Ускладнене дихання (som3) <numeric> 
# total N=2747 valid N=2747 mean=1.77 sd=0.81

Value |          Label |    N | Raw % | Valid % | Cum. %
--------------------------------------------------------
    1 |         Ніколи | 1210 | 44.05 |   44.05 |  44.05
    2 |         Зрідка | 1044 | 38.01 |   38.01 |  82.05
    3 |     Періодично |  415 | 15.11 |   15.11 |  97.16
    4 | Майже постійно |   78 |  2.84 |    2.84 | 100.00
 <NA> |           <NA> |    0 |  0.00 |    <NA> |   <NA>

Напади жару чи ознобу (som4) <numeric> 
# total N=2746 valid N=2746 mean=1.76 sd=0.76

Value |          Label |    N | Raw % | Valid % | Cum. %
--------------------------------------------------------
    1 |         Ніколи | 1147 | 41.77 |   41.77 |  41.77
    2 |         Зрідка | 1190 | 43.34 |   43.34 |  85.11
    3 |     Періодично |  338 | 12.31 |   12.31 |  97.41
    4 | Майже постійно |   71 |  2.59 |    2.59 | 100.00
 <NA> |           <NA> |    0 |  0.00 |    <NA> |   <NA>
Show / Hide Code
cat("**General Exhaustion**\n")
**General Exhaustion**
Show / Hide Code
sjmisc::frq(df[, paste0("exh", 1:4)], weights = df$wt)
Знесилення чи загальмованість (exh1) <numeric> 
# total N=2746 valid N=2746 mean=2.16 sd=0.80

Value |          Label |    N | Raw % | Valid % | Cum. %
--------------------------------------------------------
    1 |         Ніколи |  539 | 19.63 |   19.63 |  19.63
    2 |         Зрідка | 1395 | 50.80 |   50.80 |  70.43
    3 |     Періодично |  655 | 23.85 |   23.85 |  94.28
    4 | Майже постійно |  157 |  5.72 |    5.72 | 100.00
 <NA> |           <NA> |    0 |  0.00 |    <NA> |   <NA>

Те, що Ви легко губите думку (exh2) <numeric> 
# total N=2747 valid N=2747 mean=1.98 sd=0.79

Value |          Label |    N | Raw % | Valid % | Cum. %
--------------------------------------------------------
    1 |         Ніколи |  770 | 28.03 |   28.03 |  28.03
    2 |         Зрідка | 1381 | 50.27 |   50.27 |  78.30
    3 |     Періодично |  486 | 17.69 |   17.69 |  96.00
    4 | Майже постійно |  110 |  4.00 |    4.00 | 100.00
 <NA> |           <NA> |    0 |  0.00 |    <NA> |   <NA>

Те, що Вам важко зосередитися (exh3) <numeric> 
# total N=2747 valid N=2747 mean=2.11 sd=0.75

Value |          Label |    N | Raw % | Valid % | Cum. %
--------------------------------------------------------
    1 |         Ніколи |  533 | 19.40 |   19.40 |  19.40
    2 |         Зрідка | 1494 | 54.39 |   54.39 |  73.79
    3 |     Періодично |  609 | 22.17 |   22.17 |  95.96
    4 | Майже постійно |  111 |  4.04 |    4.04 | 100.00
 <NA> |           <NA> |    0 |  0.00 |    <NA> |   <NA>

Відсутність мотивації (exh4) <numeric> 
# total N=2746 valid N=2746 mean=2.05 sd=0.86

Value |          Label |    N | Raw % | Valid % | Cum. %
--------------------------------------------------------
    1 |         Ніколи |  784 | 28.55 |   28.55 |  28.55
    2 |         Зрідка | 1196 | 43.55 |   43.55 |  72.10
    3 |     Періодично |  609 | 22.18 |   22.18 |  94.28
    4 | Майже постійно |  157 |  5.72 |    5.72 | 100.00
 <NA> |           <NA> |    0 |  0.00 |    <NA> |   <NA>
Show / Hide Code
cat("**Interpersonal Sensitivity**\n")
**Interpersonal Sensitivity**
Show / Hide Code
sjmisc::frq(df[, paste0("sen", 1:4)], weights = df$wt)
Відчуття, що Ви гірші за інших (sen1) <numeric> 
# total N=2747 valid N=2747 mean=1.72 sd=0.83

Value |          Label |    N | Raw % | Valid % | Cum. %
--------------------------------------------------------
    1 |         Ніколи | 1330 | 48.42 |   48.42 |  48.42
    2 |         Зрідка |  982 | 35.75 |   35.75 |  84.16
    3 |     Періодично |  316 | 11.50 |   11.50 |  95.67
    4 | Майже постійно |  119 |  4.33 |    4.33 | 100.00
 <NA> |           <NA> |    0 |  0.00 |    <NA> |   <NA>

Відчуття незручності, коли люди спостерігають за Вами або говорять про Вас (sen2) <numeric> 
# total N=2746 valid N=2746 mean=2.09 sd=0.86

Value |          Label |    N | Raw % | Valid % | Cum. %
--------------------------------------------------------
    1 |         Ніколи |  685 | 24.95 |   24.95 |  24.95
    2 |         Зрідка | 1327 | 48.32 |   48.32 |  73.27
    3 |     Періодично |  526 | 19.16 |   19.16 |  92.43
    4 | Майже постійно |  208 |  7.57 |    7.57 | 100.00
 <NA> |           <NA> |    0 |  0.00 |    <NA> |   <NA>

Надмірна сором’язливість при спілкуванні з іншими (sen3) <numeric> 
# total N=2745 valid N=2745 mean=1.88 sd=0.81

Value |          Label |    N | Raw % | Valid % | Cum. %
--------------------------------------------------------
    1 |         Ніколи |  976 | 35.56 |   35.56 |  35.56
    2 |         Зрідка | 1247 | 45.43 |   45.43 |  80.98
    3 |     Періодично |  405 | 14.75 |   14.75 |  95.74
    4 | Майже постійно |  117 |  4.26 |    4.26 | 100.00
 <NA> |           <NA> |    0 |  0.00 |    <NA> |   <NA>

Те, що Ваші почуття легко зачепити (sen4) <numeric> 
# total N=2746 valid N=2746 mean=2.28 sd=0.82

Value |          Label |    N | Raw % | Valid % | Cum. %
--------------------------------------------------------
    1 |         Ніколи |  391 | 14.24 |   14.24 |  14.24
    2 |         Зрідка | 1437 | 52.33 |   52.33 |  66.57
    3 |     Періодично |  669 | 24.36 |   24.36 |  90.93
    4 | Майже постійно |  249 |  9.07 |    9.07 | 100.00
 <NA> |           <NA> |    0 |  0.00 |    <NA> |   <NA>
Show / Hide Code
cat("**Paranoid Ideation**\n")
**Paranoid Ideation**
Show / Hide Code
sjmisc::frq(df[, paste0("par", 1:4)], weights = df$wt)
Відчуття, що більшості людей не можна довіряти (par1) <numeric> 
# total N=2747 valid N=2747 mean=2.44 sd=0.90

Value |          Label |    N | Raw % | Valid % | Cum. %
--------------------------------------------------------
    1 |         Ніколи |  379 | 13.80 |   13.80 |  13.80
    2 |         Зрідка | 1167 | 42.48 |   42.48 |  56.28
    3 |     Періодично |  806 | 29.34 |   29.34 |  85.62
    4 | Майже постійно |  395 | 14.38 |   14.38 | 100.00
 <NA> |           <NA> |    0 |  0.00 |    <NA> |   <NA>

Наявність у Вас ідей, які не поділяють інші (par2) <numeric> 
# total N=2746 valid N=2746 mean=2.07 sd=0.77

Value |          Label |    N | Raw % | Valid % | Cum. %
--------------------------------------------------------
    1 |         Ніколи |  595 | 21.67 |   21.67 |  21.67
    2 |         Зрідка | 1477 | 53.79 |   53.79 |  75.46
    3 |     Періодично |  556 | 20.25 |   20.25 |  95.70
    4 | Майже постійно |  118 |  4.30 |    4.30 | 100.00
 <NA> |           <NA> |    0 |  0.00 |    <NA> |   <NA>

Відчуття, що люди зловживають Вашою довірою, якщо Ви їм дозволите (par3) <numeric> 
# total N=2747 valid N=2747 mean=2.27 sd=0.84

Value |          Label |    N | Raw % | Valid % | Cum. %
--------------------------------------------------------
    1 |         Ніколи |  462 | 16.82 |   16.82 |  16.82
    2 |         Зрідка | 1323 | 48.16 |   48.16 |  64.98
    3 |     Періодично |  721 | 26.25 |   26.25 |  91.23
    4 | Майже постійно |  241 |  8.77 |    8.77 | 100.00
 <NA> |           <NA> |    0 |  0.00 |    <NA> |   <NA>

Відчуття, що Вас зрадили (par4) <numeric> 
# total N=2747 valid N=2747 mean=1.80 sd=0.83

Value |          Label |    N | Raw % | Valid % | Cum. %
--------------------------------------------------------
    1 |         Ніколи | 1137 | 41.39 |   41.39 |  41.39
    2 |         Зрідка | 1136 | 41.35 |   41.35 |  82.74
    3 |     Періодично |  352 | 12.81 |   12.81 |  95.56
    4 | Майже постійно |  122 |  4.44 |    4.44 | 100.00
 <NA> |           <NA> |    0 |  0.00 |    <NA> |   <NA>
Show / Hide Code
cat("**Hostility**\n")
**Hostility**
Show / Hide Code
sjmisc::frq(df[, paste0("hos", 1:4)], weights = df$wt)
Те, що Ви часто вступаєте в суперечку (hos1) <numeric> 
# total N=2746 valid N=2746 mean=1.97 sd=0.72

Value |          Label |    N | Raw % | Valid % | Cum. %
--------------------------------------------------------
    1 |         Ніколи |  676 | 24.62 |   24.62 |  24.62
    2 |         Зрідка | 1540 | 56.08 |   56.08 |  80.70
    3 |     Періодично |  459 | 16.72 |   16.72 |  97.41
    4 | Майже постійно |   71 |  2.59 |    2.59 | 100.00
 <NA> |           <NA> |    0 |  0.00 |    <NA> |   <NA>

Те, що Ви кричите або шпурляєте речі (hos2) <numeric> 
# total N=2746 valid N=2746 mean=1.57 sd=0.71

Value |          Label |    N | Raw % | Valid % | Cum. %
--------------------------------------------------------
    1 |         Ніколи | 1489 | 54.22 |   54.22 |  54.22
    2 |         Зрідка |  989 | 36.02 |   36.02 |  90.24
    3 |     Періодично |  223 |  8.12 |    8.12 |  98.36
    4 | Майже постійно |   45 |  1.64 |    1.64 | 100.00
 <NA> |           <NA> |    0 |  0.00 |    <NA> |   <NA>

Імпульси ламати або трощити що-небудь (hos3) <numeric> 
# total N=2746 valid N=2746 mean=1.35 sd=0.65

Value |          Label |    N | Raw % | Valid % | Cum. %
--------------------------------------------------------
    1 |         Ніколи | 2015 | 73.38 |   73.38 |  73.38
    2 |         Зрідка |  558 | 20.32 |   20.32 |  93.70
    3 |     Періодично |  126 |  4.59 |    4.59 |  98.29
    4 | Майже постійно |   47 |  1.71 |    1.71 | 100.00
 <NA> |           <NA> |    0 |  0.00 |    <NA> |   <NA>

Спалахи гніву, які Ви не могли стримати (hos4) <numeric> 
# total N=2746 valid N=2746 mean=1.83 sd=0.77

Value |          Label |    N | Raw % | Valid % | Cum. %
--------------------------------------------------------
    1 |         Ніколи |  987 | 35.94 |   35.94 |  35.94
    2 |         Зрідка | 1319 | 48.03 |   48.03 |  83.98
    3 |     Періодично |  350 | 12.75 |   12.75 |  96.72
    4 | Майже постійно |   90 |  3.28 |    3.28 | 100.00
 <NA> |           <NA> |    0 |  0.00 |    <NA> |   <NA>
Show / Hide Code
na_check <- sapply(data_raw[variables_to_select], function(x) sum(is.na(x)))

data.frame(
  Count_NA      = na_check,
  Percentage_NA = round(na_check / nrow(data_raw) * 100, 2)
) %>%
  kable(
    col.names = c("Variable", "Count NA", "% NA"),
    align     = c("l", "r", "r")
  ) %>%
  kable_styling(
    bootstrap_options = c("striped", "hover", "condensed"),
    full_width = FALSE,
    font_size  = 13
  )
Variable Count NA % NA
str2.1 0 0
str2.2 0 0
str2.3 0 0
str2.4 0 0
str2.5 0 0
str3.1 0 0
str3.2 0 0
str3.3 0 0
str3.4 0 0
str3.5 0 0
str1.1 0 0
str1.2 0 0
str1.3 0 0
str1.4 0 0
str1.13 0 0
str1.14 0 0
str1.15 0 0
str1.17 0 0
str1.9 0 0
str1.10 0 0
str1.11 0 0
str1.12 0 0
str1.5 0 0
str1.6 0 0
str1.7 0 0
str1.8 0 0
str1.18 0 0
str1.19 0 0
str1.20 0 0
str1.21 0 0
str1.22 0 0
str1.23 0 0
str1.24 0 0
str1.25 0 0
str1.26 0 0
str1.27 0 0
str1.28 0 0
str1.30 0 0

6 PTSD

Show / Hide Code
ptsd_items <- paste0("ptsd", 1:5)

poly_result_ptsd <- polychoric(df[, ptsd_items], weight = df$wt)
poly_matrix_ptsd <- poly_result_ptsd$rho

ggcorrplot(
  poly_matrix_ptsd,
  method        = "square",
  type          = "full",
  lab           = TRUE,
  lab_size      = 4,
  tl.cex        = 10,
  colors        = c("#4575B4","white","#D73027"),
  outline.color = "white"
) +
  labs(
    title    = "Polychoric Correlation Matrix — PTSD Items",
    subtitle = "Items ptsd1–ptsd5 (sampling weights applied)",
    fill     = "r (polychoric)"
  )
Figure 1: Polychoric Correlation Matrix of PTSD Items
Show / Hide Code
# Error covariance between ptsr2 and ptsr3 added based on local misfit diagnostics
model.scl28_h.ptsd <- "PTSD =~ ptsd1 + ptsd2 + ptsd3 + ptsd4 + ptsd5
                               ptsd2 ~~ ptsd3"

fit.cfa.ptsd <- cfa(
  model            = model.scl28_h.ptsd,
  data             = df,
  estimator        = "WLSMV",
  ordered          = TRUE,
  sampling.weights = "wt",
  std.lv           = TRUE,
  se               = "robust"
)

fit_indices.ptsd <- fitMeasures(fit.cfa.ptsd, c(
  "chisq.scaled","df.scaled","pvalue.scaled","rmsea.robust",
  "rmsea.ci.lower.robust","rmsea.ci.upper.robust","wrmr",
  "cfi.robust","tli.robust","srmr"
))

data.frame(
  `Fit Index` = names(fit_indices.ptsd),
  Value       = round(as.numeric(fit_indices.ptsd), 3),
  check.names = FALSE
) %>%
  kable(col.names = c("Fit Index","Value"), align = "lc") %>%
  kable_styling(bootstrap_options = c("striped","hover"), full_width = FALSE, font_size = 13)
Table 2: Robust Model Fit Indices — PTSD Measurement Model
Fit Index Value
chisq.scaled 37.181
df.scaled 4.000
pvalue.scaled 0.000
rmsea.robust 0.060
rmsea.ci.lower.robust 0.042
rmsea.ci.upper.robust 0.079
wrmr 0.646
cfi.robust 0.995
tli.robust 0.988
srmr 0.012
Show / Hide Code
pl_ptsd <- nice_lavaanPlot(
  model = fit.cfa.ptsd,
  coefs = TRUE, stand = TRUE, covs = TRUE,
  stars = c("coefs","covs","latent")
)

pl_ptsd
Figure 2: Path Diagram — PTSD Measurement Model (Standardized)
Show / Hide Code
save_png(pl_ptsd, "ptsd_path_diagram.png")
Show / Hide Code
reliability.ptsd <- semTools::reliability(fit.cfa.ptsd)

as.data.frame(t(round(reliability.ptsd, 3))) %>%
  rownames_to_column("Subscale") %>%
  select(Subscale, alpha, alpha.ord, omega3, avevar) %>%
  setNames(c("Subscale","α (Cronbach)","α (Ordinal)","ω (McDonald)","AVE")) %>%
  kable(align = c("l","c","c","c","c"), digits = 3) %>%
  kable_styling(bootstrap_options = c("striped","hover"), full_width = FALSE, font_size = 13)
Table 3: Reliability and Validity Indices — PTSD Measurement Model
Subscale α (Cronbach) α (Ordinal) ω (McDonald) AVE
PTSD 0.871 0.901 0.86 0.642

Note. AVE = Average Variance Extracted. ω ≥ .70 indicates acceptable reliability.

Show / Hide Code
message("Categorical Omega (ω) for PTSD:")

compRelSEM(fit.cfa.ptsd)
PTSD 
0.86 

7 Media Traumatization

Show / Hide Code
mt_items <- paste0("mt", 1:5)

poly_result_mt <- polychoric(df[, mt_items], weight = df$wt, smooth = TRUE)
poly_matrix_mt <- poly_result_mt$rho

ggcorrplot(
  poly_matrix_mt,
  method        = "square",
  type          = "full",
  lab           = TRUE,
  lab_size      = 4,
  tl.cex        = 10,
  colors        = c("#4575B4", "white", "#D73027"),
  outline.color = "white"
) +
  labs(
    title    = "Polychoric Correlation Matrix — Media Traumatization Items",
    subtitle = "Items mt1–mt5 (sampling weights applied)",
    fill     = "r (polychoric)"
  )
Figure 3: Polychoric Correlation Matrix of Media Traumatization Items
Show / Hide Code
# Error covariance between mt1 and mt2 added to account for item overlap
model.mt <- "
  MT =~ mt1 + mt2 + mt3 + mt4 + mt5
        mt1 ~~ mt2
"

fit.cfa.mt <- cfa(
  model            = model.mt,
  data             = df,
  estimator        = "WLSMV",
  ordered          = TRUE,
  sampling.weights = "wt",
  std.lv           = TRUE,
  se               = "robust"
)

fit_indices.mt <- fitMeasures(fit.cfa.mt, c(
  "chisq.scaled", "df.scaled", "pvalue.scaled", "rmsea.robust",
  "rmsea.ci.lower.robust", "rmsea.ci.upper.robust", "wrmr",
  "cfi.robust", "tli.robust", "srmr"
))

data.frame(
  `Fit Index` = names(fit_indices.mt),
  Value       = round(as.numeric(fit_indices.mt), 3),
  check.names = FALSE
) %>%
  kable(col.names = c("Fit Index", "Value"), align = "lc") %>%
  kable_styling(bootstrap_options = c("striped", "hover"), full_width = FALSE, font_size = 13)
Table 4: Robust Model Fit Indices — Media Traumatization Measurement Model
Fit Index Value
chisq.scaled 16.705
df.scaled 4.000
pvalue.scaled 0.002
rmsea.robust 0.037
rmsea.ci.lower.robust 0.019
rmsea.ci.upper.robust 0.056
wrmr 0.468
cfi.robust 0.997
tli.robust 0.994
srmr 0.010
Show / Hide Code
pl_mt <- nice_lavaanPlot(
  model = fit.cfa.mt,
  coefs = TRUE, stand = TRUE, covs = TRUE,
  stars = c("coefs", "covs", "latent")
)

pl_mt
Figure 4: Path Diagram — Media Traumatization Measurement Model (Standardized)
Show / Hide Code
save_png(pl_mt, "mt_path_diagram.png")
Show / Hide Code
reliability.mt <- semTools::reliability(fit.cfa.mt)

as.data.frame(t(round(reliability.mt, 3))) %>%
  rownames_to_column("Subscale") %>%
  select(Subscale, alpha, alpha.ord, omega3, avevar) %>%
  setNames(c("Subscale", "α (Cronbach)", "α (Ordinal)", "ω (McDonald)", "AVE")) %>%
  kable(align = c("l", "c", "c", "c", "c"), digits = 3) %>%
  kable_styling(bootstrap_options = c("striped", "hover"), full_width = FALSE, font_size = 13)
Table 5: Reliability and Validity Indices — Media Traumatization Measurement Model
Subscale α (Cronbach) α (Ordinal) ω (McDonald) AVE
MT 0.815 0.841 0.798 0.522

Note. AVE = Average Variance Extracted. ω ≥ .70 indicates acceptable reliability.

Show / Hide Code
message("Categorical Omega (ω) for Media Traumatization:")
compRelSEM(fit.cfa.mt)
   MT 
0.798 

8 Psychological Distress (SCL-28-SA)

8.1 Unidimensionality of Individual Subscales

What this section tests. Before evaluating the full hierarchical structure, we verify the unidimensionality of each subscale in isolation. A well-fitting single-factor model (CFI ≥ .95, RMSEA ≤ .06) confirms that the four items within each domain are locally unidimensional — a prerequisite for their use as first-order factors in the hierarchical model.

Show / Hide Code
#| label: tbl-subscale-fit
#| tbl-cap: "Fit Indices for Individual Subscale Single-Factor Models"

# 1. Визначення моделей
models_list <- list(
  Depression   = "DEP =~ dep1 + dep2 + dep3 + dep4",
  Anxiety      = "ANX =~ anx1 + anx2 + anx3 + anx4",
  Somatization = "SOM =~ som1 + som2 + som3 + som4",
  Exhaustion   = "EXH =~ exh1 + exh2 + exh3 + exh4",
  Sensitivity  = "SEN =~ sen1 + sen2 + sen3 + sen4",
  Paranoid     = "PAR =~ par1 + par2 + par3 + par4",
  Hostility    = "HOS =~ hos1 + hos2 + hos3 + hos4"
)

# 2. Функція для запуску CFA
run_single_cfa <- function(model_syntax) {
  lavaan::cfa(
    model            = model_syntax,
    data             = df,
    estimator        = "WLSMV",
    ordered          = TRUE,
    sampling.weights = "wt",
    std.lv           = TRUE,
    se               = "robust"
  )
}

# 3. Функція для збору робастних метрик (ВИПРАВЛЕНА)
get_robust_metrics <- function(fit_obj) {
  m <- lavaan::fitMeasures(fit_obj)
  
  selected <- c(
    chisq  = "chisq.scaled", 
    df     = "df.scaled", 
    pvalue = "pvalue.scaled", 
    cfi    = "cfi.robust", 
    tli    = "tli.robust", 
    rmsea  = "rmsea.robust", 
    srmr   = "srmr"
  )
  
  # Витягуємо значення
  out <- m[selected]
  # ПРИМУСОВО даємо короткі імена для подальшого select
  names(out) <- names(selected)
  
  return(round(out, 3))
}

# 4. Виконання розрахунків
fits_list   <- lapply(models_list, run_single_cfa)
# Створюємо датафрейм (тепер назви колонок будуть chisq, df...)
fit_results <- as.data.frame(t(sapply(fits_list, get_robust_metrics)))
fit_results$Subscale <- rownames(fit_results)

# 5. Побудова таблиці
fit_results %>%
  dplyr::select(Subscale, chisq, df, pvalue, cfi, tli, rmsea, srmr) %>%
  knitr::kable(
    format = "html",
    escape = FALSE,
    row.names = FALSE,
    col.names = c(
      "Subscale", 
      "χ²<br>(Scaled)", 
      "df", 
      "p-value<br>(Scaled)",
      "CFI<br>(Robust)",
      "TLI<br>(Robust)", 
      "RMSEA<br>(Robust)", 
      "SRMR"
    ),
    align  = "lccccccc",
    digits = 3
  ) %>%
  kableExtra::kable_styling(
    bootstrap_options = c("striped", "hover", "condensed"), 
    full_width = FALSE, 
    font_size = 13
  ) %>%
  kableExtra::column_spec(1, width = "140px") %>%
  kableExtra::column_spec(2:4, width = "90px") %>%
  kableExtra::column_spec(5:8, width = "110px")
Table 6: Fit Indices for Individual Subscale Single-Factor Models
Subscale χ²
(Scaled)
df p-value
(Scaled)
CFI
(Robust)
TLI
(Robust)
RMSEA
(Robust)
SRMR
Depression 6.42 2 0.040 0.997 0.992 0.041 0.011
Anxiety 32.27 2 0.000 0.986 0.957 0.092 0.022
Somatization 7.37 2 0.025 0.998 0.993 0.037 0.010
Exhaustion 25.90 2 0.000 0.985 0.956 0.087 0.022
Sensitivity 5.52 2 0.063 0.998 0.993 0.033 0.010
Paranoid 3.58 2 0.167 0.999 0.996 0.020 0.009
Hostility 5.39 2 0.068 0.997 0.992 0.038 0.012

Note. CFI ≥ .95 and RMSEA ≤ .06 indicate acceptable unidimensionality.

Show / Hide Code
get_loadings <- function(fit_obj) {
  parameterEstimates(fit_obj, standardized = TRUE) %>%
    filter(op == "=~") %>%
    select(Scale = lhs, Item = rhs, Beta = std.all, p_value = pvalue)
}

all_loadings <- imap_dfr(fits_list, ~ get_loadings(.x)) %>%
  mutate(
    p_fmt = case_when(
      p_value < .001 ~ "< .001",
      TRUE           ~ sprintf("%.3f", p_value)
    )
  ) %>%
  select(Scale, Item, Beta, p_fmt)

kable(all_loadings,
      digits    = 3,
      col.names = c("Scale","Item","β (std.)","p-value"),
      align     = "llcc") %>%
  kable_styling(bootstrap_options = c("striped","hover")) %>%
  collapse_rows(columns = 1, valign = "top")
Table 7: Standardized Factor Loadings — Individual Subscale Models
Scale Item β (std.) p-value
DEP dep1 0.632 < .001
dep2 0.734 < .001
dep3 0.640 < .001
dep4 0.862 < .001
ANX anx1 0.756 < .001
anx2 0.728 < .001
anx3 0.660 < .001
anx4 0.681 < .001
SOM som1 0.654 < .001
som2 0.691 < .001
som3 0.762 < .001
som4 0.699 < .001
EXH exh1 0.679 < .001
exh2 0.700 < .001
exh3 0.752 < .001
exh4 0.601 < .001
SEN sen1 0.659 < .001
sen2 0.730 < .001
sen3 0.682 < .001
sen4 0.589 < .001
PAR par1 0.620 < .001
par2 0.465 < .001
par3 0.697 < .001
par4 0.669 < .001
HOS hos1 0.559 < .001
hos2 0.736 < .001
hos3 0.687 < .001
hos4 0.745 < .001

Note. All loadings estimated with robust WLSMV; sampling weights applied.

8.2 Single Factor (M0)

8.2.1 Polychoric Correlations

What this section tests.
Because all SCL-28-SA items are measured on a 4-point ordinal scale, Pearson correlations underestimate true associations due to categorization artifacts. Polychoric correlations recover the underlying continuous latent-variable correlations and provide the appropriate input for WLSMV-based CFA. The full 28 × 28 polychoric matrix is visualized as a heatmap (no clustering imposed) to allow inspection of inter-item relationships across subscales.

Prerequisite for CFA: Polychoric correlations must be computable (no zero-variance items, no perfect collinearity) and the resulting matrix must be positive definite.

Show / Hide Code
scl_items <- c(
  paste0("dep", 1:4), # Depression
  paste0("anx", 1:4), # Anxiety
  paste0("som", 1:4), # Somatization
  paste0("exh", 1:4), # General Exhaustion
  paste0("sen", 1:4), # Interpersonal Sensitivity
  paste0("par", 1:4), # Paranoid Ideation
  paste0("hos", 1:4)  # Hostility
)


poly_result <- polychoric(df[, scl_items], weight = df$wt)
poly_matrix  <- poly_result$rho

ggcorrplot(
  poly_matrix,
  method        = "square",
  type          = "full",
  lab           = FALSE,
  tl.cex        = 7,
  colors        = c("#4575B4", "white", "#D73027"),
  outline.color = "white"
) +
  labs(
       fill     = "r (polychoric)"
  )
Figure 5: Polychoric Correlation Matrix of SCL-28-SA Items (ordered by subscale)
Show / Hide Code
kable(round(poly_matrix, 2), align = "c") %>%
  kable_styling(
    bootstrap_options = c("striped", "condensed"),
    font_size  = 11,
    full_width = TRUE
  ) %>%
  scroll_box(width = "100%", height = "400px")
Table 8: Polychoric Correlation Matrix of SCL-28-SA Items
dep1 dep2 dep3 dep4 anx1 anx2 anx3 anx4 som1 som2 som3 som4 exh1 exh2 exh3 exh4 sen1 sen2 sen3 sen4 par1 par2 par3 par4 hos1 hos2 hos3 hos4
dep1 1.00 0.47 0.42 0.53 0.52 0.50 0.47 0.50 0.44 0.39 0.37 0.46 0.57 0.39 0.46 0.49 0.42 0.34 0.29 0.45 0.29 0.25 0.32 0.37 0.28 0.34 0.35 0.41
dep2 0.47 1.00 0.45 0.64 0.38 0.41 0.48 0.36 0.33 0.27 0.30 0.28 0.40 0.33 0.34 0.47 0.44 0.30 0.27 0.33 0.33 0.23 0.30 0.38 0.24 0.26 0.35 0.34
dep3 0.42 0.45 1.00 0.56 0.40 0.39 0.47 0.40 0.35 0.34 0.33 0.33 0.39 0.27 0.29 0.34 0.39 0.27 0.22 0.36 0.28 0.29 0.26 0.38 0.24 0.28 0.31 0.31
dep4 0.53 0.64 0.56 1.00 0.45 0.42 0.52 0.39 0.36 0.32 0.33 0.33 0.48 0.35 0.42 0.53 0.50 0.36 0.31 0.38 0.32 0.30 0.32 0.44 0.29 0.32 0.46 0.38
anx1 0.52 0.38 0.40 0.45 1.00 0.53 0.49 0.55 0.43 0.48 0.46 0.50 0.50 0.40 0.46 0.39 0.43 0.35 0.29 0.43 0.31 0.28 0.36 0.40 0.28 0.35 0.36 0.44
anx2 0.50 0.41 0.39 0.42 0.53 1.00 0.52 0.48 0.39 0.41 0.34 0.40 0.43 0.36 0.41 0.36 0.39 0.37 0.33 0.46 0.21 0.22 0.28 0.32 0.23 0.24 0.29 0.34
anx3 0.47 0.48 0.47 0.52 0.49 0.52 1.00 0.42 0.39 0.40 0.36 0.38 0.42 0.39 0.42 0.37 0.47 0.36 0.33 0.40 0.30 0.27 0.33 0.36 0.25 0.29 0.35 0.35
anx4 0.50 0.36 0.40 0.39 0.55 0.48 0.42 1.00 0.42 0.43 0.39 0.40 0.50 0.39 0.45 0.37 0.37 0.36 0.27 0.49 0.31 0.34 0.37 0.35 0.33 0.35 0.31 0.43
som1 0.44 0.33 0.35 0.36 0.43 0.39 0.39 0.42 1.00 0.44 0.50 0.48 0.53 0.38 0.38 0.31 0.30 0.32 0.22 0.39 0.34 0.23 0.30 0.36 0.27 0.29 0.26 0.36
som2 0.39 0.27 0.34 0.32 0.48 0.41 0.40 0.43 0.44 1.00 0.54 0.48 0.40 0.31 0.36 0.25 0.29 0.33 0.24 0.37 0.28 0.25 0.29 0.28 0.23 0.24 0.24 0.31
som3 0.37 0.30 0.33 0.33 0.46 0.34 0.36 0.39 0.50 0.54 1.00 0.52 0.44 0.32 0.37 0.25 0.30 0.27 0.24 0.32 0.28 0.24 0.30 0.33 0.22 0.28 0.34 0.31
som4 0.46 0.28 0.33 0.33 0.50 0.40 0.38 0.40 0.48 0.48 0.52 1.00 0.43 0.30 0.33 0.25 0.29 0.31 0.22 0.34 0.22 0.23 0.30 0.35 0.18 0.27 0.27 0.36
exh1 0.57 0.40 0.39 0.48 0.50 0.43 0.42 0.50 0.53 0.40 0.44 0.43 1.00 0.48 0.48 0.45 0.41 0.36 0.28 0.42 0.27 0.27 0.31 0.35 0.28 0.34 0.36 0.39
exh2 0.39 0.33 0.27 0.35 0.40 0.36 0.39 0.39 0.38 0.31 0.32 0.30 0.48 1.00 0.55 0.38 0.39 0.34 0.34 0.42 0.25 0.26 0.29 0.31 0.32 0.34 0.34 0.36
exh3 0.46 0.34 0.29 0.42 0.46 0.41 0.42 0.45 0.38 0.36 0.37 0.33 0.48 0.55 1.00 0.45 0.42 0.37 0.35 0.41 0.23 0.28 0.30 0.32 0.26 0.33 0.33 0.38
exh4 0.49 0.47 0.34 0.53 0.39 0.36 0.37 0.37 0.31 0.25 0.25 0.25 0.45 0.38 0.45 1.00 0.45 0.32 0.32 0.35 0.30 0.26 0.33 0.34 0.25 0.27 0.33 0.32
sen1 0.42 0.44 0.39 0.50 0.43 0.39 0.47 0.37 0.30 0.29 0.30 0.29 0.41 0.39 0.42 0.45 1.00 0.47 0.47 0.39 0.29 0.29 0.38 0.38 0.22 0.31 0.34 0.34
sen2 0.34 0.30 0.27 0.36 0.35 0.37 0.36 0.36 0.32 0.33 0.27 0.31 0.36 0.34 0.37 0.32 0.47 1.00 0.50 0.44 0.28 0.29 0.35 0.35 0.25 0.27 0.29 0.34
sen3 0.29 0.27 0.22 0.31 0.29 0.33 0.33 0.27 0.22 0.24 0.24 0.22 0.28 0.34 0.35 0.32 0.47 0.50 1.00 0.38 0.23 0.26 0.28 0.27 0.13 0.21 0.27 0.26
sen4 0.45 0.33 0.36 0.38 0.43 0.46 0.40 0.49 0.39 0.37 0.32 0.34 0.42 0.42 0.41 0.35 0.39 0.44 0.38 1.00 0.29 0.28 0.36 0.38 0.35 0.36 0.28 0.40
par1 0.29 0.33 0.28 0.32 0.31 0.21 0.30 0.31 0.34 0.28 0.28 0.22 0.27 0.25 0.23 0.30 0.29 0.28 0.23 0.29 1.00 0.31 0.43 0.40 0.20 0.23 0.25 0.29
par2 0.25 0.23 0.29 0.30 0.28 0.22 0.27 0.34 0.23 0.25 0.24 0.23 0.27 0.26 0.28 0.26 0.29 0.29 0.26 0.28 0.31 1.00 0.31 0.31 0.30 0.24 0.27 0.27
par3 0.32 0.30 0.26 0.32 0.36 0.28 0.33 0.37 0.30 0.29 0.30 0.30 0.31 0.29 0.30 0.33 0.38 0.35 0.28 0.36 0.43 0.31 1.00 0.48 0.27 0.22 0.25 0.32
par4 0.37 0.38 0.38 0.44 0.40 0.32 0.36 0.35 0.36 0.28 0.33 0.35 0.35 0.31 0.32 0.34 0.38 0.35 0.27 0.38 0.40 0.31 0.48 1.00 0.26 0.28 0.37 0.38
hos1 0.28 0.24 0.24 0.29 0.28 0.23 0.25 0.33 0.27 0.23 0.22 0.18 0.28 0.32 0.26 0.25 0.22 0.25 0.13 0.35 0.20 0.30 0.27 0.26 1.00 0.42 0.36 0.43
hos2 0.34 0.26 0.28 0.32 0.35 0.24 0.29 0.35 0.29 0.24 0.28 0.27 0.34 0.34 0.33 0.27 0.31 0.27 0.21 0.36 0.23 0.24 0.22 0.28 0.42 1.00 0.52 0.54
hos3 0.35 0.35 0.31 0.46 0.36 0.29 0.35 0.31 0.26 0.24 0.34 0.27 0.36 0.34 0.33 0.33 0.34 0.29 0.27 0.28 0.25 0.27 0.25 0.37 0.36 0.52 1.00 0.52
hos4 0.41 0.34 0.31 0.38 0.44 0.34 0.35 0.43 0.36 0.31 0.31 0.36 0.39 0.36 0.38 0.32 0.34 0.34 0.26 0.40 0.29 0.27 0.32 0.38 0.43 0.54 0.52 1.00

8.2.2 Model Fit Indices

What this section tests. All 28 SCL-28-SA items were collected via a single self-report questionnaire, raising the possibility of Common Method Bias (CMB). Harman’s single-factor CFA test evaluates whether a single unmeasured factor can account for the majority of variance across all indicators. Poor model fit (CFI < .95, RMSEA > .08) provides evidence against a dominant common method factor.

Limitation note. Harman’s test is a necessary but not sufficient test for CMB. It identifies the worst case but cannot rule out partial method effects. Results should be interpreted alongside substantive design considerations.

Show / Hide Code
model.harman <- '
  CMB_Factor =~ dep1 + dep2 + dep3 + dep4 +
                anx1 + anx2 + anx3 + anx4 +
                som1 + som2 + som3 + som4 +
                exh1 + exh2 + exh3 + exh4 +
                sen1 + sen2 + sen3 + sen4 +
                par1 + par2 + par3 + par4 +
                hos1 + hos2 + hos3 + hos4'




fit.harman <- cfa(
  model            = model.harman,
  data             = df,
  estimator        = "WLSMV",
  ordered          = TRUE,
  sampling.weights = "wt",
  std.lv           = TRUE,
  se               = "robust"
)

harman_fit <- fitMeasures(fit.harman, c(
  "chisq.scaled", "df.scaled", "pvalue.scaled",
  "cfi.robust",   "tli.robust",
  "rmsea.robust", "rmsea.ci.lower.robust", "rmsea.ci.upper.robust",
  "srmr"
))

data.frame(
  `Fit Index` = c(
    "χ² (Scaled)", "df", "p-value",
    "CFI (Robust)", "TLI (Robust)",
    "RMSEA (Robust)", "RMSEA 90% CI Lower", "RMSEA 90% CI Upper",
    "SRMR"
  ),
  Value                  = round(as.numeric(harman_fit), 3),
  `Acceptable Threshold` = c("—","—","—","≥ .95","≥ .95","≤ .06","—","—","≤ .08"),
  check.names = FALSE
) %>%
  kable(align = c("l","c","c")) %>%
  kable_styling(bootstrap_options = c("striped","hover"), full_width = FALSE, font_size = 13)
Table 9: Harman’s Single-Factor CFA — Fit Indices (Common Method Bias Test)
Fit Index Value Acceptable Threshold
χ² (Scaled) 3914.724
df 350.000
p-value 0.000
CFI (Robust) 0.813 ≥ .95
TLI (Robust) 0.798 ≥ .95
RMSEA (Robust) 0.080 ≤ .06
RMSEA 90% CI Lower 0.078
RMSEA 90% CI Upper 0.082
SRMR 0.056 ≤ .08

Note. Poor fit of the single-factor model (CFI < .95, RMSEA > .08) indicates that a dominant common method factor does not account for the majority of item covariance, providing evidence against pervasive CMB.


8.3 Correlated First-Order Factors Model (M1 — Baseline)

8.3.1 Model fit Indices

What this section tests. The correlated first-order factors model (M1) treats the seven SCL-28-SA subscales as distinct but inter-correlated latent constructs, without imposing any higher-order structure. This model serves two purposes: (1) it provides a baseline against which the more parsimonious hierarchical model (M2) can be formally compared; and (2) it allows direct inspection of inter-factor correlations and reliability/validity indices — all of which must be assessed before imposing second-order structure.

Show / Hide Code
model.scl28_c <- '
  DEP =~ dep1 + dep2 + dep3 + dep4
  ANX =~ anx1 + anx2 + anx3 + anx4
  SOM =~ som1 + som2 + som3 + som4
  EXH =~ exh1 + exh2 + exh3 + exh4
  SEN =~ sen1 + sen2 + sen3 + sen4
  PAR =~ par1 + par2 + par3 + par4
  HOS =~ hos1 + hos2 + hos3 + hos4
'

fit.corr <- cfa(
  model            = model.scl28_c,
  data             = df,
  estimator        = "WLSMV",
  ordered          = TRUE,
  sampling.weights = "wt",
  std.lv           = TRUE,
  se               = "robust"
)

corr_fit <- fitMeasures(fit.corr, c(
  "chisq.scaled", "df.scaled", "pvalue.scaled",
  "cfi.robust",   "tli.robust",
  "rmsea.robust", "rmsea.ci.lower.robust", "rmsea.ci.upper.robust",
  "srmr"
))

data.frame(
  `Fit Index` = c(
    "χ² (Scaled)","df","p-value",
    "CFI (Robust)","TLI (Robust)",
    "RMSEA (Robust)","RMSEA 90% CI Lower","RMSEA 90% CI Upper","SRMR"
  ),
  Value = round(as.numeric(corr_fit), 3),
  check.names = FALSE
) %>%
  kable(align = c("l","c")) %>%
  kable_styling(bootstrap_options = c("striped","hover"),
                full_width = FALSE, font_size = 13)
Table 10: Fit Indices: Correlated First-Order Factors Model
Fit Index Value
χ² (Scaled) 1876.293
df 329.000
p-value 0.000
CFI (Robust) 0.912
TLI (Robust) 0.899
RMSEA (Robust) 0.057
RMSEA 90% CI Lower 0.054
RMSEA 90% CI Upper 0.059
SRMR 0.037

8.3.2 Reliability (Correlated Factors)

What this section reports. Reliability and validity are evaluated on the correlated first-order factors model (M1), which is the methodologically appropriate baseline. Indices calculated on a hierarchical model may be distorted by the additional constraints imposed at the second-order level (Hair et al., 2022; Kline, 2016).

  1. Ordinal alpha (α_ord): appropriate α for ordinal data, based on polychoric correlations.
  2. McDonald’s ω: model-based composite reliability; does not assume tau-equivalence.
    Threshold: ω ≥ .70 acceptable; ω ≥ .80 good.
Show / Hide Code
reliability_out <- semTools::reliability(fit.corr)

reliability_out
Table 11: Reliability Coefficients and AVE by Subscale
            DEP   ANX   SOM   EXH   SEN   PAR   HOS
alpha     0.749 0.750 0.740 0.726 0.704 0.653 0.694
alpha.ord 0.807 0.797 0.794 0.776 0.759 0.704 0.774
omega     0.750 0.746 0.740 0.727 0.704 0.659 0.702
omega2    0.750 0.746 0.740 0.727 0.704 0.659 0.702
omega3    0.748 0.748 0.740 0.732 0.700 0.662 0.702
avevar    0.519 0.499 0.492 0.471 0.444 0.385 0.471

Note. α (Ordinal) = alpha based on polychoric correlations. ω (McDonald) = model-based composite reliability. AVE ≥ .50 required for convergent validity (Fornell & Larcker, 1981). Thresholds: ω ≥ .70 acceptable; ω ≥ .80 good. Computed on the correlated first-order factors model (M1).

Show / Hide Code
omega_out <- compRelSEM(fit.corr)

omega_out
Table 12: Categorical Omega (ω) — Composite Reliability
  DEP   ANX   SOM   EXH   SEN   PAR   HOS 
0.748 0.748 0.740 0.732 0.700 0.662 0.702 

8.3.3 Convergent Validity: AVE and Composite Reliability

What this section tests. AVE = Σλ² / (Σλ² + Σε²), where λ are standardized loadings and ε are item error variances. AVE ≥ .50 means the factor explains more variance in its indicators than error — the Fornell–Larcker convergent validity criterion. Assessed on M1 (correlated factors), before imposing second-order constraints.

Show / Hide Code
### Convergent Validity: AVE and Composite Reliability
#| label: tbl-ave
#| tbl-cap: "Convergent Validity: AVE and Composite Reliability (M1)"


# Calculation and table generation with exceptions
ave_cr <- data.frame(
  Subscale = colnames(reliability_out),
  AVE      = round(reliability_out["avevar",], 3),
  CR_omega = round(reliability_out["omega3",],  3)
) %>%
  mutate(
    # Status for each condition individually
    `AVE ≥ .50` = ifelse(AVE >= .50, "✓", "✗"),
    `CR ≥ .70`  = ifelse(CR_omega >= .70, "✓", "✗"),
    
    # Final validity assessment (Logic: AVE >= 0.5 OR CR >= 0.7)
    `Validity Status` = case_when(
      AVE >= 0.50 ~ "Supported (AVE)",
      CR_omega >= 0.70 ~ "Supported (CR)",
      CR_omega >= 0.60 ~ "Marginal (CR > 0.6)",
      TRUE ~ "Not Supported"
    )
  )

# Visualization
kable(ave_cr, align = "c", booktabs = TRUE) %>%
  kable_styling(bootstrap_options = c("striped", "hover"), 
                full_width = FALSE, 
                font_size = 13) %>%
  row_spec(which(ave_cr$`Validity Status` == "Not Supported"), background = "#f2dede")
Subscale AVE CR_omega AVE ≥ .50 CR ≥ .70 Validity Status
DEP DEP 0.519 0.748 Supported (AVE)
ANX ANX 0.499 0.748 Supported (CR)
SOM SOM 0.492 0.740 Supported (CR)
EXH EXH 0.471 0.732 Supported (CR)
SEN SEN 0.444 0.700 Supported (CR)
PAR PAR 0.385 0.662 Marginal (CR > 0.6)
HOS HOS 0.471 0.702 Supported (CR)

AVE values of 0.50 or higher indicate adequate convergent validity (Fornell & Larcker, 1981). When AVE is below 0.50 but composite reliability exceeds acceptable levels (typically 0.60–0.70), convergent validity may still be considered adequate, as the construct explains more variance than error.

8.3.4 Discriminant Validity

In this section, we evaluate the discriminant validity of the Correlated Factors Model (M1) to ensure that each latent construct represents a unique phenomenon. We apply a multi-method approach, including latent correlation analysis, Variance Inflation Factors (VIF), examination of modification indices for cross-loadings, and the Heterotrait-Monotrait (HTMT) ratio. This comprehensive strategy identifies potential redundancies and ensures the empirical distinctiveness of the subscales.

8.3.4.1 Latent Variable Correlation Analysis

Show / Hide Code
cor_matrix <- lavInspect(fit.corr, "cor.lv")


cor_matrix <- round(cor_matrix, 3)


kable(cor_matrix, align = "c") %>%
  kable_styling(bootstrap_options = c("striped", "hover"),
                full_width = FALSE, font_size = 13)
Table 13: Inter-Factor Correlation Matrix
DEP ANX SOM EXH SEN PAR HOS
DEP 1.000 0.873 0.695 0.858 0.746 0.711 0.655
ANX 0.873 1.000 0.831 0.860 0.813 0.720 0.680
SOM 0.695 0.831 1.000 0.754 0.644 0.659 0.582
EXH 0.858 0.860 0.754 1.000 0.816 0.690 0.693
SEN 0.746 0.813 0.644 0.816 1.000 0.754 0.645
PAR 0.711 0.720 0.659 0.690 0.754 1.000 0.651
HOS 0.655 0.680 0.582 0.693 0.645 0.651 1.000

Note. Values > .90 may indicate insufficient discriminant validity between subscales

Show / Hide Code
ggcorrplot(
  cor_matrix,
  method        = "square",
  type          = "lower",
  lab           = TRUE,
  lab_size      = 4,
  colors        = c("#4575B4","white","#D73027"),
  outline.color = "white"
) +
  labs(
    title = "Inter-Factor Correlations",
    fill  = "r"
  )
Figure 6: Inter-Factor Correlations

Note. Heatmap of latent factor correlations: values > 0.85 indicate strong correlation, while values > 0.90 suggest that factors are essentially indistinguishable

8.3.4.2 Cross-Loading Analysis via Modification Indices

Show / Hide Code
# Extract modification indices from the fitted model
mi <- modificationIndices(fit.corr, sort. = TRUE)

# Filter for cross-loadings (indicator =~ factor) and sort by impact
cross_loadings <- mi %>%
  filter(op == "=~") %>%
  select(lhs, op, rhs, mi, epc) %>%
  arrange(desc(mi)) %>%
  head(20)

# Display the results
# Interpretation: 
# MI > 10: Worth investigating
# MI > 20: Strong candidate for cross-loading
# MI > 50: Severe cross-loading (Red flag)
knitr::kable(cross_loadings, digits = 3, col.names = c("Factor", "Op", "Item", "MI", "EPC"))
Table 14: Top 20 Potential Cross-Loadings (Modification Indices)
Factor Op Item MI EPC
DEP =~ exh4 92.2 0.741
ANX =~ dep1 91.2 0.823
EXH =~ dep1 90.5 0.830
SOM =~ exh1 77.8 0.413
ANX =~ sen4 72.3 0.526
SOM =~ dep1 68.7 0.357
ANX =~ dep4 59.0 -0.693
SOM =~ exh4 58.9 -0.359
ANX =~ sen3 57.1 -0.416
SOM =~ sen4 53.9 0.291
DEP =~ exh2 51.7 -0.592
DEP =~ sen3 50.3 -0.354
SOM =~ dep4 47.3 -0.317
ANX =~ exh1 44.7 0.619
EXH =~ som1 44.3 0.319
EXH =~ sen4 39.2 0.429
HOS =~ sen4 38.7 0.262
DEP =~ sen1 37.9 0.345
EXH =~ sen3 36.9 -0.368
SOM =~ sen3 36.6 -0.222

Summary of Discriminant Validity Thresholds. Discriminant validity is evaluated using modification indices (MI) and standardized residuals. MI > 10 indicates minor cross-loadings requiring monitoring; MI > 20 suggests substantial construct overlap (e.g., redundancy or wording effects); and MI > 50 reflects critical violations, often warranting item removal. Standardized residuals |SR| > 0.10 indicate localized strain between item pairs not captured by the model.

Note on EPC. Expected Parameter Change (EPC) reflects the estimated loading if the parameter were freely estimated.

8.3.4.3 The Fornell-Larcker Criterion

Show / Hide Code
# 1. Extract AVE and calculate the square root (for the diagonal)
ave_values <- reliability_out["avevar", ]
sqrt_ave <- sqrt(ave_values)

# 2. Use the correlation matrix
fl_matrix <- cor_matrix

# 3. Create the comparison table
fl_table <- as.data.frame(matrix(NA, nrow = nrow(fl_matrix), ncol = ncol(fl_matrix)))
rownames(fl_table) <- rownames(fl_matrix)
colnames(fl_table) <- colnames(fl_matrix)

for (i in 1:nrow(fl_matrix)) {
  for (j in 1:ncol(fl_matrix)) {
    if (i == j) {
      # Use Markdown asterisks for bolding
      fl_table[i, j] <- paste0("**", round(sqrt_ave[i], 3), "**")
      
    } else if (i > j) {
      # Place correlations in the lower triangle
      corr_val <- fl_matrix[i, j]
      
      # Violation check
      if (abs(corr_val) > sqrt_ave[i] | abs(corr_val) > sqrt_ave[j]) {
        fl_table[i, j] <- paste0(round(corr_val, 3), " (!!!)")
      } else {
        fl_table[i, j] <- as.character(round(corr_val, 3))
      }
      
    } else {
      # Leave the upper triangle empty
      fl_table[i, j] <- ""
    }
  }
}

# 4. Output using standard Markdown format
# Setting format = "markdown" forces Quarto to read the ** as bold
kable(fl_table, 
      align = "c", 
      format = "markdown",
      caption = "Fornell-Larcker Criterion (M1)")
Table 15: The Fornell-Larcker Criterion — weighted Data
Fornell-Larcker Criterion (M1)
DEP ANX SOM EXH SEN PAR HOS
DEP 0.72
ANX 0.873 (!!!) 0.707
SOM 0.695 0.831 (!!!) 0.701
EXH 0.858 (!!!) 0.86 (!!!) 0.754 (!!!) 0.686
SEN 0.746 (!!!) 0.813 (!!!) 0.644 0.816 (!!!) 0.666
PAR 0.711 (!!!) 0.72 (!!!) 0.659 (!!!) 0.69 (!!!) 0.754 (!!!) 0.62
HOS 0.655 0.68 0.582 0.693 (!!!) 0.645 0.651 (!!!) 0.686

8.3.4.4 Heterotrait-Monotrait Ratio of the correlations

This section evaluates construct independence using M1 estimates based on unweighted > and weighted data. HTMT Ratio: Adequate validity is indicated by values < 0.85 (strict) or < 0.90 (liberal).

Show / Hide Code
htmt_result <- semTools::htmt(
  model   = model.scl28_c,
  data    = df,
  ordered = TRUE
)

htmt_matrix <- as.matrix(htmt_result)

htmt_matrix[upper.tri(htmt_matrix, diag = TRUE)] <- NA

htmt_matrix %>%
  as.data.frame() %>%
  mutate(across(everything(), ~ round(as.numeric(.), 3))) %>%
  mutate(across(everything(), ~ ifelse(is.na(.), "", as.character(.)))) %>%
  kable(align = "c") %>%
  kable_styling(bootstrap_options = c("striped", "hover"), full_width = FALSE)
Table 16: Heterotrait-Monotrait Ratio (HTMT2) — Unweighted Data
DEP ANX SOM EXH SEN PAR HOS
DEP
ANX 0.879
SOM 0.678 0.823
EXH 0.841 0.866 0.72
SEN 0.737 0.791 0.621 0.817
PAR 0.724 0.711 0.642 0.705 0.76
HOS 0.66 0.688 0.578 0.698 0.631 0.659

Note. HTMT ratios were computed using polychoric correlations on unweighted data, as weighted HTMT estimation is not currently supported in available R packages.

8.3.4.5 Latent Variable Multicollinearity

To further ensure discriminant validity, we calculate the Variance Inflation Factor (VIF) for latent constructs. This identifies if any factor is redundant due to high overlap with the remaining set of factors.

Show / Hide Code
# Calculate VIF from the latent correlation matrix
# Formula: VIF_i = diagonal element of the inverse correlation matrix

latent_vif <- diag(solve(lavInspect(fit.corr, "cor.lv")))

latent_vif_df <- data.frame(
  Factor = names(latent_vif),
  VIF = round(as.numeric(latent_vif), 3)
)

kable(latent_vif_df, align = "c", booktabs = TRUE) %>%
  kable_styling(bootstrap_options = c("striped", "hover"), full_width = FALSE)
# Thresholds:
# VIF > 3.3: Potential collinearity (strict)
# VIF > 5.0: Significant multicollinearity (liberal)
# VIF > 10.0: Severe redundancy; constructs are likely identical
Table 17: Latent Variable Variance Inflation Factors (VIF)
Factor VIF
DEP 5.84
ANX 9.12
SOM 3.83
EXH 6.26
SEN 4.48
PAR 3.03
HOS 2.20

8.4 Hierarchical Second-Order CFA Model (M2 — Primary)

8.4.1 Model Fit Indices

What this section tests. The hierarchical model (M2) posits that the covariance among the seven first-order subscales is fully explained by a single superordinate latent factor — General Psychological Distress (SCL28). M2 is more parsimonious than M1 (14 fewer parameters), trading some local fit for theoretical elegance.

CFA was conducted using the WLSMV estimator, appropriate for ordinal indicators with non-normal distributions (Flora & Curran, 2004). Sampling weights were incorporated via the sampling.weights argument in lavaan (Rosseel, 2012). Model fit was evaluated using robust fit indices: CFI ≥ .95, TLI ≥ .95, RMSEA ≤ .06, SRMR ≤ .08 (Hu & Bentler, 1999).

Show / Hide Code
model.scl28_h <- '
  # First-order factors (latent domains)
  DEP =~ dep1 + dep2 + dep3 + dep4   # Depression
  ANX =~ anx1 + anx2 + anx3 + anx4   # Anxiety
  SOM =~ som1 + som2 + som3 + som4   # Somatization
  EXH =~ exh1 + exh2 + exh3 + exh4   # General Exhaustion
  SEN =~ sen1 + sen2 + sen3 + sen4   # Interpersonal Sensitivity
  PAR =~ par1 + par2 + par3 + par4   # Paranoid Ideation
  HOS =~ hos1 + hos2 + hos3 + hos4   # Hostility

  # Second-order factor (Higher-order construct)
  General_Distress =~ DEP + ANX + SOM + EXH + SEN + PAR + HOS
'


fit.cfa <- cfa(
  model            = model.scl28_h,
  data             = df,
  estimator        = "WLSMV",
  ordered          = TRUE,
  sampling.weights = "wt",
  std.lv           = TRUE,
  se               = "robust"
)

hier_fit <- fitMeasures(fit.cfa, c(
  "chisq.scaled", "df.scaled", "pvalue.scaled",
  "cfi.robust",   "tli.robust",
  "rmsea.robust", "rmsea.ci.lower.robust", "rmsea.ci.upper.robust",
  "srmr"
))

data.frame(
  `Fit Index` = c(
    "χ² (Scaled)","df","p-value",
    "CFI (Robust)","TLI (Robust)",
    "RMSEA (Robust)","RMSEA 90% CI Lower","RMSEA 90% CI Upper","SRMR"
  ),
  Value = round(as.numeric(hier_fit), 3),
  check.names = FALSE
) %>%
  kable(align = c("l","c")) %>%
  kable_styling(bootstrap_options = c("striped","hover"), full_width = FALSE, font_size = 13)
Table 18: Fit Indices — M2: Hierarchical Second-Order CFA (Primary Model)
Fit Index Value
χ² (Scaled) 1982.905
df 343.000
p-value 0.000
CFI (Robust) 0.906
TLI (Robust) 0.896
RMSEA (Robust) 0.057
RMSEA 90% CI Lower 0.055
RMSEA 90% CI Upper 0.060
SRMR 0.040

8.4.2 Standardized Factor Loadings

Show / Hide Code
std_params <- standardizedSolution(fit.cfa)

loadings_fo <- std_params %>%
  filter(op == "=~", lhs != "SCL28") %>%
  mutate(
    p_fmt = case_when(pvalue < .001 ~ "< .001", TRUE ~ sprintf("%.3f", pvalue)),
    sig   = case_when(pvalue < .001 ~ "***", pvalue < .01 ~ "**",
                      pvalue < .05  ~ "*",   TRUE         ~ "")
  ) %>%
  select(Factor = lhs, Item = rhs, `β (std.)` = est.std,
         SE = se, z, `p-value` = p_fmt, Sig = sig)

kable(loadings_fo, digits = 3, align = c("l","l","r","r","r","r","c"),
      booktabs = TRUE) %>%
  kable_styling(
    bootstrap_options = c("striped","hover","condensed"),
    full_width = FALSE
  ) %>%
  collapse_rows(columns = 1, valign = "top")
Table 19: First-Order Standardized Factor Loadings — M2
Factor Item β (std.) SE z p-value Sig
DEP dep1 0.778 0.014 55.8 < .001 ***
dep2 0.677 0.015 46.1 < .001 ***
dep3 0.646 0.017 39.0 < .001 ***
dep4 0.771 0.014 56.9 < .001 ***
ANX anx1 0.744 0.013 58.1 < .001 ***
anx2 0.673 0.014 47.9 < .001 ***
anx3 0.696 0.014 48.7 < .001 ***
anx4 0.712 0.013 53.0 < .001 ***
SOM som1 0.726 0.016 45.1 < .001 ***
som2 0.689 0.017 39.7 < .001 ***
som3 0.696 0.016 43.7 < .001 ***
som4 0.694 0.016 43.1 < .001 ***
EXH exh1 0.751 0.013 57.4 < .001 ***
exh2 0.647 0.015 42.0 < .001 ***
exh3 0.693 0.014 50.2 < .001 ***
exh4 0.648 0.016 40.9 < .001 ***
SEN sen1 0.719 0.017 43.0 < .001 ***
sen2 0.649 0.015 42.0 < .001 ***
sen3 0.558 0.018 31.1 < .001 ***
sen4 0.726 0.016 45.6 < .001 ***
PAR par1 0.578 0.020 29.1 < .001 ***
par2 0.534 0.021 25.4 < .001 ***
par3 0.643 0.017 38.7 < .001 ***
par4 0.711 0.017 41.3 < .001 ***
HOS hos1 0.572 0.020 28.2 < .001 ***
hos2 0.664 0.019 34.4 < .001 ***
hos3 0.703 0.022 32.2 < .001 ***
hos4 0.787 0.016 49.8 < .001 ***
General_Distress DEP 0.896 0.010 91.9 < .001 ***
ANX 0.954 0.007 127.5 < .001 ***
SOM 0.810 0.012 67.9 < .001 ***
EXH 0.925 0.010 90.7 < .001 ***
SEN 0.859 0.012 71.3 < .001 ***
PAR 0.800 0.014 58.6 < .001 ***
HOS 0.741 0.015 47.9 < .001 ***

Note. *** p < .001, ** p < .01, * p < .05. β ≥ .450 indicates adequate indicator reliability. β > .70 indicates the subscale is strongly determined by the general distress factor. Robust WLSMV with sampling weights applied.

Show / Hide Code
pl_m2 <- nice_lavaanPlot(
  model = fit.cfa,
  coefs = TRUE,
  stand = TRUE,
  covs  = TRUE,
  stars = c("coefs","covs","latent")
)


DiagrammeR::grViz(pl_m2$x$diagram, width = "125%", height = 800)
Figure 7: Path Diagram — M2: Hierarchical Second-Order CFA (Standardized)
Show / Hide Code
save_png(pl_m2, "cfa_path_diagram.png")

8.4.3 Composite Reliability

Show / Hide Code
# Ваш розрахунок композитної надійності
reliability_ho <- compRelSEM(fit.cfa, higher = "General_Distress")

# Створення датафрейму з результатів для таблиці
rel_df <- data.frame(
  Factor = names(reliability_ho),
  Omega = as.numeric(reliability_ho)
)


rel_df$Factor[rel_df$Factor == "General_Distress"] <- "General Distress<br>(Higher-Order)"

# Вивід таблиці (зверніть увагу на escape = FALSE)
kable(rel_df, 
      digits = 3, 
      col.names = c("Latent Factor", "Composite Reliability (\u03c9)"),
      align = c("l", "c"),
      escape = FALSE)
Table 20: Categorical Composite Reliability (Omega) for First- and Second-Order Factors
Latent Factor Composite Reliability (ω)
DEP 0.748
ANX 0.748
SOM 0.740
EXH 0.732
SEN 0.700
PAR 0.662
HOS 0.702
General Distress
(Higher-Order)
0.894

8.4.4 Convergent Validity and Composite Reliability of First-Order Factors

Show / Hide Code
semTools::reliability(fit.cfa )
Table 21: Convergent Validity: AVE and Composite Reliability of First-Order Factors (M2)
            DEP   ANX   SOM   EXH   SEN   PAR   HOS
alpha     0.749 0.750 0.740 0.726 0.704 0.653 0.694
alpha.ord 0.807 0.797 0.794 0.776 0.759 0.704 0.774
omega     0.750 0.746 0.740 0.727 0.704 0.659 0.702
omega2    0.750 0.746 0.740 0.727 0.704 0.659 0.702
omega3    0.748 0.748 0.740 0.732 0.700 0.662 0.702
avevar    0.519 0.499 0.492 0.471 0.444 0.385 0.471

8.4.5 Explained Variance in the Second-Order Mode

Show / Hide Code
# Extract R² values for endogenous latent variables
# (first-order factors explained by the higher-order factor)
r2 <- inspect(fit.cfa, "r2")

# Select first-order factors
factors_1st <- c("DEP","ANX","SOM","EXH","SEN","PAR","HOS")
r2_1st <- r2[factors_1st]

# Створення датафрейму з результатів для таблиці
r2_df <- data.frame(
  Factor = names(r2_1st),
  R2 = as.numeric(r2_1st)
)

# Вивід таблиці
kable(r2_df, 
      digits = 3, 
      col.names = c("First-Order Factor", "R\u00B2 (Explained Variance)"),
      align = c("l", "c"))
Table 22: R-squared Values for First-Order Factors (Variance Explained by General Distress)
First-Order Factor R² (Explained Variance)
DEP 0.802
ANX 0.911
SOM 0.656
EXH 0.856
SEN 0.737
PAR 0.641
HOS 0.548
Show / Hide Code
# Compute and report mean R²
mean_r2 <- mean(r2_1st)


cat("\nMean R-squared across first-order factors:\n")

Mean R-squared across first-order factors:
Show / Hide Code
print(round(mean_r2, 3))
[1] 0.736

8.5 Bifactor Model and Indices (M3)

What this section tests. The bifactor model (M3) is an alternative parameterization in which each indicator loads simultaneously on (a) a general factor G capturing global distress and (b) one subscale-specific factor capturing residual domain variance orthogonal to G. Bifactor indices (Rodriguez et al., 2016) quantify the relative strength of G versus specific factors:

  • ECV — Explained Common Variance: proportion of common variance due to G; > .70 supports total score use
  • OmegaH — Hierarchical Omega: reliability of total score attributable to G alone; > .70 required
  • PUC — Proportion of Uncontaminated Correlations: > .70 means item correlations are mostly G-driven
  • H — Construct Replicability: factor stability across samples; > .70 desirable
  • FD — Factor Determinacy: precision of factor score estimation; > .90 excellent
Show / Hide Code
# Bifactor CFA Model for SCL-28-SA
model.scl28_b <- '
  # Specific factors (symptom domains)
  DEP =~ dep1 + dep2 + dep3 + dep4
  ANX =~ anx1 + anx2 + anx3 + anx4
  SOM =~ som1 + som2 + som3 + som4
  EXH =~ exh1 + exh2 + exh3 + exh4
  SEN =~ sen1 + sen2 + sen3 + sen4
  PAR =~ par1 + par2 + par3 + par4
  HOS =~ hos1 + hos2 + hos3 + hos4

  # General factor (G-factor)
  G =~ dep1 + dep2 + dep3 + dep4 +
       anx1 + anx2 + anx3 + anx4 +
       som1 + som2 + som3 + som4 +
       exh1 + exh2 + exh3 + exh4 +
       sen1 + sen2 + sen3 + sen4 +
       par1 + par2 + par3 + par4 +
       hos1 + hos2 + hos3 + hos4
'

fit.scl28_b <- cfa(
  model            = model.scl28_b,
  data             = df,
  estimator        = "WLSMV",
  ordered          = TRUE,
  sampling.weights = "wt",
  orthogonal       = TRUE,
  std.lv           = TRUE,
  se               = "robust"
)

bifactor_fit <- fitMeasures(fit.scl28_b, c(
  "chisq.scaled", "df.scaled", "pvalue.scaled",
  "cfi.robust",   "tli.robust",
  "rmsea.robust", "rmsea.ci.lower.robust", "rmsea.ci.upper.robust",
  "srmr"
))

data.frame(
  `Fit Index` = c(
    "χ² (Scaled)","df","p-value",
    "CFI (Robust)","TLI (Robust)",
    "RMSEA (Robust)","RMSEA 90% CI Lower","RMSEA 90% CI Upper","SRMR"
  ),
  Value = round(as.numeric(bifactor_fit), 3),
  check.names = FALSE
) %>%
  kable(align = c("l","c")) %>%
  kable_styling(bootstrap_options = c("striped","hover"), full_width = FALSE, font_size = 13)
Table 23: Fit Indices — M3: Bifactor Model
Fit Index Value
χ² (Scaled) 1535.513
df 322.000
p-value 0.000
CFI (Robust) 0.935
TLI (Robust) 0.924
RMSEA (Robust) 0.049
RMSEA 90% CI Lower 0.047
RMSEA 90% CI Upper 0.052
SRMR 0.035
Show / Hide Code
bifactor_results <- BifactorIndicesCalculator::bifactorIndices(fit.scl28_b)

model_idx <- as.data.frame(t(as.numeric(bifactor_results$ModelLevelIndices)))
colnames(model_idx) <- names(bifactor_results$ModelLevelIndices)

kable(round(model_idx, 3), align = "c", booktabs = TRUE, escape = FALSE) %>%
  kable_styling(
    bootstrap_options = c("striped","hover","condensed"),
    full_width = FALSE, font_size = 13,
    position   = "center"
  )
Table 24: Bifactor Model-Level Indices
ECV.G PUC Omega.G OmegaH.G
0.687 0.889 0.936 0.886

Note. ECV.G: Explained Common Variance of the general factor; PUC: Proportion of Uncontaminated Correlations; OmegaH.G: Hierarchical Omega (reliable variance attributable solely to G). Recommended thresholds: ECV > .70; PUC > .70; OmegaH > .70 (Rodriguez et al., 2016).

Show / Hide Code
factor_idx <- as.data.frame(bifactor_results$FactorLevelIndices)

kable(round(factor_idx, 3), align = "c", booktabs = TRUE, linesep = "") %>%
  kable_styling(
    bootstrap_options = c("striped","hover","condensed"),
    full_width = FALSE, font_size = 13
  ) %>%
  column_spec(1, bold = TRUE, italic = TRUE)
Table 25: Factor-Level Dimensionality and Reliability Indices — Bifactor Model
ECV_SS ECV_SG ECV_GS Omega OmegaH H FD
DEP 0.268 0.043 0.732 0.774 0.164 0.463 0.812
ANX 0.252 0.044 0.748 0.800 0.115 0.590 0.959
SOM 0.359 0.051 0.641 0.739 0.250 0.481 0.750
EXH 0.194 0.027 0.806 0.728 0.111 0.321 0.652
SEN 0.331 0.046 0.669 0.716 0.209 0.469 0.733
PAR 0.370 0.041 0.630 0.642 0.218 0.416 0.691
HOS 0.457 0.062 0.543 0.724 0.321 0.537 0.778
G 0.687 0.687 0.687 0.936 0.886 0.940 0.959

Note. ECV_SS: Proportion of common variance within a subscale explained by that specific factor; ECV_GS: Proportion due to G. OmegaH: Hierarchical omega for the specific factor (reliable variance above and beyond G). H: Construct replicability; FD: Factor determinacy. OmegaH < .50 for specific factors indicates subscale scores lack reliable unique variance (Rodriguez et al., 2016).

Show / Hide Code
item_idx  <- as.data.frame(bifactor_results$ItemLevelIndices)
item_iecv <- item_idx %>% select(IECV)

kable(round(item_iecv, 3), align = "c", booktabs = TRUE) %>%
  kable_styling(
    bootstrap_options = c("striped","hover","condensed"),
    full_width = FALSE
  )
Table 26: Item-Level Explained Common Variance (IECV) — Bifactor Model
IECV
dep1 0.988
dep2 0.694
dep3 0.824
dep4 0.550
anx1 0.979
anx2 0.405
anx3 0.965
anx4 0.992
som1 0.804
som2 0.649
som3 0.498
som4 0.663
exh1 0.975
exh2 0.708
exh3 0.646
exh4 0.964
sen1 0.823
sen2 0.614
sen3 0.372
sen4 0.944
par1 0.546
par2 0.828
par3 0.521
par4 0.717
hos1 0.586
hos2 0.408
hos3 0.582
hos4 0.622

Note. IECV = Item Explained Common Variance (proportion of an item’s common variance attributable to G). IECV > .70 indicates the item primarily reflects general distress; IECV < .50 indicates more unique subscale variance than general variance.

8.6 Model Comparison

Show / Hide Code
# Helper: extract a single fit index from a fitted model
fi <- function(fit_obj, index) fitMeasures(fit_obj, index)

comparison_table <- data.frame(
  Model            = c("M1: Single Factor (CMB)", "M2: Correlated Factors",
                       "M3: Hierarchical (Primary)", "M4: Bifactor"),
  `χ² (Scaled)`    = round(c(fi(fit.harman, "chisq.scaled"), fi(fit.corr, "chisq.scaled"),
                             fi(fit.cfa, "chisq.scaled"),    fi(fit.scl28_b, "chisq.scaled")), 1),
  df               = round(c(fi(fit.harman, "df.scaled"),    fi(fit.corr, "df.scaled"),
                             fi(fit.cfa, "df.scaled"),       fi(fit.scl28_b, "df.scaled")), 0),
  `CFI (Robust)`   = round(c(fi(fit.harman, "cfi.robust"),   fi(fit.corr, "cfi.robust"),
                             fi(fit.cfa, "cfi.robust"),      fi(fit.scl28_b, "cfi.robust")), 3),
  `RMSEA (Robust)` = round(c(fi(fit.harman, "rmsea.robust"), fi(fit.corr, "rmsea.robust"),
                             fi(fit.cfa, "rmsea.robust"),    fi(fit.scl28_b, "rmsea.robust")), 3),
  SRMR             = round(c(fi(fit.harman, "srmr"),         fi(fit.corr, "srmr"),
                             fi(fit.cfa, "srmr"),            fi(fit.scl28_b, "srmr")), 3),
  check.names = FALSE
)

kable(
  comparison_table,
  align    = c("l", rep("c", ncol(comparison_table) - 1)),
  digits   = 3,
  booktabs = TRUE,
  escape   = FALSE
) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"),
                full_width = FALSE, font_size = 13) %>%
  row_spec(which(comparison_table$Model == "M3: Hierarchical (Primary)"),
           bold = TRUE, background = "#EBF5FB") %>%
  row_spec(0, bold = TRUE)
Table 27: Comparison of Competing Measurement Models (Robust Fit Indices)
Model χ² (Scaled) df CFI (Robust) RMSEA (Robust) SRMR
M1: Single Factor (CMB) 3915 350 0.813 0.080 0.056
M2: Correlated Factors 1876 329 0.912 0.057 0.037
M3: Hierarchical (Primary) 1983 343 0.906 0.057 0.040
M4: Bifactor 1536 322 0.935 0.049 0.035

8.7 Schmid-Leiman Procedure

The Schmid–Leiman transformation is applied as a post hoc analytical step to decompose the hierarchical factor structure and obtain direct loadings of observed variables on the general factor.

8.7.1 Schmid–Leiman Orthogonalization

Show / Hide Code
weighted_n <- round(sum(df$wt), 2)

# Виводимо інформацію з коментарем
cat("=== SAMPLE SIZE INFORMATION ===\n")
=== SAMPLE SIZE INFORMATION ===
Show / Hide Code
cat("Weighted number of observations:", weighted_n, "\n")
Weighted number of observations: 2746 
Show / Hide Code
cat("Note: This value represents the effective sample size used in the analysis. ",
    "It is calculated as the sum of the individual survey weights, rather than the raw unweighted count of respondents.\n\n")
Note: This value represents the effective sample size used in the analysis.  It is calculated as the sum of the individual survey weights, rather than the raw unweighted count of respondents.
Show / Hide Code
# Assuming poly_matrix is already calculated using:
# poly_result <- polychoric(df[, scl_items], weight = df$wt)
# poly_matrix <- poly_result$rho





sl_result <- psych::schmid(
  model    = poly_matrix,
  nfactors = 7,             # 7 factors for SCL-28-SA
  n.obs    = sum(df$wt),
  rotate   = "oblimin",
  fm       = "wls",
  digits   = 3
)

cat("=== SCHMID-LEIMAN DECOMPOSITION ===\n\n")
=== SCHMID-LEIMAN DECOMPOSITION ===
Show / Hide Code
print(sl_result)
Schmid-Leiman analysis 
Call: psych::schmid(model = poly_matrix, nfactors = 7, fm = "wls", 
    digits = 3, rotate = "oblimin", n.obs = sum(df$wt))

Schmid Leiman Factor loadings greater than  0.2 
        g   F1*   F2*   F3*   F4*   F5*   F6*   F7*   h2   h2   u2   p2
dep1 0.62        0.25        0.28                   0.56 0.56 0.44 0.68
dep2 0.55        0.49                               0.55 0.55 0.45 0.56
dep3 0.53        0.36                               0.43 0.43 0.57 0.65
dep4 0.63        0.59                               0.76 0.76 0.24 0.53
anx1 0.63  0.29                                     0.54 0.54 0.46 0.73
anx2 0.55  0.22              0.21                   0.46 0.46 0.54 0.67
anx3 0.59        0.28                               0.48 0.48 0.52 0.73
anx4 0.60                    0.29                   0.52 0.52 0.48 0.71
som1 0.55  0.34                                     0.47 0.47 0.53 0.64
som2 0.51  0.48                                     0.50 0.50 0.50 0.53
som3 0.52  0.52                                     0.54 0.54 0.46 0.51
som4 0.52  0.49                                     0.51 0.51 0.49 0.53
exh1 0.61                    0.30                   0.53 0.53 0.47 0.69
exh2 0.53                    0.31                   0.43 0.43 0.57 0.66
exh3 0.57                    0.33                   0.49 0.49 0.51 0.66
exh4 0.54        0.30        0.23                   0.46 0.46 0.54 0.63
sen1 0.59        0.21              0.33             0.51 0.51 0.49 0.67
sen2 0.54                          0.41             0.48 0.48 0.52 0.61
sen3 0.46                          0.60             0.57 0.57 0.43 0.38
sen4 0.58                    0.23                   0.45 0.45 0.55 0.75
par1 0.47                                0.37       0.38 0.38 0.62 0.59
par2 0.47                                      0.71 0.73 0.73 0.27 0.30
par3 0.53                                0.49       0.53 0.53 0.47 0.54
par4 0.57                                0.35       0.47 0.47 0.53 0.68
hos1 0.42              0.35                         0.35 0.35 0.65 0.51
hos2 0.49              0.57                         0.56 0.56 0.44 0.42
hos3 0.52              0.48                         0.55 0.55 0.45 0.49
hos4 0.57              0.47                         0.55 0.55 0.45 0.59

With eigenvalues of:
   g  F1*  F2*  F3*  F4*  F5*  F6*  F7*   h2 
8.39 1.16 1.09 0.98 0.73 0.79 0.58 0.57 7.54 

general/max  1.11   max/min =   13.2
mean percent general =  0.59    with sd =  0.11 and cv of  0.19 

 The orthogonal loadings were 
Unstandardized loadings based upon covariance matrix
       F1   F2   F3   F4   F5   F6   F7   h2   u2   H2   U2
dep1 0.37 0.43 0.19 0.41 0.12 0.13 0.01 0.56 0.44 0.56 0.44
dep2 0.17 0.65 0.15 0.15 0.12 0.20 0.02 0.55 0.45 0.55 0.45
dep3 0.30 0.51 0.16 0.10 0.08 0.15 0.13 0.43 0.57 0.43 0.57
dep4 0.18 0.78 0.23 0.12 0.16 0.15 0.08 0.76 0.24 0.76 0.24
anx1 0.50 0.29 0.22 0.31 0.16 0.16 0.05 0.54 0.46 0.54 0.46
anx2 0.40 0.33 0.10 0.33 0.24 0.07 0.03 0.46 0.54 0.46 0.54
anx3 0.35 0.46 0.15 0.21 0.24 0.14 0.07 0.48 0.52 0.48 0.52
anx4 0.40 0.21 0.22 0.43 0.11 0.20 0.16 0.52 0.48 0.52 0.48
som1 0.53 0.18 0.17 0.26 0.06 0.22 0.03 0.47 0.53 0.47 0.53
som2 0.64 0.12 0.10 0.14 0.15 0.13 0.10 0.50 0.50 0.50 0.50
som3 0.67 0.15 0.18 0.04 0.11 0.14 0.06 0.54 0.46 0.54 0.46
som4 0.65 0.16 0.14 0.12 0.11 0.13 0.02 0.51 0.49 0.51 0.49
exh1 0.41 0.32 0.22 0.43 0.13 0.11 0.04 0.53 0.47 0.53 0.47
exh2 0.22 0.17 0.27 0.44 0.27 0.11 0.07 0.43 0.57 0.43 0.57
exh3 0.28 0.23 0.22 0.46 0.28 0.07 0.08 0.49 0.51 0.49 0.51
exh4 0.09 0.46 0.16 0.35 0.21 0.20 0.06 0.46 0.54 0.46 0.54
sen1 0.16 0.40 0.16 0.20 0.47 0.20 0.07 0.51 0.49 0.51 0.49
sen2 0.22 0.14 0.17 0.18 0.54 0.23 0.08 0.48 0.52 0.48 0.52
sen3 0.12 0.16 0.09 0.12 0.70 0.11 0.08 0.57 0.43 0.57 0.43
sen4 0.28 0.16 0.24 0.37 0.30 0.23 0.07 0.45 0.55 0.45 0.55
par1 0.19 0.20 0.13 0.07 0.11 0.50 0.13 0.38 0.62 0.38 0.62
par2 0.13 0.14 0.18 0.10 0.15 0.21 0.76 0.73 0.27 0.73 0.27
par3 0.18 0.14 0.13 0.16 0.19 0.62 0.09 0.53 0.47 0.53 0.47
par4 0.24 0.30 0.22 0.07 0.16 0.49 0.08 0.47 0.53 0.47 0.53
hos1 0.11 0.10 0.47 0.22 0.03 0.17 0.16 0.35 0.65 0.35 0.65
hos2 0.16 0.12 0.69 0.15 0.11 0.07 0.05 0.56 0.44 0.56 0.44
hos3 0.17 0.30 0.62 0.01 0.17 0.09 0.06 0.55 0.45 0.55 0.45
hos4 0.24 0.17 0.61 0.20 0.13 0.19 0.04 0.55 0.45 0.55 0.45

                 F1   F2   F3   F4   F5   F6   F7
SS loadings    3.29 2.93 2.25 1.86 1.73 1.52 0.76
Proportion Var 0.12 0.10 0.08 0.07 0.06 0.05 0.03
Cumulative Var 0.12 0.22 0.30 0.37 0.43 0.49 0.51

The degrees of freedom are 203  and the fit is  0.53 
The number of observations was  2746  with Chi Square =  1436  with prob <  0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022
The root mean square of the residuals is  0.01 
The df corrected root mean square of the residuals is  0.02
RMSEA index =  0.047  and the 10 % confidence intervals are  0.045 0.049
BIC =  -172
Show / Hide Code
# --- 2. Extract Loading Matrix for Display ---
sl_loadings <- as.data.frame(sl_result$sl) %>%
  rownames_to_column("Item")

kable(sl_loadings, digits = 3, booktabs = TRUE,
      align = c("l", rep("r", ncol(sl_loadings) - 2), "l")) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"),
                full_width = FALSE, font_size = 13)
Item g F1* F2* F3* F4* F5* F6* F7* h2 u2 p2 com
dep1 0.616 0.145 0.246 0.046 0.285 0.004 0.033 -0.008 0.559 0.441 0.680 1.92
dep2 0.553 -0.002 0.486 0.003 0.027 0.005 0.082 -0.009 0.548 0.452 0.557 2.02
dep3 0.527 0.147 0.357 0.004 -0.012 -0.032 0.015 0.099 0.429 0.571 0.646 2.04
dep4 0.635 -0.005 0.592 0.052 -0.019 0.023 0.006 0.039 0.758 0.242 0.531 2.02
anx1 0.628 0.289 0.101 0.069 0.174 0.039 0.045 0.019 0.538 0.462 0.733 1.70
anx2 0.554 0.216 0.166 -0.027 0.213 0.138 -0.029 0.007 0.459 0.541 0.667 2.01
anx3 0.592 0.172 0.280 -0.003 0.070 0.118 0.009 0.032 0.479 0.521 0.731 1.76
anx4 0.605 0.178 0.029 0.073 0.292 -0.014 0.082 0.127 0.515 0.485 0.710 1.84
som1 0.546 0.344 0.025 0.034 0.141 -0.044 0.112 -0.002 0.465 0.535 0.641 1.98
som2 0.515 0.481 -0.026 -0.026 0.028 0.046 0.007 0.062 0.502 0.498 0.528 2.06
som3 0.523 0.519 -0.002 0.050 -0.076 0.011 0.016 0.014 0.540 0.460 0.507 2.06
som4 0.516 0.488 0.008 0.019 0.006 0.012 0.026 -0.015 0.507 0.493 0.526 2.00
exh1 0.605 0.190 0.137 0.078 0.302 0.012 0.013 0.024 0.535 0.465 0.685 1.87
exh2 0.535 0.020 0.004 0.151 0.311 0.160 0.020 0.049 0.433 0.567 0.661 2.04
exh3 0.566 0.064 0.057 0.094 0.334 0.170 -0.020 0.062 0.485 0.515 0.659 2.00
exh4 0.538 -0.104 0.300 0.025 0.230 0.088 0.096 0.031 0.457 0.543 0.635 2.24
sen1 0.586 -0.015 0.207 0.023 0.045 0.335 0.071 0.021 0.513 0.487 0.669 1.94
sen2 0.537 0.057 -0.039 0.051 0.025 0.414 0.101 0.026 0.475 0.525 0.607 2.03
sen3 0.465 -0.001 -0.011 -0.006 -0.025 0.598 -0.004 0.024 0.575 0.425 0.376 1.90
sen4 0.581 0.071 -0.021 0.107 0.231 0.177 0.122 0.035 0.453 0.547 0.745 1.75
par1 0.469 0.038 0.058 0.002 -0.054 -0.019 0.367 0.067 0.375 0.625 0.587 2.02
par2 0.471 -0.007 -0.001 -0.008 -0.017 0.003 -0.001 0.709 0.728 0.272 0.304 1.74
par3 0.532 0.001 -0.027 -0.011 0.009 0.052 0.488 0.018 0.529 0.471 0.535 2.02
par4 0.566 0.059 0.124 0.073 -0.076 0.019 0.345 0.007 0.470 0.530 0.682 1.88
hos1 0.425 -0.050 -0.030 0.354 0.117 -0.075 0.077 0.133 0.351 0.649 0.515 2.54
hos2 0.486 0.002 -0.036 0.571 0.029 0.004 -0.017 0.008 0.563 0.437 0.419 1.97
hos3 0.519 0.024 0.138 0.482 -0.129 0.057 -0.032 0.007 0.546 0.454 0.493 2.31
hos4 0.569 0.047 -0.010 0.468 0.054 0.008 0.083 -0.012 0.550 0.450 0.589 2.02

Note. g = general psychological distress factor (Schmid-Leiman orthogonalized). F1*–F7* = domain-specific residual factors after removing g. h2 = communality; p2 = proportion of communality due to g.

8.7.2 Omega-Hierarchical

Show / Hide Code
# --- 3. Omega-Hierarchical and Related Metrics ---
omega_sl <- psych::omega(
  m        = poly_matrix,
  nfactors = 7,
  n.obs    = sum(df$wt),
  rotate   = "oblimin",
  fm       = "wls",
  plot     = TRUE
)

Show / Hide Code
omega_h  <- omega_sl$omega_h
omega_t  <- omega_sl$omega.tot
ecv      <- omega_h / omega_t

# --- 4. Manual PUC Calculation ---
k_items      <- rep(4, 7)
total_pairs  <- choose(28, 2)
within_pairs <- sum(choose(k_items, 2))
puc          <- 1 - within_pairs / total_pairs

cat("\n=== OMEGA-HIERARCHICAL (Schmid-Leiman) ===\n")

=== OMEGA-HIERARCHICAL (Schmid-Leiman) ===
Show / Hide Code
cat(sprintf("Omega-Hierarchical (w_h): %.3f\n", omega_h))
Omega-Hierarchical (w_h): 0.792
Show / Hide Code
cat(sprintf("Omega-Total (w_t):        %.3f\n", omega_t))
Omega-Total (w_t):        0.954
Show / Hide Code
cat(sprintf("ECV:                      %.3f\n", ecv))
ECV:                      0.830
Show / Hide Code
cat(sprintf("PUC:                      %.3f\n\n", puc))
PUC:                      0.889
Show / Hide Code
criteria_met <- sum(c(omega_h >= .70, ecv >= .60, puc >= .70))

verdict <- dplyr::case_when(
  criteria_met == 3 ~
    "ALL THREE CRITERIA MET. The SCL-28-SA total mean score is psychometrically justified. Subscale scores should be reported as supplementary information.",
  criteria_met == 2 ~
    "TWO OF THREE CRITERIA MET. The composite score may be used with caution alongside subscale scores.",
  criteria_met <= 1 ~
    "FEWER THAN TWO CRITERIA MET. The composite score is NOT justified; score as separate subscales."
)

data.frame(
  Index       = c("ω_h (Omega-Hierarchical)",
                  "ECV (Explained Common Variance)",
                  "PUC (Proportion Uncontaminated Correlations)"),
  Value       = round(c(omega_h, ecv, puc), 3),
  Benchmark   = c("≥ .70", "≥ .60", "≥ .70"),
  Status      = c(ifelse(omega_h >= .70, "✓ Met", "✗ Not Met"),
                  ifelse(ecv     >= .60, "✓ Met", "✗ Not Met"),
                  ifelse(puc     >= .70, "✓ Met", "✗ Not Met")),
  Interpretation = c(
    "Proportion of total-score variance reliably attributable to g",
    "Proportion of common variance attributable to g",
    "Proportion of item pairs primarily reflecting g"
  )
) %>%
  kable(booktabs = TRUE, align = c("l", "c", "c", "c", "l")) %>%
  kable_styling(bootstrap_options = c("striped", "hover"),
                full_width = FALSE, font_size = 13) %>%
  row_spec(which(c(omega_h >= .70, ecv >= .60, puc >= .70)),
           background = "#D5E8D4") %>%
  row_spec(which(!c(omega_h >= .70, ecv >= .60, puc >= .70)),
           background = "#FADBD8")
Index Value Benchmark Status Interpretation
ω_h (Omega-Hierarchical) 0.792 ≥ .70 ✓ Met Proportion of total-score variance reliably attributable to g
ECV (Explained Common Variance) 0.830 ≥ .60 ✓ Met Proportion of common variance attributable to g
PUC (Proportion Uncontaminated Correlations) 0.889 ≥ .70 ✓ Met Proportion of item pairs primarily reflecting g

9 Mediation Analysis

A structural equation modeling framework was used to test the hypothesized mediation model. All three paths (a, b, c’) were estimated simultaneously in a single WLSMV model to avoid bias from sequential estimation. The indirect effect (a × b) was obtained analytically from the product of path coefficients.

Model structure.
X — PTSD (independent variable)
M — Media Traumatization (mediator)
Y — Psychological Distress / SCL-28-SA (dependent variable)

Show / Hide Code
cat("Setup model")
Setup model
Show / Hide Code
# ── Model specification ────────────────────────────────────────────────────────
model.sem <- '
  # Measurement model
  DEP =~ dep1 + dep2 + dep3 + dep4
  ANX =~ anx1 + anx2 + anx3 + anx4
  SOM =~ som1 + som2 + som3 + som4
  EXH =~ exh1 + exh2 + exh3 + exh4
  SEN =~ sen1 + sen2 + sen3 + sen4
  PAR =~ par1 + par2 + par3 + par4
  HOS =~ hos1 + hos2 + hos3 + hos4
  
  # Second-order factor for distress
  G_Distress =~ DEP + ANX + SOM + EXH + SEN + PAR + HOS

  # PTSD measurement model
  PTSD =~ ptsd1 + ptsd2 + ptsd3 + ptsd4 + ptsd5
  ptsd2 ~~ ptsd3

  # Media Traumatization measurement model
  MT =~ mt1 + mt2 + mt3 + mt4 + mt5
  mt1 ~~ mt2

  # Structural model (mediation)
  G_Distress ~ c_prime*PTSD + b*MT
  MT ~ a*PTSD

  # Defined parameters for mediation effects
  direct        := c_prime
  indirect      := a * b
  total         := c_prime + (a * b)
  prop_mediated := (a * b) / (c_prime + (a * b))
'

# ── Fit model ─────────────────────────────────────────────────────────────────
fit.sem <- sem(
  model            = model.sem,
  data             = df,
  estimator        = "WLSMV",
  ordered          = TRUE,
  sampling.weights = "wt",
  std.lv           = TRUE,
  se               = "robust"
)

# ── All parameter estimates — single source for all tables ────────────────────
params.sem <- parameterEstimates(fit.sem, standardized = TRUE, ci = TRUE)

# ── Effects table (defined parameters) ───────────────────────────────────────
effects.sem <- params.sem %>%
  filter(op == ":=") %>%
  select(label, est, se, z, pvalue, ci.lower, ci.upper, std.all) %>%
  mutate(
    Effect_Name = case_when(
      label == "direct"        ~ "Direct Effect (c')",
      label == "indirect"      ~ "Indirect Effect (a x b)",
      label == "total"         ~ "Total Effect (c' + ab)",
      label == "prop_mediated" ~ "Proportion Mediated",
      TRUE ~ label
    ),
    p_fmt = case_when(
      pvalue < .001 ~ "< .001",
      TRUE          ~ sprintf("%.3f", pvalue)
    ),
    sig = case_when(
      pvalue < .001 ~ "***",
      pvalue < .01  ~ "**",
      pvalue < .05  ~ "*",
      TRUE          ~ ""
    ),
    ci_fmt = sprintf("[%.3f, %.3f]", ci.lower, ci.upper)
  )

# ── Proportion mediated footnote string (built once, reused) ──────────────────
prop_row <- effects.sem %>% filter(label == "prop_mediated")

prop_footnote <- sprintf(
  "Proportion mediated = %.1f%% (95%% CI: [%.1f%%, %.1f%%], z = %.2f, p < .001).",
  prop_row$est      * 100,
  prop_row$ci.lower * 100,
  prop_row$ci.upper * 100,
  prop_row$z
)
Show / Hide Code
fit_vals <- fitMeasures(fit.sem, c(
  "chisq.scaled", "df.scaled", "pvalue.scaled",
  "rmsea.robust", "rmsea.ci.lower.robust", "rmsea.ci.upper.robust",
  "cfi.robust", "tli.robust", "srmr"
))

data.frame(
  Index = c(
    "chi-sq (scaled)", "df", "p (chi-sq)",
    "RMSEA (robust)", "RMSEA 90% CI lower", "RMSEA 90% CI upper",
    "CFI (robust)", "TLI (robust)", "SRMR"
  ),
  Value = round(as.numeric(fit_vals), 3),
  Threshold = c(
    "--", "--", "--",
    "< .060", "--", "--",
    "> .950", "> .950", "< .080"
  ),
  Status = c(
    "--", "--", "--",
    ifelse(fit_vals["rmsea.robust"] < .060, "OK", "~"),
    "--", "--",
    ifelse(fit_vals["cfi.robust"]   > .900, "OK", "~"),
    ifelse(fit_vals["tli.robust"]   > .900, "OK", "~"),
    ifelse(fit_vals["srmr"]         < .080, "OK", "~")
  )
) %>%
  kable(col.names = c("Fit Index", "Value", "Threshold", "Status"),
        align = "lrcc") %>%
  kable_styling(bootstrap_options = c("striped", "hover"), full_width = FALSE, font_size = 13) %>%
  column_spec(4, bold = TRUE) %>%
  footnote(
    general = paste0(
      "OK = meets recommended threshold; ~ = borderline. ",
      "Robust indices reported for WLSMV estimator with ordinal indicators."
    ),
    general_title     = "Note:",
    footnote_as_chunk = TRUE
  )
Table 28: Robust Model Fit Indices — SEM Mediation Model
Fit Index Value Threshold Status
chi-sq (scaled) 2996.066 -- --
df 653.000 -- --
p (chi-sq) 0.000 -- --
RMSEA (robust) 0.051 < .060 OK
RMSEA 90% CI lower 0.049 -- --
RMSEA 90% CI upper 0.052 -- --
CFI (robust) 0.911 > .950 OK
TLI (robust) 0.904 > .950 OK
SRMR 0.038 < .080 OK
Note: OK = meets recommended threshold; ~ = borderline. Robust indices reported for WLSMV estimator with ordinal indicators.
Show / Hide Code
params.sem %>%
  filter(op == "~") %>%
  select(lhs, rhs, est, se, z, pvalue, ci.lower, ci.upper, std.all) %>%
  mutate(
    sig = case_when(
      pvalue < .001 ~ "***",
      pvalue < .01  ~ "**",
      pvalue < .05  ~ "*",
      TRUE          ~ ""
    ),
    ci_fmt = sprintf("[%.3f, %.3f]", ci.lower, ci.upper),
    Path_Label = case_when(
      lhs == "MTRVM" & rhs == "PTSR"  ~ "a (PTSD -> Media Trauma)",
      lhs == "SCL28" & rhs == "PTSR"  ~ "c' (PTSD -> Distress, Direct)",
      lhs == "SCL28" & rhs == "MTRVM" ~ "b (Media Trauma -> Distress)",
      TRUE ~ paste(lhs, "~", rhs)
    )
  ) %>%
  arrange(desc(Path_Label)) %>%
  select(Path_Label, est, se, z, ci_fmt, std.all, sig) %>%
  kable(digits = 3,
        col.names = c("Path", "B", "SE", "z", "95% CI", "beta (std)", ""),
        align = "lrrrrrc") %>%
  kable_styling(bootstrap_options = c("striped", "hover"), 
                full_width = FALSE, 
                font_size = 13) %>%
  column_spec(1, bold = TRUE, width = "9cm") %>%
  column_spec(5, width = "3.5cm")
Table 29: Structural Regression Coefficients — SEM Mediation Model (WLSMV, Robust SE)
Path B SE z 95% CI beta (std)
MT ~ PTSD 0.844 0.037 23.06 [0.772, 0.915] 0.645 ***
G_Distress ~ PTSD 1.171 0.055 21.28 [1.063, 1.279] 0.723 ***
G_Distress ~ MT 0.116 0.030 3.93 [0.058, 0.174] 0.094 ***

Note. *** p < .001, ** p < .01, * p < .05. B = unstandardized coefficient; beta (std) = fully standardized coefficient; 95% CI estimated via the delta method (robust SE).

Show / Hide Code
effects.sem %>%
  filter(label != "prop_mediated") %>%
  select(Effect_Name, est, se, z, ci_fmt, std.all, sig) %>%
  kable(digits = 3,
        col.names = c("Effect", "B", "SE", "z", "95% CI", "beta (std)", ""),
        align     = "lrrrrrc") %>%
  kable_styling(bootstrap_options = c("striped", "hover"), 
                full_width = FALSE, 
                font_size = 13) %>%
  column_spec(1, bold = TRUE, width = "7cm") %>%
  column_spec(5, width = "3.5cm")
Table 30: Decomposition of Mediation Effects with 95% Confidence Intervals (Delta Method)
Effect B SE z 95% CI beta (std)
Direct Effect (c') 1.171 0.055 21.28 [1.063, 1.279] 0.723 ***
Indirect Effect (a x b) 0.098 0.025 3.96 [0.049, 0.146] 0.060 ***
Total Effect (c' + ab) 1.269 0.047 27.05 [1.177, 1.361] 0.783 ***

Note. *** p < .001, ** p < .01, * p < .05. B = unstandardized coefficient; beta (std) = fully standardized coefficient; 95% CI estimated via the delta method (robust SE). r prop_footnote

Show / Hide Code
library(kableExtra)
library(dplyr)

# 1. Отримуємо оцінки параметрів
est <- parameterEstimates(fit.sem)

# 2. Фільтруємо рядок та форматуємо нові колонки
prop_table_data <- est %>%
  filter(label == "prop_mediated") %>%
  mutate(
    # Генеруємо зірочки значущості
    sig = case_when(
      pvalue < 0.001 ~ "***",
      pvalue < 0.01  ~ "**",
      pvalue < 0.05  ~ "*",
      TRUE ~ ""
    ),
    # Об'єднуємо CI у формат [Lower, Upper] для узгодженості з Таблицею 30
    ci_fmt = sprintf("[%.3f, %.3f]", ci.lower, ci.upper)
  ) %>%
  # Залишаємо лише потрібні колонки (без сирого p-value, оскільки є зірочки)
  select(label, est, se, z, ci_fmt, sig)

# 3. Формуємо таблицю
prop_table_data %>%
  kbl(
    booktabs = TRUE, 
    digits = 3,
    col.names = c("Parameter", "Estimate", "Std.Error", "z", "95% CI", ""),
    align = "lrrrrc"
  ) %>%
  kable_styling(
    bootstrap_options = c("striped", "hover", "condensed"),
    full_width = FALSE,
    position = "center"
  ) %>%
  column_spec(1, bold = TRUE) %>%
  column_spec(6, width = "1cm") # Трохи місця для зірочок
Table 31: Proportion of the Total Effect Mediated
Parameter Estimate Std.Error z 95% CI
prop_mediated 0.077 0.02 3.87 [0.038, 0.116] ***
Show / Hide Code
prop_med    <- effects.sem %>% filter(label == "prop_mediated") %>% pull(est)
indirect_p  <- effects.sem %>% filter(label == "indirect")      %>% pull(pvalue)
indirect_ci <- effects.sem %>% filter(label == "indirect")      %>% pull(ci_fmt)
direct_std  <- effects.sem %>% filter(label == "direct")        %>% pull(std.all)

size <- dplyr::case_when(
  prop_med < .20 ~ "small",
  prop_med < .50 ~ "moderate",
  TRUE           ~ "large"
)

if (indirect_p < .05) {
  cat(sprintf(
    paste0(
      "The indirect effect is statistically significant (p < .001; 95%% CI: %s).\n",
      "Media Traumatization mediates %.1f%% of the total PTSD -> Distress effect ",
      "(effect size: %s).\n",
      "The substantial direct path (beta = %.3f) indicates partial mediation."
    ),
    indirect_ci,
    prop_med * 100,
    size,
    direct_std
  ))
} else {
  cat("The indirect effect is NOT statistically significant (p >= .05).\n")
}
The indirect effect is statistically significant (p < .001; 95% CI: [0.049, 0.146]).
Media Traumatization mediates 7.7% of the total PTSD -> Distress effect (effect size: small).
The substantial direct path (beta = 0.723) indicates partial mediation.
Show / Hide Code
latent_corr <- lavInspect(fit.sem, "cor.lv")

# Використовуємо нові назви латентних факторів з моделі
main_vars   <- c("PTSD", "MT", "G_Distress")

latent_corr[main_vars, main_vars] %>%
  round(3) %>%
  as.data.frame() %>%
  kable(align = "ccc",
        col.names = c("PTSD", "Media Trauma", "General Distress")) %>%
  kable_styling(bootstrap_options = c("striped", "hover"), full_width = FALSE, font_size = 13)
Table 32: Latent Variable Correlation Matrix — Key Constructs
PTSD Media Trauma General Distress
PTSD 1.000 0.645 0.783
MT 0.645 1.000 0.560
G_Distress 0.783 0.560 1.000

Note. Latent correlations estimated from the WLSMV SEM model.

Show / Hide Code
# 1. Complex SEM Diagram
semPlot::semPaths(fit.sem, what = "std", rotation = 2, layout = "tree2", edge.label.cex = 0.95, residuals = FALSE, intercepts = FALSE, exoVar = FALSE)

Show / Hide Code
#| label: fig-sem-diagram
#| fig-cap: "Conceptual Mediation Diagram with Standardized Path Coefficients"

# 1. Вилучення коефіцієнтів (як і раніше)
get_std <- function(lhs_var, rhs_var) {
  params.sem %>%
    filter(lhs == lhs_var, rhs == rhs_var, op == "~") %>%
    pull(std.all) %>%
    round(3)
}

a_coef       <- get_std("MT", "PTSD")
b_coef       <- get_std("G_Distress", "MT")
cprime_coef  <- get_std("G_Distress", "PTSD")

indirect_std <- effects.sem %>% filter(label == "indirect") %>% pull(std.all) %>% round(3)
total_std    <- effects.sem %>% filter(label == "total")    %>% pull(std.all) %>% round(3)

# 2. Покращена візуалізація (з виправленими лапками та екрануванням)
grViz(sprintf("
  digraph mediation {

    graph [layout = dot, rankdir = LR,
           fontname = 'Arial', bgcolor = 'white']

    node [shape = ellipse, style = filled,
          fillcolor = '#F0F0F0', color = '#333333', 
          fontname = 'Arial', fontsize = 14, width = 2.0]

    edge [fontname = 'Arial', fontsize = 12, color = '#222222', penwidth = 1.2]

    PTSD       [label = 'PTSD']
    MT         [label = 'Media Traumatization']
    G_Distress [label = 'Psychological Distress']

    PTSD -> MT         [label = '  a = %s***']
    MT   -> G_Distress [label = '  b = %s***']
    PTSD -> G_Distress [label = '  c\\' = %s***', style = dashed]

    subgraph cluster_summary {
      label     = 'Mediation Analysis (Standardized)'
      fontname  = 'Arial-Italic'
      fontsize  = 11
      style     = rounded
      color     = '#AAAAAA'

      info [shape = box, fillcolor = '#FFFFFF', color = 'white', fontsize = 11,
            label = 'Indirect effect (a x b): beta = %s***\\nTotal effect (c): beta = %s***']
    }
  }
", a_coef, b_coef, cprime_coef, indirect_std, total_std))
Figure 8: Conceptual Mediation Diagram with Standardized Path Coefficients

References

Дембіцький, С. (2023). Стресові стани населення України в контексті війни. Rating Group. https://ratinggroup.ua/research/ukraine/stresovi_stany_naselennya_ukrainy_v_konteksti_viyni.html

Дембіцький, С., Головаха, Є., & Степаненко, В. (2025). Стресові стани населення України в контексті війни: досвід соціологічного вивчення. Інститут соціології НАН України.

APPENDIX: Full lavaan Output

9.1 PTSD

Show / Hide Code
summary(fit.cfa.ptsd, standardized = TRUE, fit.measures = TRUE)
lavaan 0.6-21 ended normally after 19 iterations

  Estimator                                       DWLS
  Optimization method                           NLMINB
  Number of model parameters                        26

  Number of observations                          2712
  Sampling weights variable                         wt

Model Test User Model:
                                              Standard      Scaled
  Test Statistic                                12.537      37.181
  Degrees of freedom                                 4           4
  P-value (Unknown)                                 NA       0.000
  Scaling correction factor                                  0.338
  Shift parameter                                            0.062
    simple second-order correction                                

Model Test Baseline Model:

  Test statistic                             27606.001   16678.974
  Degrees of freedom                                10          10
  P-value                                           NA       0.000
  Scaling correction factor                                  1.656

User Model versus Baseline Model:

  Comparative Fit Index (CFI)                    1.000       0.998
  Tucker-Lewis Index (TLI)                       0.999       0.995
                                                                  
  Robust Comparative Fit Index (CFI)                         0.995
  Robust Tucker-Lewis Index (TLI)                            0.988

Root Mean Square Error of Approximation:

  RMSEA                                          0.028       0.055
  90 Percent confidence interval - lower         0.011       0.040
  90 Percent confidence interval - upper         0.046       0.072
  P-value H_0: RMSEA <= 0.050                    0.978       0.266
  P-value H_0: RMSEA >= 0.080                    0.000       0.007
                                                                  
  Robust RMSEA                                               0.060
  90 Percent confidence interval - lower                     0.042
  90 Percent confidence interval - upper                     0.079
  P-value H_0: Robust RMSEA <= 0.050                         0.170
  P-value H_0: Robust RMSEA >= 0.080                         0.039

Standardized Root Mean Square Residual:

  SRMR                                           0.012       0.012

Parameter Estimates:

  Parameterization                               Delta
  Standard errors                           Robust.sem
  Information                                 Expected
  Information saturated (h1) model        Unstructured

Latent Variables:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
  PTSD =~                                                               
    ptsd1             0.786    0.010   75.182    0.000    0.786    0.786
    ptsd2             0.767    0.011   69.090    0.000    0.767    0.767
    ptsd3             0.823    0.009   93.174    0.000    0.823    0.823
    ptsd4             0.845    0.008  106.848    0.000    0.845    0.845
    ptsd5             0.780    0.010   81.258    0.000    0.780    0.780

Covariances:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
 .ptsd2 ~~                                                              
   .ptsd3             0.076    0.011    6.743    0.000    0.076    0.209

Thresholds:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
    ptsd1|t1         -0.898    0.031  -28.862    0.000   -0.898   -0.898
    ptsd1|t2         -0.263    0.027   -9.710    0.000   -0.263   -0.263
    ptsd1|t3          1.133    0.034   33.255    0.000    1.133    1.133
    ptsd1|t4          1.893    0.053   36.011    0.000    1.893    1.893
    ptsd2|t1         -0.505    0.028  -18.113    0.000   -0.505   -0.505
    ptsd2|t2          0.118    0.027    4.398    0.000    0.118    0.118
    ptsd2|t3          1.355    0.037   36.418    0.000    1.355    1.355
    ptsd2|t4          1.928    0.055   35.170    0.000    1.928    1.928
    ptsd3|t1         -0.482    0.028  -17.218    0.000   -0.482   -0.482
    ptsd3|t2          0.162    0.027    6.033    0.000    0.162    0.162
    ptsd3|t3          1.434    0.039   37.164    0.000    1.434    1.434
    ptsd3|t4          2.073    0.060   34.667    0.000    2.073    2.073
    ptsd4|t1         -0.856    0.030  -28.319    0.000   -0.856   -0.856
    ptsd4|t2         -0.231    0.027   -8.590    0.000   -0.231   -0.231
    ptsd4|t3          1.077    0.033   32.877    0.000    1.077    1.077
    ptsd4|t4          1.819    0.051   35.894    0.000    1.819    1.819
    ptsd5|t1         -0.480    0.028  -17.384    0.000   -0.480   -0.480
    ptsd5|t2          0.053    0.027    1.983    0.047    0.053    0.053
    ptsd5|t3          1.282    0.036   35.703    0.000    1.282    1.282
    ptsd5|t4          2.004    0.059   34.142    0.000    2.004    2.004

Variances:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
   .ptsd1             0.382                               0.382    0.382
   .ptsd2             0.411                               0.411    0.411
   .ptsd3             0.322                               0.322    0.322
   .ptsd4             0.285                               0.285    0.285
   .ptsd5             0.391                               0.391    0.391
    PTSD              1.000                               1.000    1.000

9.2 Media Traumatization

Show / Hide Code
summary(fit.cfa.mt, standardized = TRUE, fit.measures = TRUE, rsquare = TRUE)
lavaan 0.6-21 ended normally after 18 iterations

  Estimator                                       DWLS
  Optimization method                           NLMINB
  Number of model parameters                        26

  Number of observations                          2712
  Sampling weights variable                         wt

Model Test User Model:
                                              Standard      Scaled
  Test Statistic                                 6.576      16.705
  Degrees of freedom                                 4           4
  P-value (Unknown)                                 NA       0.002
  Scaling correction factor                                  0.397
  Shift parameter                                            0.127
    simple second-order correction                                

Model Test Baseline Model:

  Test statistic                             15809.967   10502.585
  Degrees of freedom                                10          10
  P-value                                           NA       0.000
  Scaling correction factor                                  1.506

User Model versus Baseline Model:

  Comparative Fit Index (CFI)                    1.000       0.999
  Tucker-Lewis Index (TLI)                       1.000       0.997
                                                                  
  Robust Comparative Fit Index (CFI)                         0.997
  Robust Tucker-Lewis Index (TLI)                            0.994

Root Mean Square Error of Approximation:

  RMSEA                                          0.015       0.034
  90 Percent confidence interval - lower         0.000       0.018
  90 Percent confidence interval - upper         0.036       0.052
  P-value H_0: RMSEA <= 0.050                    0.999       0.926
  P-value H_0: RMSEA >= 0.080                    0.000       0.000
                                                                  
  Robust RMSEA                                               0.037
  90 Percent confidence interval - lower                     0.019
  90 Percent confidence interval - upper                     0.056
  P-value H_0: Robust RMSEA <= 0.050                         0.856
  P-value H_0: Robust RMSEA >= 0.080                         0.000

Standardized Root Mean Square Residual:

  SRMR                                           0.010       0.010

Parameter Estimates:

  Parameterization                               Delta
  Standard errors                           Robust.sem
  Information                                 Expected
  Information saturated (h1) model        Unstructured

Latent Variables:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
  MT =~                                                                 
    mt1               0.575    0.016   35.041    0.000    0.575    0.575
    mt2               0.784    0.011   74.521    0.000    0.784    0.784
    mt3               0.816    0.009   89.778    0.000    0.816    0.816
    mt4               0.844    0.009   95.438    0.000    0.844    0.844
    mt5               0.535    0.016   33.963    0.000    0.535    0.535

Covariances:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
 .mt1 ~~                                                                
   .mt2               0.137    0.014    9.928    0.000    0.137    0.271

Thresholds:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
    mt1|t1           -0.566    0.028  -20.233    0.000   -0.566   -0.566
    mt1|t2            0.278    0.027   10.284    0.000    0.278    0.278
    mt1|t3            1.052    0.033   31.929    0.000    1.052    1.052
    mt1|t4            2.040    0.061   33.503    0.000    2.040    2.040
    mt2|t1           -0.857    0.030  -28.278    0.000   -0.857   -0.857
    mt2|t2            0.184    0.027    6.804    0.000    0.184    0.184
    mt2|t3            1.026    0.032   32.152    0.000    1.026    1.026
    mt2|t4            2.043    0.058   35.204    0.000    2.043    2.043
    mt3|t1           -1.267    0.036  -35.652    0.000   -1.267   -1.267
    mt3|t2           -0.241    0.027   -8.914    0.000   -0.241   -0.241
    mt3|t3            0.555    0.028   19.751    0.000    0.555    0.555
    mt3|t4            1.781    0.046   38.612    0.000    1.781    1.781
    mt4|t1           -0.878    0.030  -29.122    0.000   -0.878   -0.878
    mt4|t2            0.122    0.027    4.551    0.000    0.122    0.122
    mt4|t3            0.930    0.031   29.836    0.000    0.930    0.930
    mt4|t4            1.852    0.048   38.371    0.000    1.852    1.852
    mt5|t1           -0.784    0.030  -25.872    0.000   -0.784   -0.784
    mt5|t2            0.154    0.027    5.763    0.000    0.154    0.154
    mt5|t3            1.027    0.032   31.738    0.000    1.027    1.027
    mt5|t4            1.844    0.052   35.424    0.000    1.844    1.844

Variances:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
   .mt1               0.669                               0.669    0.669
   .mt2               0.385                               0.385    0.385
   .mt3               0.335                               0.335    0.335
   .mt4               0.287                               0.287    0.287
   .mt5               0.714                               0.714    0.714
    MT                1.000                               1.000    1.000

R-Square:
                   Estimate
    mt1               0.331
    mt2               0.615
    mt3               0.665
    mt4               0.713
    mt5               0.286

9.3 Distress (SCL-28-SA) CFA Results

Show / Hide Code
summary(fit.harman, standardized = TRUE, fit.measures = TRUE, rsquare =T) 
lavaan 0.6-21 ended normally after 14 iterations

  Estimator                                       DWLS
  Optimization method                           NLMINB
  Number of model parameters                       112

  Number of observations                          2712
  Sampling weights variable                         wt

Model Test User Model:
                                              Standard      Scaled
  Test Statistic                              3213.935    3914.724
  Degrees of freedom                               350         350
  P-value (Unknown)                                 NA       0.000
  Scaling correction factor                                  0.843
  Shift parameter                                          103.574
    simple second-order correction                                

Model Test Baseline Model:

  Test statistic                            120010.523   40103.324
  Degrees of freedom                               378         378
  P-value                                           NA       0.000
  Scaling correction factor                                  3.011

User Model versus Baseline Model:

  Comparative Fit Index (CFI)                    0.976       0.910
  Tucker-Lewis Index (TLI)                       0.974       0.903
                                                                  
  Robust Comparative Fit Index (CFI)                         0.813
  Robust Tucker-Lewis Index (TLI)                            0.798

Root Mean Square Error of Approximation:

  RMSEA                                          0.055       0.061
  90 Percent confidence interval - lower         0.053       0.060
  90 Percent confidence interval - upper         0.057       0.063
  P-value H_0: RMSEA <= 0.050                    0.000       0.000
  P-value H_0: RMSEA >= 0.080                    0.000       0.000
                                                                  
  Robust RMSEA                                               0.080
  90 Percent confidence interval - lower                     0.078
  90 Percent confidence interval - upper                     0.082
  P-value H_0: Robust RMSEA <= 0.050                         0.000
  P-value H_0: Robust RMSEA >= 0.080                         0.540

Standardized Root Mean Square Residual:

  SRMR                                           0.056       0.056

Parameter Estimates:

  Parameterization                               Delta
  Standard errors                           Robust.sem
  Information                                 Expected
  Information saturated (h1) model        Unstructured

Latent Variables:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
  CMB_Factor =~                                                         
    dep1              0.708    0.013   56.005    0.000    0.708    0.708
    dep2              0.618    0.015   42.169    0.000    0.618    0.618
    dep3              0.591    0.016   37.276    0.000    0.591    0.591
    dep4              0.704    0.014   51.274    0.000    0.704    0.704
    anx1              0.707    0.013   56.117    0.000    0.707    0.707
    anx2              0.639    0.014   45.854    0.000    0.639    0.639
    anx3              0.662    0.014   47.924    0.000    0.662    0.662
    anx4              0.677    0.013   50.923    0.000    0.677    0.677
    som1              0.617    0.015   41.140    0.000    0.617    0.617
    som2              0.585    0.016   36.717    0.000    0.585    0.585
    som3              0.592    0.016   36.760    0.000    0.592    0.592
    som4              0.590    0.016   37.789    0.000    0.590    0.590
    exh1              0.697    0.012   56.043    0.000    0.697    0.697
    exh2              0.602    0.015   39.376    0.000    0.602    0.602
    exh3              0.644    0.014   45.600    0.000    0.644    0.644
    exh4              0.602    0.015   39.852    0.000    0.602    0.602
    sen1              0.631    0.016   40.242    0.000    0.631    0.631
    sen2              0.570    0.016   36.500    0.000    0.570    0.570
    sen3              0.489    0.018   27.831    0.000    0.489    0.489
    sen4              0.637    0.015   43.569    0.000    0.637    0.637
    par1              0.477    0.018   25.985    0.000    0.477    0.477
    par2              0.444    0.018   24.062    0.000    0.444    0.444
    par3              0.529    0.015   34.213    0.000    0.529    0.529
    par4              0.585    0.016   36.650    0.000    0.585    0.585
    hos1              0.450    0.018   24.765    0.000    0.450    0.450
    hos2              0.520    0.018   28.298    0.000    0.520    0.520
    hos3              0.555    0.020   28.289    0.000    0.555    0.555
    hos4              0.613    0.015   41.823    0.000    0.613    0.613

Thresholds:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
    dep1|t1          -0.966    0.032  -30.132    0.000   -0.966   -0.966
    dep1|t2           0.507    0.028   18.150    0.000    0.507    0.507
    dep1|t3           1.564    0.042   37.270    0.000    1.564    1.564
    dep2|t1          -0.161    0.027   -5.984    0.000   -0.161   -0.161
    dep2|t2           0.759    0.029   25.840    0.000    0.759    0.759
    dep2|t3           1.567    0.042   37.378    0.000    1.567    1.567
    dep3|t1          -0.033    0.027   -1.215    0.224   -0.033   -0.033
    dep3|t2           0.945    0.032   29.842    0.000    0.945    0.945
    dep3|t3           1.854    0.052   35.798    0.000    1.854    1.854
    dep4|t1           0.207    0.027    7.695    0.000    0.207    0.207
    dep4|t2           1.005    0.032   31.322    0.000    1.005    1.005
    dep4|t3           1.770    0.049   36.229    0.000    1.770    1.770
    anx1|t1          -0.506    0.028  -18.103    0.000   -0.506   -0.506
    anx1|t2           0.736    0.029   25.090    0.000    0.736    0.736
    anx1|t3           1.746    0.046   37.784    0.000    1.746    1.746
    anx2|t1          -0.980    0.032  -30.742    0.000   -0.980   -0.980
    anx2|t2           0.479    0.028   17.272    0.000    0.479    0.479
    anx2|t3           1.535    0.041   37.673    0.000    1.535    1.535
    anx3|t1          -0.484    0.028  -17.356    0.000   -0.484   -0.484
    anx3|t2           0.857    0.030   28.219    0.000    0.857    0.857
    anx3|t3           1.777    0.047   38.111    0.000    1.777    1.777
    anx4|t1          -1.064    0.033  -31.938    0.000   -1.064   -1.064
    anx4|t2           0.504    0.028   18.175    0.000    0.504    0.504
    anx4|t3           1.649    0.043   37.951    0.000    1.649    1.649
    som1|t1          -1.025    0.031  -32.687    0.000   -1.025   -1.025
    som1|t2           0.368    0.028   13.319    0.000    0.368    0.368
    som1|t3           1.495    0.041   36.613    0.000    1.495    1.495
    som2|t1          -0.911    0.031  -29.684    0.000   -0.911   -0.911
    som2|t2           0.510    0.028   18.031    0.000    0.510    0.510
    som2|t3           1.641    0.045   36.501    0.000    1.641    1.641
    som3|t1          -0.150    0.027   -5.599    0.000   -0.150   -0.150
    som3|t2           0.917    0.032   28.561    0.000    0.917    0.917
    som3|t3           1.903    0.055   34.789    0.000    1.903    1.903
    som4|t1          -0.208    0.027   -7.743    0.000   -0.208   -0.208
    som4|t2           1.041    0.033   31.720    0.000    1.041    1.041
    som4|t3           1.947    0.060   32.251    0.000    1.947    1.947
    exh1|t1          -0.854    0.031  -27.586    0.000   -0.854   -0.854
    exh1|t2           0.537    0.028   18.925    0.000    0.537    0.537
    exh1|t3           1.580    0.043   36.833    0.000    1.580    1.580
    exh2|t1          -0.582    0.029  -20.126    0.000   -0.582   -0.582
    exh2|t2           0.783    0.029   26.553    0.000    0.783    0.783
    exh2|t3           1.751    0.047   36.920    0.000    1.751    1.751
    exh3|t1          -0.863    0.031  -27.844    0.000   -0.863   -0.863
    exh3|t2           0.637    0.028   22.355    0.000    0.637    0.637
    exh3|t3           1.746    0.048   36.472    0.000    1.746    1.746
    exh4|t1          -0.567    0.029  -19.719    0.000   -0.567   -0.567
    exh4|t2           0.586    0.028   20.989    0.000    0.586    0.586
    exh4|t3           1.578    0.042   37.990    0.000    1.578    1.578
    sen1|t1          -0.039    0.027   -1.460    0.144   -0.039   -0.039
    sen1|t2           1.002    0.032   31.461    0.000    1.002    1.002
    sen1|t3           1.715    0.047   36.567    0.000    1.715    1.715
    sen2|t1          -0.676    0.029  -23.568    0.000   -0.676   -0.676
    sen2|t2           0.621    0.029   21.614    0.000    0.621    0.621
    sen2|t3           1.434    0.039   36.448    0.000    1.434    1.434
    sen3|t1          -0.370    0.027  -13.553    0.000   -0.370   -0.370
    sen3|t2           0.877    0.030   28.913    0.000    0.877    0.877
    sen3|t3           1.720    0.047   36.436    0.000    1.720    1.720
    sen4|t1          -1.069    0.033  -32.377    0.000   -1.069   -1.069
    sen4|t2           0.428    0.027   15.588    0.000    0.428    0.428
    sen4|t3           1.337    0.037   36.583    0.000    1.337    1.337
    par1|t1          -1.089    0.032  -33.598    0.000   -1.089   -1.089
    par1|t2           0.158    0.027    5.879    0.000    0.158    0.158
    par1|t3           1.063    0.034   31.599    0.000    1.063    1.063
    par2|t1          -0.783    0.030  -26.429    0.000   -0.783   -0.783
    par2|t2           0.689    0.029   23.574    0.000    0.689    0.689
    par2|t3           1.719    0.048   35.705    0.000    1.719    1.719
    par3|t1          -0.962    0.031  -31.146    0.000   -0.962   -0.962
    par3|t2           0.385    0.027   14.037    0.000    0.385    0.385
    par3|t3           1.354    0.038   36.095    0.000    1.354    1.354
    par4|t1          -0.217    0.027   -8.092    0.000   -0.217   -0.217
    par4|t2           0.945    0.031   30.021    0.000    0.945    0.945
    par4|t3           1.702    0.048   35.183    0.000    1.702    1.702
    hos1|t1          -0.687    0.029  -23.294    0.000   -0.687   -0.687
    hos1|t2           0.867    0.030   29.103    0.000    0.867    0.867
    hos1|t3           1.945    0.056   34.623    0.000    1.945    1.945
    hos2|t1           0.106    0.027    3.949    0.000    0.106    0.106
    hos2|t2           1.295    0.035   36.674    0.000    1.295    1.295
    hos2|t3           2.138    0.062   34.613    0.000    2.138    2.138
    hos3|t1           0.624    0.028   22.096    0.000    0.624    0.624
    hos3|t2           1.531    0.040   38.380    0.000    1.531    1.531
    hos3|t3           2.119    0.070   30.421    0.000    2.119    2.119
    hos4|t1          -0.360    0.027  -13.216    0.000   -0.360   -0.360
    hos4|t2           0.994    0.033   30.303    0.000    0.994    0.994
    hos4|t3           1.840    0.053   34.532    0.000    1.840    1.840

Variances:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
   .dep1              0.499                               0.499    0.499
   .dep2              0.617                               0.617    0.617
   .dep3              0.650                               0.650    0.650
   .dep4              0.504                               0.504    0.504
   .anx1              0.500                               0.500    0.500
   .anx2              0.591                               0.591    0.591
   .anx3              0.562                               0.562    0.562
   .anx4              0.541                               0.541    0.541
   .som1              0.619                               0.619    0.619
   .som2              0.658                               0.658    0.658
   .som3              0.650                               0.650    0.650
   .som4              0.652                               0.652    0.652
   .exh1              0.514                               0.514    0.514
   .exh2              0.637                               0.637    0.637
   .exh3              0.585                               0.585    0.585
   .exh4              0.637                               0.637    0.637
   .sen1              0.602                               0.602    0.602
   .sen2              0.676                               0.676    0.676
   .sen3              0.761                               0.761    0.761
   .sen4              0.594                               0.594    0.594
   .par1              0.772                               0.772    0.772
   .par2              0.803                               0.803    0.803
   .par3              0.720                               0.720    0.720
   .par4              0.658                               0.658    0.658
   .hos1              0.797                               0.797    0.797
   .hos2              0.729                               0.729    0.729
   .hos3              0.692                               0.692    0.692
   .hos4              0.625                               0.625    0.625
    CMB_Factor        1.000                               1.000    1.000

R-Square:
                   Estimate
    dep1              0.501
    dep2              0.383
    dep3              0.350
    dep4              0.496
    anx1              0.500
    anx2              0.409
    anx3              0.438
    anx4              0.459
    som1              0.381
    som2              0.342
    som3              0.350
    som4              0.348
    exh1              0.486
    exh2              0.363
    exh3              0.415
    exh4              0.363
    sen1              0.398
    sen2              0.324
    sen3              0.239
    sen4              0.406
    par1              0.228
    par2              0.197
    par3              0.280
    par4              0.342
    hos1              0.203
    hos2              0.271
    hos3              0.308
    hos4              0.375
Show / Hide Code
# Correlated 7-Factor Model
summary(fit.corr, standardized = TRUE, fit.measures = TRUE, rsquare = TRUE)
lavaan 0.6-21 ended normally after 31 iterations

  Estimator                                       DWLS
  Optimization method                           NLMINB
  Number of model parameters                       133

  Number of observations                          2712
  Sampling weights variable                         wt

Model Test User Model:
                                              Standard      Scaled
  Test Statistic                              1384.425    1876.293
  Degrees of freedom                               329         329
  P-value (Unknown)                                 NA       0.000
  Scaling correction factor                                  0.775
  Shift parameter                                           90.239
    simple second-order correction                                

Model Test Baseline Model:

  Test statistic                            120010.523   40103.324
  Degrees of freedom                               378         378
  P-value                                           NA       0.000
  Scaling correction factor                                  3.011

User Model versus Baseline Model:

  Comparative Fit Index (CFI)                    0.991       0.961
  Tucker-Lewis Index (TLI)                       0.990       0.955
                                                                  
  Robust Comparative Fit Index (CFI)                         0.912
  Robust Tucker-Lewis Index (TLI)                            0.899

Root Mean Square Error of Approximation:

  RMSEA                                          0.034       0.042
  90 Percent confidence interval - lower         0.033       0.040
  90 Percent confidence interval - upper         0.036       0.043
  P-value H_0: RMSEA <= 0.050                    1.000       1.000
  P-value H_0: RMSEA >= 0.080                    0.000       0.000
                                                                  
  Robust RMSEA                                               0.057
  90 Percent confidence interval - lower                     0.054
  90 Percent confidence interval - upper                     0.059
  P-value H_0: Robust RMSEA <= 0.050                         0.000
  P-value H_0: Robust RMSEA >= 0.080                         0.000

Standardized Root Mean Square Residual:

  SRMR                                           0.037       0.037

Parameter Estimates:

  Parameterization                               Delta
  Standard errors                           Robust.sem
  Information                                 Expected
  Information saturated (h1) model        Unstructured

Latent Variables:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
  DEP =~                                                                
    dep1              0.777    0.014   55.850    0.000    0.777    0.777
    dep2              0.677    0.015   46.183    0.000    0.677    0.677
    dep3              0.646    0.017   39.017    0.000    0.646    0.646
    dep4              0.772    0.014   57.035    0.000    0.772    0.772
  ANX =~                                                                
    anx1              0.744    0.013   58.194    0.000    0.744    0.744
    anx2              0.673    0.014   47.984    0.000    0.673    0.673
    anx3              0.695    0.014   48.811    0.000    0.695    0.695
    anx4              0.712    0.013   52.884    0.000    0.712    0.712
  SOM =~                                                                
    som1              0.726    0.016   45.087    0.000    0.726    0.726
    som2              0.689    0.017   39.816    0.000    0.689    0.689
    som3              0.696    0.016   43.908    0.000    0.696    0.696
    som4              0.695    0.016   43.259    0.000    0.695    0.695
  EXH =~                                                                
    exh1              0.752    0.013   57.428    0.000    0.752    0.752
    exh2              0.647    0.015   41.947    0.000    0.647    0.647
    exh3              0.693    0.014   50.225    0.000    0.693    0.693
    exh4              0.647    0.016   40.900    0.000    0.647    0.647
  SEN =~                                                                
    sen1              0.719    0.017   43.089    0.000    0.719    0.719
    sen2              0.648    0.015   42.042    0.000    0.648    0.648
    sen3              0.559    0.018   31.209    0.000    0.559    0.559
    sen4              0.725    0.016   45.658    0.000    0.725    0.725
  PAR =~                                                                
    par1              0.578    0.020   29.203    0.000    0.578    0.578
    par2              0.535    0.021   25.515    0.000    0.535    0.535
    par3              0.643    0.017   38.839    0.000    0.643    0.643
    par4              0.710    0.017   41.316    0.000    0.710    0.710
  HOS =~                                                                
    hos1              0.573    0.020   28.290    0.000    0.573    0.573
    hos2              0.664    0.019   34.377    0.000    0.664    0.664
    hos3              0.703    0.022   32.198    0.000    0.703    0.703
    hos4              0.787    0.016   49.777    0.000    0.787    0.787

Covariances:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
  DEP ~~                                                                
    ANX               0.873    0.012   70.947    0.000    0.873    0.873
    SOM               0.695    0.018   38.886    0.000    0.695    0.695
    EXH               0.858    0.015   56.098    0.000    0.858    0.858
    SEN               0.746    0.017   43.413    0.000    0.746    0.746
    PAR               0.711    0.019   37.785    0.000    0.711    0.711
    HOS               0.655    0.021   30.847    0.000    0.655    0.655
  ANX ~~                                                                
    SOM               0.831    0.014   59.965    0.000    0.831    0.831
    EXH               0.860    0.014   62.404    0.000    0.860    0.860
    SEN               0.813    0.015   53.544    0.000    0.813    0.813
    PAR               0.720    0.018   39.678    0.000    0.720    0.720
    HOS               0.680    0.019   36.397    0.000    0.680    0.680
  SOM ~~                                                                
    EXH               0.754    0.016   46.866    0.000    0.754    0.754
    SEN               0.644    0.020   32.368    0.000    0.644    0.644
    PAR               0.659    0.020   33.633    0.000    0.659    0.659
    HOS               0.582    0.022   26.418    0.000    0.582    0.582
  EXH ~~                                                                
    SEN               0.816    0.015   53.541    0.000    0.816    0.816
    PAR               0.690    0.020   35.143    0.000    0.690    0.690
    HOS               0.693    0.020   35.200    0.000    0.693    0.693
  SEN ~~                                                                
    PAR               0.754    0.018   41.467    0.000    0.754    0.754
    HOS               0.645    0.022   29.587    0.000    0.645    0.645
  PAR ~~                                                                
    HOS               0.651    0.021   30.940    0.000    0.651    0.651

Thresholds:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
    dep1|t1          -0.966    0.032  -30.132    0.000   -0.966   -0.966
    dep1|t2           0.507    0.028   18.150    0.000    0.507    0.507
    dep1|t3           1.564    0.042   37.270    0.000    1.564    1.564
    dep2|t1          -0.161    0.027   -5.984    0.000   -0.161   -0.161
    dep2|t2           0.759    0.029   25.840    0.000    0.759    0.759
    dep2|t3           1.567    0.042   37.378    0.000    1.567    1.567
    dep3|t1          -0.033    0.027   -1.215    0.224   -0.033   -0.033
    dep3|t2           0.945    0.032   29.842    0.000    0.945    0.945
    dep3|t3           1.854    0.052   35.798    0.000    1.854    1.854
    dep4|t1           0.207    0.027    7.695    0.000    0.207    0.207
    dep4|t2           1.005    0.032   31.322    0.000    1.005    1.005
    dep4|t3           1.770    0.049   36.229    0.000    1.770    1.770
    anx1|t1          -0.506    0.028  -18.103    0.000   -0.506   -0.506
    anx1|t2           0.736    0.029   25.090    0.000    0.736    0.736
    anx1|t3           1.746    0.046   37.784    0.000    1.746    1.746
    anx2|t1          -0.980    0.032  -30.742    0.000   -0.980   -0.980
    anx2|t2           0.479    0.028   17.272    0.000    0.479    0.479
    anx2|t3           1.535    0.041   37.673    0.000    1.535    1.535
    anx3|t1          -0.484    0.028  -17.356    0.000   -0.484   -0.484
    anx3|t2           0.857    0.030   28.219    0.000    0.857    0.857
    anx3|t3           1.777    0.047   38.111    0.000    1.777    1.777
    anx4|t1          -1.064    0.033  -31.938    0.000   -1.064   -1.064
    anx4|t2           0.504    0.028   18.175    0.000    0.504    0.504
    anx4|t3           1.649    0.043   37.951    0.000    1.649    1.649
    som1|t1          -1.025    0.031  -32.687    0.000   -1.025   -1.025
    som1|t2           0.368    0.028   13.319    0.000    0.368    0.368
    som1|t3           1.495    0.041   36.613    0.000    1.495    1.495
    som2|t1          -0.911    0.031  -29.684    0.000   -0.911   -0.911
    som2|t2           0.510    0.028   18.031    0.000    0.510    0.510
    som2|t3           1.641    0.045   36.501    0.000    1.641    1.641
    som3|t1          -0.150    0.027   -5.599    0.000   -0.150   -0.150
    som3|t2           0.917    0.032   28.561    0.000    0.917    0.917
    som3|t3           1.903    0.055   34.789    0.000    1.903    1.903
    som4|t1          -0.208    0.027   -7.743    0.000   -0.208   -0.208
    som4|t2           1.041    0.033   31.720    0.000    1.041    1.041
    som4|t3           1.947    0.060   32.251    0.000    1.947    1.947
    exh1|t1          -0.854    0.031  -27.586    0.000   -0.854   -0.854
    exh1|t2           0.537    0.028   18.925    0.000    0.537    0.537
    exh1|t3           1.580    0.043   36.833    0.000    1.580    1.580
    exh2|t1          -0.582    0.029  -20.126    0.000   -0.582   -0.582
    exh2|t2           0.783    0.029   26.553    0.000    0.783    0.783
    exh2|t3           1.751    0.047   36.920    0.000    1.751    1.751
    exh3|t1          -0.863    0.031  -27.844    0.000   -0.863   -0.863
    exh3|t2           0.637    0.028   22.355    0.000    0.637    0.637
    exh3|t3           1.746    0.048   36.472    0.000    1.746    1.746
    exh4|t1          -0.567    0.029  -19.719    0.000   -0.567   -0.567
    exh4|t2           0.586    0.028   20.989    0.000    0.586    0.586
    exh4|t3           1.578    0.042   37.990    0.000    1.578    1.578
    sen1|t1          -0.039    0.027   -1.460    0.144   -0.039   -0.039
    sen1|t2           1.002    0.032   31.461    0.000    1.002    1.002
    sen1|t3           1.715    0.047   36.567    0.000    1.715    1.715
    sen2|t1          -0.676    0.029  -23.568    0.000   -0.676   -0.676
    sen2|t2           0.621    0.029   21.614    0.000    0.621    0.621
    sen2|t3           1.434    0.039   36.448    0.000    1.434    1.434
    sen3|t1          -0.370    0.027  -13.553    0.000   -0.370   -0.370
    sen3|t2           0.877    0.030   28.913    0.000    0.877    0.877
    sen3|t3           1.720    0.047   36.436    0.000    1.720    1.720
    sen4|t1          -1.069    0.033  -32.377    0.000   -1.069   -1.069
    sen4|t2           0.428    0.027   15.588    0.000    0.428    0.428
    sen4|t3           1.337    0.037   36.583    0.000    1.337    1.337
    par1|t1          -1.089    0.032  -33.598    0.000   -1.089   -1.089
    par1|t2           0.158    0.027    5.879    0.000    0.158    0.158
    par1|t3           1.063    0.034   31.599    0.000    1.063    1.063
    par2|t1          -0.783    0.030  -26.429    0.000   -0.783   -0.783
    par2|t2           0.689    0.029   23.574    0.000    0.689    0.689
    par2|t3           1.719    0.048   35.705    0.000    1.719    1.719
    par3|t1          -0.962    0.031  -31.146    0.000   -0.962   -0.962
    par3|t2           0.385    0.027   14.037    0.000    0.385    0.385
    par3|t3           1.354    0.038   36.095    0.000    1.354    1.354
    par4|t1          -0.217    0.027   -8.092    0.000   -0.217   -0.217
    par4|t2           0.945    0.031   30.021    0.000    0.945    0.945
    par4|t3           1.702    0.048   35.183    0.000    1.702    1.702
    hos1|t1          -0.687    0.029  -23.294    0.000   -0.687   -0.687
    hos1|t2           0.867    0.030   29.103    0.000    0.867    0.867
    hos1|t3           1.945    0.056   34.623    0.000    1.945    1.945
    hos2|t1           0.106    0.027    3.949    0.000    0.106    0.106
    hos2|t2           1.295    0.035   36.674    0.000    1.295    1.295
    hos2|t3           2.138    0.062   34.613    0.000    2.138    2.138
    hos3|t1           0.624    0.028   22.096    0.000    0.624    0.624
    hos3|t2           1.531    0.040   38.380    0.000    1.531    1.531
    hos3|t3           2.119    0.070   30.421    0.000    2.119    2.119
    hos4|t1          -0.360    0.027  -13.216    0.000   -0.360   -0.360
    hos4|t2           0.994    0.033   30.303    0.000    0.994    0.994
    hos4|t3           1.840    0.053   34.532    0.000    1.840    1.840

Variances:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
   .dep1              0.396                               0.396    0.396
   .dep2              0.541                               0.541    0.541
   .dep3              0.582                               0.582    0.582
   .dep4              0.405                               0.405    0.405
   .anx1              0.447                               0.447    0.447
   .anx2              0.546                               0.546    0.546
   .anx3              0.516                               0.516    0.516
   .anx4              0.494                               0.494    0.494
   .som1              0.473                               0.473    0.473
   .som2              0.526                               0.526    0.526
   .som3              0.516                               0.516    0.516
   .som4              0.517                               0.517    0.517
   .exh1              0.435                               0.435    0.435
   .exh2              0.582                               0.582    0.582
   .exh3              0.519                               0.519    0.519
   .exh4              0.581                               0.581    0.581
   .sen1              0.483                               0.483    0.483
   .sen2              0.579                               0.579    0.579
   .sen3              0.688                               0.688    0.688
   .sen4              0.474                               0.474    0.474
   .par1              0.666                               0.666    0.666
   .par2              0.714                               0.714    0.714
   .par3              0.586                               0.586    0.586
   .par4              0.495                               0.495    0.495
   .hos1              0.672                               0.672    0.672
   .hos2              0.560                               0.560    0.560
   .hos3              0.505                               0.505    0.505
   .hos4              0.381                               0.381    0.381
    DEP               1.000                               1.000    1.000
    ANX               1.000                               1.000    1.000
    SOM               1.000                               1.000    1.000
    EXH               1.000                               1.000    1.000
    SEN               1.000                               1.000    1.000
    PAR               1.000                               1.000    1.000
    HOS               1.000                               1.000    1.000

R-Square:
                   Estimate
    dep1              0.604
    dep2              0.459
    dep3              0.418
    dep4              0.595
    anx1              0.553
    anx2              0.454
    anx3              0.484
    anx4              0.506
    som1              0.527
    som2              0.474
    som3              0.484
    som4              0.483
    exh1              0.565
    exh2              0.418
    exh3              0.481
    exh4              0.419
    sen1              0.517
    sen2              0.421
    sen3              0.312
    sen4              0.526
    par1              0.334
    par2              0.286
    par3              0.414
    par4              0.505
    hos1              0.328
    hos2              0.440
    hos3              0.495
    hos4              0.619
Show / Hide Code
# Hierarchical (Second-Order) Model
summary(fit.cfa, standardized = TRUE, fit.measures = TRUE, rsquare = TRUE)
lavaan 0.6-21 ended normally after 113 iterations

  Estimator                                       DWLS
  Optimization method                           NLMINB
  Number of model parameters                       119

  Number of observations                          2712
  Sampling weights variable                         wt

Model Test User Model:
                                              Standard      Scaled
  Test Statistic                              1559.660    1982.905
  Degrees of freedom                               343         343
  P-value (Unknown)                                 NA       0.000
  Scaling correction factor                                  0.828
  Shift parameter                                           99.395
    simple second-order correction                                

Model Test Baseline Model:

  Test statistic                            120010.523   40103.324
  Degrees of freedom                               378         378
  P-value                                           NA       0.000
  Scaling correction factor                                  3.011

User Model versus Baseline Model:

  Comparative Fit Index (CFI)                    0.990       0.959
  Tucker-Lewis Index (TLI)                       0.989       0.955
                                                                  
  Robust Comparative Fit Index (CFI)                         0.906
  Robust Tucker-Lewis Index (TLI)                            0.896

Root Mean Square Error of Approximation:

  RMSEA                                          0.036       0.042
  90 Percent confidence interval - lower         0.034       0.040
  90 Percent confidence interval - upper         0.038       0.044
  P-value H_0: RMSEA <= 0.050                    1.000       1.000
  P-value H_0: RMSEA >= 0.080                    0.000       0.000
                                                                  
  Robust RMSEA                                               0.057
  90 Percent confidence interval - lower                     0.055
  90 Percent confidence interval - upper                     0.060
  P-value H_0: Robust RMSEA <= 0.050                         0.000
  P-value H_0: Robust RMSEA >= 0.080                         0.000

Standardized Root Mean Square Residual:

  SRMR                                           0.040       0.040

Parameter Estimates:

  Parameterization                               Delta
  Standard errors                           Robust.sem
  Information                                 Expected
  Information saturated (h1) model        Unstructured

Latent Variables:
                      Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
  DEP =~                                                                   
    dep1                 0.346    0.018   19.429    0.000    0.778    0.778
    dep2                 0.301    0.014   20.953    0.000    0.677    0.677
    dep3                 0.287    0.015   19.545    0.000    0.646    0.646
    dep4                 0.343    0.016   21.261    0.000    0.771    0.771
  ANX =~                                                                   
    anx1                 0.222    0.018   12.055    0.000    0.744    0.744
    anx2                 0.201    0.017   12.130    0.000    0.673    0.673
    anx3                 0.208    0.018   11.827    0.000    0.696    0.696
    anx4                 0.213    0.018   12.108    0.000    0.712    0.712
  SOM =~                                                                   
    som1                 0.426    0.016   27.348    0.000    0.726    0.726
    som2                 0.404    0.016   25.986    0.000    0.689    0.689
    som3                 0.408    0.013   30.458    0.000    0.696    0.696
    som4                 0.407    0.014   28.474    0.000    0.694    0.694
  EXH =~                                                                   
    exh1                 0.285    0.020   14.028    0.000    0.751    0.751
    exh2                 0.245    0.017   14.439    0.000    0.647    0.647
    exh3                 0.263    0.018   14.778    0.000    0.693    0.693
    exh4                 0.246    0.018   13.816    0.000    0.648    0.648
  SEN =~                                                                   
    sen1                 0.368    0.018   20.993    0.000    0.719    0.719
    sen2                 0.332    0.015   22.911    0.000    0.649    0.649
    sen3                 0.286    0.013   21.243    0.000    0.558    0.558
    sen4                 0.372    0.018   20.825    0.000    0.726    0.726
  PAR =~                                                                   
    par1                 0.347    0.015   22.886    0.000    0.578    0.578
    par2                 0.320    0.016   20.042    0.000    0.534    0.534
    par3                 0.386    0.016   24.728    0.000    0.643    0.643
    par4                 0.426    0.017   24.929    0.000    0.711    0.711
  HOS =~                                                                   
    hos1                 0.385    0.016   23.593    0.000    0.572    0.572
    hos2                 0.446    0.016   27.478    0.000    0.664    0.664
    hos3                 0.473    0.019   24.912    0.000    0.703    0.703
    hos4                 0.529    0.018   28.594    0.000    0.787    0.787
  General_Distress =~                                                      
    DEP                  2.015    0.111   18.160    0.000    0.896    0.896
    ANX                  3.191    0.280   11.396    0.000    0.954    0.954
    SOM                  1.382    0.059   23.335    0.000    0.810    0.810
    EXH                  2.439    0.187   13.055    0.000    0.925    0.925
    SEN                  1.675    0.089   18.728    0.000    0.859    0.859
    PAR                  1.335    0.063   21.078    0.000    0.800    0.800
    HOS                  1.102    0.051   21.631    0.000    0.741    0.741

Thresholds:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
    dep1|t1          -0.966    0.032  -30.132    0.000   -0.966   -0.966
    dep1|t2           0.507    0.028   18.150    0.000    0.507    0.507
    dep1|t3           1.564    0.042   37.270    0.000    1.564    1.564
    dep2|t1          -0.161    0.027   -5.984    0.000   -0.161   -0.161
    dep2|t2           0.759    0.029   25.840    0.000    0.759    0.759
    dep2|t3           1.567    0.042   37.378    0.000    1.567    1.567
    dep3|t1          -0.033    0.027   -1.215    0.224   -0.033   -0.033
    dep3|t2           0.945    0.032   29.842    0.000    0.945    0.945
    dep3|t3           1.854    0.052   35.798    0.000    1.854    1.854
    dep4|t1           0.207    0.027    7.695    0.000    0.207    0.207
    dep4|t2           1.005    0.032   31.322    0.000    1.005    1.005
    dep4|t3           1.770    0.049   36.229    0.000    1.770    1.770
    anx1|t1          -0.506    0.028  -18.103    0.000   -0.506   -0.506
    anx1|t2           0.736    0.029   25.090    0.000    0.736    0.736
    anx1|t3           1.746    0.046   37.784    0.000    1.746    1.746
    anx2|t1          -0.980    0.032  -30.742    0.000   -0.980   -0.980
    anx2|t2           0.479    0.028   17.272    0.000    0.479    0.479
    anx2|t3           1.535    0.041   37.673    0.000    1.535    1.535
    anx3|t1          -0.484    0.028  -17.356    0.000   -0.484   -0.484
    anx3|t2           0.857    0.030   28.219    0.000    0.857    0.857
    anx3|t3           1.777    0.047   38.111    0.000    1.777    1.777
    anx4|t1          -1.064    0.033  -31.938    0.000   -1.064   -1.064
    anx4|t2           0.504    0.028   18.175    0.000    0.504    0.504
    anx4|t3           1.649    0.043   37.951    0.000    1.649    1.649
    som1|t1          -1.025    0.031  -32.687    0.000   -1.025   -1.025
    som1|t2           0.368    0.028   13.319    0.000    0.368    0.368
    som1|t3           1.495    0.041   36.613    0.000    1.495    1.495
    som2|t1          -0.911    0.031  -29.684    0.000   -0.911   -0.911
    som2|t2           0.510    0.028   18.031    0.000    0.510    0.510
    som2|t3           1.641    0.045   36.501    0.000    1.641    1.641
    som3|t1          -0.150    0.027   -5.599    0.000   -0.150   -0.150
    som3|t2           0.917    0.032   28.561    0.000    0.917    0.917
    som3|t3           1.903    0.055   34.789    0.000    1.903    1.903
    som4|t1          -0.208    0.027   -7.743    0.000   -0.208   -0.208
    som4|t2           1.041    0.033   31.720    0.000    1.041    1.041
    som4|t3           1.947    0.060   32.251    0.000    1.947    1.947
    exh1|t1          -0.854    0.031  -27.586    0.000   -0.854   -0.854
    exh1|t2           0.537    0.028   18.925    0.000    0.537    0.537
    exh1|t3           1.580    0.043   36.833    0.000    1.580    1.580
    exh2|t1          -0.582    0.029  -20.126    0.000   -0.582   -0.582
    exh2|t2           0.783    0.029   26.553    0.000    0.783    0.783
    exh2|t3           1.751    0.047   36.920    0.000    1.751    1.751
    exh3|t1          -0.863    0.031  -27.844    0.000   -0.863   -0.863
    exh3|t2           0.637    0.028   22.355    0.000    0.637    0.637
    exh3|t3           1.746    0.048   36.472    0.000    1.746    1.746
    exh4|t1          -0.567    0.029  -19.719    0.000   -0.567   -0.567
    exh4|t2           0.586    0.028   20.989    0.000    0.586    0.586
    exh4|t3           1.578    0.042   37.990    0.000    1.578    1.578
    sen1|t1          -0.039    0.027   -1.460    0.144   -0.039   -0.039
    sen1|t2           1.002    0.032   31.461    0.000    1.002    1.002
    sen1|t3           1.715    0.047   36.567    0.000    1.715    1.715
    sen2|t1          -0.676    0.029  -23.568    0.000   -0.676   -0.676
    sen2|t2           0.621    0.029   21.614    0.000    0.621    0.621
    sen2|t3           1.434    0.039   36.448    0.000    1.434    1.434
    sen3|t1          -0.370    0.027  -13.553    0.000   -0.370   -0.370
    sen3|t2           0.877    0.030   28.913    0.000    0.877    0.877
    sen3|t3           1.720    0.047   36.436    0.000    1.720    1.720
    sen4|t1          -1.069    0.033  -32.377    0.000   -1.069   -1.069
    sen4|t2           0.428    0.027   15.588    0.000    0.428    0.428
    sen4|t3           1.337    0.037   36.583    0.000    1.337    1.337
    par1|t1          -1.089    0.032  -33.598    0.000   -1.089   -1.089
    par1|t2           0.158    0.027    5.879    0.000    0.158    0.158
    par1|t3           1.063    0.034   31.599    0.000    1.063    1.063
    par2|t1          -0.783    0.030  -26.429    0.000   -0.783   -0.783
    par2|t2           0.689    0.029   23.574    0.000    0.689    0.689
    par2|t3           1.719    0.048   35.705    0.000    1.719    1.719
    par3|t1          -0.962    0.031  -31.146    0.000   -0.962   -0.962
    par3|t2           0.385    0.027   14.037    0.000    0.385    0.385
    par3|t3           1.354    0.038   36.095    0.000    1.354    1.354
    par4|t1          -0.217    0.027   -8.092    0.000   -0.217   -0.217
    par4|t2           0.945    0.031   30.021    0.000    0.945    0.945
    par4|t3           1.702    0.048   35.183    0.000    1.702    1.702
    hos1|t1          -0.687    0.029  -23.294    0.000   -0.687   -0.687
    hos1|t2           0.867    0.030   29.103    0.000    0.867    0.867
    hos1|t3           1.945    0.056   34.623    0.000    1.945    1.945
    hos2|t1           0.106    0.027    3.949    0.000    0.106    0.106
    hos2|t2           1.295    0.035   36.674    0.000    1.295    1.295
    hos2|t3           2.138    0.062   34.613    0.000    2.138    2.138
    hos3|t1           0.624    0.028   22.096    0.000    0.624    0.624
    hos3|t2           1.531    0.040   38.380    0.000    1.531    1.531
    hos3|t3           2.119    0.070   30.421    0.000    2.119    2.119
    hos4|t1          -0.360    0.027  -13.216    0.000   -0.360   -0.360
    hos4|t2           0.994    0.033   30.303    0.000    0.994    0.994
    hos4|t3           1.840    0.053   34.532    0.000    1.840    1.840

Variances:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
   .dep1              0.395                               0.395    0.395
   .dep2              0.542                               0.542    0.542
   .dep3              0.582                               0.582    0.582
   .dep4              0.405                               0.405    0.405
   .anx1              0.446                               0.446    0.446
   .anx2              0.547                               0.547    0.547
   .anx3              0.516                               0.516    0.516
   .anx4              0.493                               0.493    0.493
   .som1              0.472                               0.472    0.472
   .som2              0.526                               0.526    0.526
   .som3              0.516                               0.516    0.516
   .som4              0.518                               0.518    0.518
   .exh1              0.435                               0.435    0.435
   .exh2              0.581                               0.581    0.581
   .exh3              0.519                               0.519    0.519
   .exh4              0.580                               0.580    0.580
   .sen1              0.484                               0.484    0.484
   .sen2              0.579                               0.579    0.579
   .sen3              0.688                               0.688    0.688
   .sen4              0.473                               0.473    0.473
   .par1              0.666                               0.666    0.666
   .par2              0.714                               0.714    0.714
   .par3              0.586                               0.586    0.586
   .par4              0.495                               0.495    0.495
   .hos1              0.672                               0.672    0.672
   .hos2              0.559                               0.559    0.559
   .hos3              0.505                               0.505    0.505
   .hos4              0.381                               0.381    0.381
   .DEP               1.000                               0.198    0.198
   .ANX               1.000                               0.089    0.089
   .SOM               1.000                               0.344    0.344
   .EXH               1.000                               0.144    0.144
   .SEN               1.000                               0.263    0.263
   .PAR               1.000                               0.359    0.359
   .HOS               1.000                               0.452    0.452
    General_Dstrss    1.000                               1.000    1.000

R-Square:
                   Estimate
    dep1              0.605
    dep2              0.458
    dep3              0.418
    dep4              0.595
    anx1              0.554
    anx2              0.453
    anx3              0.484
    anx4              0.507
    som1              0.528
    som2              0.474
    som3              0.484
    som4              0.482
    exh1              0.565
    exh2              0.419
    exh3              0.481
    exh4              0.420
    sen1              0.516
    sen2              0.421
    sen3              0.312
    sen4              0.527
    par1              0.334
    par2              0.286
    par3              0.414
    par4              0.505
    hos1              0.328
    hos2              0.441
    hos3              0.495
    hos4              0.619
    DEP               0.802
    ANX               0.911
    SOM               0.656
    EXH               0.856
    SEN               0.737
    PAR               0.641
    HOS               0.548
Show / Hide Code
# Bifactor Model
summary(fit.scl28_b, standardized = TRUE, fit.measures = TRUE, rsquare = TRUE)
lavaan 0.6-21 ended normally after 80 iterations

  Estimator                                       DWLS
  Optimization method                           NLMINB
  Number of model parameters                       140

  Number of observations                          2712
  Sampling weights variable                         wt

Model Test User Model:
                                              Standard      Scaled
  Test Statistic                              1160.459    1535.513
  Degrees of freedom                               322         322
  P-value (Unknown)                                 NA       0.000
  Scaling correction factor                                  0.803
  Shift parameter                                           91.215
    simple second-order correction                                

Model Test Baseline Model:

  Test statistic                            120010.523   40103.324
  Degrees of freedom                               378         378
  P-value                                           NA       0.000
  Scaling correction factor                                  3.011

User Model versus Baseline Model:

  Comparative Fit Index (CFI)                    0.993       0.969
  Tucker-Lewis Index (TLI)                       0.992       0.964
                                                                  
  Robust Comparative Fit Index (CFI)                         0.935
  Robust Tucker-Lewis Index (TLI)                            0.924

Root Mean Square Error of Approximation:

  RMSEA                                          0.031       0.037
  90 Percent confidence interval - lower         0.029       0.035
  90 Percent confidence interval - upper         0.033       0.039
  P-value H_0: RMSEA <= 0.050                    1.000       1.000
  P-value H_0: RMSEA >= 0.080                    0.000       0.000
                                                                  
  Robust RMSEA                                               0.049
  90 Percent confidence interval - lower                     0.047
  90 Percent confidence interval - upper                     0.052
  P-value H_0: Robust RMSEA <= 0.050                         0.708
  P-value H_0: Robust RMSEA >= 0.080                         0.000

Standardized Root Mean Square Residual:

  SRMR                                           0.035       0.035

Parameter Estimates:

  Parameterization                               Delta
  Standard errors                           Robust.sem
  Information                                 Expected
  Information saturated (h1) model        Unstructured

Latent Variables:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
  DEP =~                                                                
    dep1              0.079    0.024    3.352    0.001    0.079    0.079
    dep2              0.394    0.037   10.617    0.000    0.394    0.394
    dep3              0.268    0.030    8.913    0.000    0.268    0.268
    dep4              0.611    0.050   12.171    0.000    0.611    0.611
  ANX =~                                                                
    anx1              0.105    0.048    2.174    0.030    0.105    0.105
    anx2              0.765    0.319    2.394    0.017    0.765    0.765
    anx3              0.126    0.057    2.207    0.027    0.126    0.126
    anx4              0.061    0.032    1.911    0.056    0.061    0.061
  SOM =~                                                                
    som1              0.297    0.023   12.712    0.000    0.297    0.297
    som2              0.409    0.025   16.161    0.000    0.409    0.409
    som3              0.552    0.031   17.703    0.000    0.552    0.552
    som4              0.401    0.027   14.598    0.000    0.401    0.401
  EXH =~                                                                
    exh1              0.112    0.029    3.877    0.000    0.112    0.112
    exh2              0.378    0.059    6.393    0.000    0.378    0.378
    exh3              0.468    0.071    6.604    0.000    0.468    0.468
    exh4              0.118    0.030    3.857    0.000    0.118    0.118
  SEN =~                                                                
    sen1              0.288    0.029    9.983    0.000    0.288    0.288
    sen2              0.434    0.033   13.331    0.000    0.434    0.434
    sen3              0.590    0.039   15.037    0.000    0.590    0.590
    sen4              0.156    0.026    6.034    0.000    0.156    0.156
  PAR =~                                                                
    par1              0.416    0.032   13.134    0.000    0.416    0.416
    par2              0.200    0.029    6.795    0.000    0.200    0.200
    par3              0.488    0.034   14.346    0.000    0.488    0.488
    par4              0.360    0.029   12.416    0.000    0.360    0.360
  HOS =~                                                                
    hos1              0.360    0.028   12.746    0.000    0.360    0.360
    hos2              0.577    0.030   19.127    0.000    0.577    0.577
    hos3              0.444    0.029   15.276    0.000    0.444    0.444
    hos4              0.458    0.027   16.860    0.000    0.458    0.458
  G =~                                                                  
    dep1              0.716    0.013   54.808    0.000    0.716    0.716
    dep2              0.593    0.016   37.047    0.000    0.593    0.593
    dep3              0.579    0.017   34.530    0.000    0.579    0.579
    dep4              0.675    0.015   44.440    0.000    0.675    0.675
    anx1              0.714    0.013   54.706    0.000    0.714    0.714
    anx2              0.632    0.015   42.000    0.000    0.632    0.632
    anx3              0.665    0.014   45.897    0.000    0.665    0.665
    anx4              0.687    0.014   49.623    0.000    0.687    0.687
    som1              0.601    0.016   38.145    0.000    0.601    0.601
    som2              0.557    0.017   33.266    0.000    0.557    0.557
    som3              0.550    0.018   30.708    0.000    0.550    0.550
    som4              0.562    0.017   33.525    0.000    0.562    0.562
    exh1              0.704    0.013   54.424    0.000    0.704    0.704
    exh2              0.588    0.016   35.685    0.000    0.588    0.588
    exh3              0.632    0.015   40.815    0.000    0.632    0.632
    exh4              0.607    0.016   38.784    0.000    0.607    0.607
    sen1              0.622    0.017   37.566    0.000    0.622    0.622
    sen2              0.548    0.017   32.350    0.000    0.548    0.548
    sen3              0.455    0.019   24.081    0.000    0.455    0.455
    sen4              0.639    0.015   41.712    0.000    0.639    0.639
    par1              0.456    0.019   23.668    0.000    0.456    0.456
    par2              0.439    0.019   22.980    0.000    0.439    0.439
    par3              0.509    0.016   31.208    0.000    0.509    0.509
    par4              0.572    0.017   34.005    0.000    0.572    0.572
    hos1              0.428    0.019   22.302    0.000    0.428    0.428
    hos2              0.479    0.020   24.180    0.000    0.479    0.479
    hos3              0.524    0.021   25.316    0.000    0.524    0.524
    hos4              0.587    0.016   37.051    0.000    0.587    0.587

Covariances:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
  DEP ~~                                                                
    ANX               0.000                               0.000    0.000
    SOM               0.000                               0.000    0.000
    EXH               0.000                               0.000    0.000
    SEN               0.000                               0.000    0.000
    PAR               0.000                               0.000    0.000
    HOS               0.000                               0.000    0.000
    G                 0.000                               0.000    0.000
  ANX ~~                                                                
    SOM               0.000                               0.000    0.000
    EXH               0.000                               0.000    0.000
    SEN               0.000                               0.000    0.000
    PAR               0.000                               0.000    0.000
    HOS               0.000                               0.000    0.000
    G                 0.000                               0.000    0.000
  SOM ~~                                                                
    EXH               0.000                               0.000    0.000
    SEN               0.000                               0.000    0.000
    PAR               0.000                               0.000    0.000
    HOS               0.000                               0.000    0.000
    G                 0.000                               0.000    0.000
  EXH ~~                                                                
    SEN               0.000                               0.000    0.000
    PAR               0.000                               0.000    0.000
    HOS               0.000                               0.000    0.000
    G                 0.000                               0.000    0.000
  SEN ~~                                                                
    PAR               0.000                               0.000    0.000
    HOS               0.000                               0.000    0.000
    G                 0.000                               0.000    0.000
  PAR ~~                                                                
    HOS               0.000                               0.000    0.000
    G                 0.000                               0.000    0.000
  HOS ~~                                                                
    G                 0.000                               0.000    0.000

Thresholds:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
    dep1|t1          -0.966    0.032  -30.132    0.000   -0.966   -0.966
    dep1|t2           0.507    0.028   18.150    0.000    0.507    0.507
    dep1|t3           1.564    0.042   37.270    0.000    1.564    1.564
    dep2|t1          -0.161    0.027   -5.984    0.000   -0.161   -0.161
    dep2|t2           0.759    0.029   25.840    0.000    0.759    0.759
    dep2|t3           1.567    0.042   37.378    0.000    1.567    1.567
    dep3|t1          -0.033    0.027   -1.215    0.224   -0.033   -0.033
    dep3|t2           0.945    0.032   29.842    0.000    0.945    0.945
    dep3|t3           1.854    0.052   35.798    0.000    1.854    1.854
    dep4|t1           0.207    0.027    7.695    0.000    0.207    0.207
    dep4|t2           1.005    0.032   31.322    0.000    1.005    1.005
    dep4|t3           1.770    0.049   36.229    0.000    1.770    1.770
    anx1|t1          -0.506    0.028  -18.103    0.000   -0.506   -0.506
    anx1|t2           0.736    0.029   25.090    0.000    0.736    0.736
    anx1|t3           1.746    0.046   37.784    0.000    1.746    1.746
    anx2|t1          -0.980    0.032  -30.742    0.000   -0.980   -0.980
    anx2|t2           0.479    0.028   17.272    0.000    0.479    0.479
    anx2|t3           1.535    0.041   37.673    0.000    1.535    1.535
    anx3|t1          -0.484    0.028  -17.356    0.000   -0.484   -0.484
    anx3|t2           0.857    0.030   28.219    0.000    0.857    0.857
    anx3|t3           1.777    0.047   38.111    0.000    1.777    1.777
    anx4|t1          -1.064    0.033  -31.938    0.000   -1.064   -1.064
    anx4|t2           0.504    0.028   18.175    0.000    0.504    0.504
    anx4|t3           1.649    0.043   37.951    0.000    1.649    1.649
    som1|t1          -1.025    0.031  -32.687    0.000   -1.025   -1.025
    som1|t2           0.368    0.028   13.319    0.000    0.368    0.368
    som1|t3           1.495    0.041   36.613    0.000    1.495    1.495
    som2|t1          -0.911    0.031  -29.684    0.000   -0.911   -0.911
    som2|t2           0.510    0.028   18.031    0.000    0.510    0.510
    som2|t3           1.641    0.045   36.501    0.000    1.641    1.641
    som3|t1          -0.150    0.027   -5.599    0.000   -0.150   -0.150
    som3|t2           0.917    0.032   28.561    0.000    0.917    0.917
    som3|t3           1.903    0.055   34.789    0.000    1.903    1.903
    som4|t1          -0.208    0.027   -7.743    0.000   -0.208   -0.208
    som4|t2           1.041    0.033   31.720    0.000    1.041    1.041
    som4|t3           1.947    0.060   32.251    0.000    1.947    1.947
    exh1|t1          -0.854    0.031  -27.586    0.000   -0.854   -0.854
    exh1|t2           0.537    0.028   18.925    0.000    0.537    0.537
    exh1|t3           1.580    0.043   36.833    0.000    1.580    1.580
    exh2|t1          -0.582    0.029  -20.126    0.000   -0.582   -0.582
    exh2|t2           0.783    0.029   26.553    0.000    0.783    0.783
    exh2|t3           1.751    0.047   36.920    0.000    1.751    1.751
    exh3|t1          -0.863    0.031  -27.844    0.000   -0.863   -0.863
    exh3|t2           0.637    0.028   22.355    0.000    0.637    0.637
    exh3|t3           1.746    0.048   36.472    0.000    1.746    1.746
    exh4|t1          -0.567    0.029  -19.719    0.000   -0.567   -0.567
    exh4|t2           0.586    0.028   20.989    0.000    0.586    0.586
    exh4|t3           1.578    0.042   37.990    0.000    1.578    1.578
    sen1|t1          -0.039    0.027   -1.460    0.144   -0.039   -0.039
    sen1|t2           1.002    0.032   31.461    0.000    1.002    1.002
    sen1|t3           1.715    0.047   36.567    0.000    1.715    1.715
    sen2|t1          -0.676    0.029  -23.568    0.000   -0.676   -0.676
    sen2|t2           0.621    0.029   21.614    0.000    0.621    0.621
    sen2|t3           1.434    0.039   36.448    0.000    1.434    1.434
    sen3|t1          -0.370    0.027  -13.553    0.000   -0.370   -0.370
    sen3|t2           0.877    0.030   28.913    0.000    0.877    0.877
    sen3|t3           1.720    0.047   36.436    0.000    1.720    1.720
    sen4|t1          -1.069    0.033  -32.377    0.000   -1.069   -1.069
    sen4|t2           0.428    0.027   15.588    0.000    0.428    0.428
    sen4|t3           1.337    0.037   36.583    0.000    1.337    1.337
    par1|t1          -1.089    0.032  -33.598    0.000   -1.089   -1.089
    par1|t2           0.158    0.027    5.879    0.000    0.158    0.158
    par1|t3           1.063    0.034   31.599    0.000    1.063    1.063
    par2|t1          -0.783    0.030  -26.429    0.000   -0.783   -0.783
    par2|t2           0.689    0.029   23.574    0.000    0.689    0.689
    par2|t3           1.719    0.048   35.705    0.000    1.719    1.719
    par3|t1          -0.962    0.031  -31.146    0.000   -0.962   -0.962
    par3|t2           0.385    0.027   14.037    0.000    0.385    0.385
    par3|t3           1.354    0.038   36.095    0.000    1.354    1.354
    par4|t1          -0.217    0.027   -8.092    0.000   -0.217   -0.217
    par4|t2           0.945    0.031   30.021    0.000    0.945    0.945
    par4|t3           1.702    0.048   35.183    0.000    1.702    1.702
    hos1|t1          -0.687    0.029  -23.294    0.000   -0.687   -0.687
    hos1|t2           0.867    0.030   29.103    0.000    0.867    0.867
    hos1|t3           1.945    0.056   34.623    0.000    1.945    1.945
    hos2|t1           0.106    0.027    3.949    0.000    0.106    0.106
    hos2|t2           1.295    0.035   36.674    0.000    1.295    1.295
    hos2|t3           2.138    0.062   34.613    0.000    2.138    2.138
    hos3|t1           0.624    0.028   22.096    0.000    0.624    0.624
    hos3|t2           1.531    0.040   38.380    0.000    1.531    1.531
    hos3|t3           2.119    0.070   30.421    0.000    2.119    2.119
    hos4|t1          -0.360    0.027  -13.216    0.000   -0.360   -0.360
    hos4|t2           0.994    0.033   30.303    0.000    0.994    0.994
    hos4|t3           1.840    0.053   34.532    0.000    1.840    1.840

Variances:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
   .dep1              0.480                               0.480    0.480
   .dep2              0.493                               0.493    0.493
   .dep3              0.593                               0.593    0.593
   .dep4              0.171                               0.171    0.171
   .anx1              0.479                               0.479    0.479
   .anx2              0.016                               0.016    0.016
   .anx3              0.542                               0.542    0.542
   .anx4              0.524                               0.524    0.524
   .som1              0.551                               0.551    0.551
   .som2              0.522                               0.522    0.522
   .som3              0.393                               0.393    0.393
   .som4              0.523                               0.523    0.523
   .exh1              0.491                               0.491    0.491
   .exh2              0.511                               0.511    0.511
   .exh3              0.382                               0.382    0.382
   .exh4              0.618                               0.618    0.618
   .sen1              0.531                               0.531    0.531
   .sen2              0.512                               0.512    0.512
   .sen3              0.445                               0.445    0.445
   .sen4              0.568                               0.568    0.568
   .par1              0.619                               0.619    0.619
   .par2              0.768                               0.768    0.768
   .par3              0.503                               0.503    0.503
   .par4              0.543                               0.543    0.543
   .hos1              0.687                               0.687    0.687
   .hos2              0.437                               0.437    0.437
   .hos3              0.529                               0.529    0.529
   .hos4              0.445                               0.445    0.445
    DEP               1.000                               1.000    1.000
    ANX               1.000                               1.000    1.000
    SOM               1.000                               1.000    1.000
    EXH               1.000                               1.000    1.000
    SEN               1.000                               1.000    1.000
    PAR               1.000                               1.000    1.000
    HOS               1.000                               1.000    1.000
    G                 1.000                               1.000    1.000

R-Square:
                   Estimate
    dep1              0.520
    dep2              0.507
    dep3              0.407
    dep4              0.829
    anx1              0.521
    anx2              0.984
    anx3              0.458
    anx4              0.476
    som1              0.449
    som2              0.478
    som3              0.607
    som4              0.477
    exh1              0.509
    exh2              0.489
    exh3              0.618
    exh4              0.382
    sen1              0.469
    sen2              0.488
    sen3              0.555
    sen4              0.432
    par1              0.381
    par2              0.232
    par3              0.497
    par4              0.457
    hos1              0.313
    hos2              0.563
    hos3              0.471
    hos4              0.555

9.4 Full SEM

Show / Hide Code
summary(fit.sem, standardized = TRUE, fit.measures = TRUE, rsquare =T)
lavaan 0.6-21 ended normally after 156 iterations

  Estimator                                       DWLS
  Optimization method                           NLMINB
  Number of model parameters                       174

  Number of observations                          2712
  Sampling weights variable                         wt

Model Test User Model:
                                              Standard      Scaled
  Test Statistic                              2656.861    2996.066
  Degrees of freedom                               653         653
  P-value (Unknown)                                 NA       0.000
  Scaling correction factor                                  0.970
  Shift parameter                                          256.748
    simple second-order correction                                

Model Test Baseline Model:

  Test statistic                            239486.056   63333.490
  Degrees of freedom                               703         703
  P-value                                           NA       0.000
  Scaling correction factor                                  3.813

User Model versus Baseline Model:

  Comparative Fit Index (CFI)                    0.992       0.963
  Tucker-Lewis Index (TLI)                       0.991       0.960
                                                                  
  Robust Comparative Fit Index (CFI)                         0.911
  Robust Tucker-Lewis Index (TLI)                            0.904

Root Mean Square Error of Approximation:

  RMSEA                                          0.034       0.036
  90 Percent confidence interval - lower         0.032       0.035
  90 Percent confidence interval - upper         0.035       0.038
  P-value H_0: RMSEA <= 0.050                    1.000       1.000
  P-value H_0: RMSEA >= 0.080                    0.000       0.000
                                                                  
  Robust RMSEA                                               0.051
  90 Percent confidence interval - lower                     0.049
  90 Percent confidence interval - upper                     0.052
  P-value H_0: Robust RMSEA <= 0.050                         0.296
  P-value H_0: Robust RMSEA >= 0.080                         0.000

Standardized Root Mean Square Residual:

  SRMR                                           0.038       0.038

Parameter Estimates:

  Parameterization                               Delta
  Standard errors                           Robust.sem
  Information                                 Expected
  Information saturated (h1) model        Unstructured

Latent Variables:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
  DEP =~                                                                
    dep1              0.365    0.018   20.829    0.000    0.785    0.785
    dep2              0.311    0.014   22.846    0.000    0.669    0.669
    dep3              0.303    0.014   21.039    0.000    0.652    0.652
    dep4              0.356    0.015   23.438    0.000    0.766    0.766
  ANX =~                                                                
    anx1              0.133    0.029    4.579    0.000    0.741    0.741
    anx2              0.124    0.027    4.585    0.000    0.690    0.690
    anx3              0.125    0.028    4.527    0.000    0.698    0.698
    anx4              0.125    0.027    4.601    0.000    0.697    0.697
  SOM =~                                                                
    som1              0.384    0.015   25.084    0.000    0.715    0.715
    som2              0.370    0.015   24.382    0.000    0.689    0.689
    som3              0.374    0.014   27.316    0.000    0.697    0.697
    som4              0.379    0.014   26.655    0.000    0.705    0.705
  EXH =~                                                                
    exh1              0.344    0.018   18.652    0.000    0.759    0.759
    exh2              0.292    0.015   19.290    0.000    0.645    0.645
    exh3              0.316    0.016   20.004    0.000    0.698    0.698
    exh4              0.288    0.016   18.078    0.000    0.636    0.636
  SEN =~                                                                
    sen1              0.374    0.017   21.922    0.000    0.705    0.705
    sen2              0.346    0.015   23.810    0.000    0.651    0.651
    sen3              0.289    0.013   21.818    0.000    0.545    0.545
    sen4              0.395    0.019   21.268    0.000    0.744    0.744
  PAR =~                                                                
    par1              0.350    0.015   23.448    0.000    0.576    0.576
    par2              0.319    0.016   20.086    0.000    0.525    0.525
    par3              0.394    0.015   25.655    0.000    0.649    0.649
    par4              0.433    0.017   25.522    0.000    0.714    0.714
  HOS =~                                                                
    hos1              0.392    0.016   23.769    0.000    0.569    0.569
    hos2              0.447    0.016   27.292    0.000    0.651    0.651
    hos3              0.487    0.019   25.008    0.000    0.709    0.709
    hos4              0.547    0.019   29.444    0.000    0.796    0.796
  G_Distress =~                                                         
    DEP               1.175    0.064   18.282    0.000    0.885    0.885
    ANX               3.390    0.771    4.395    0.000    0.984    0.984
    SOM               0.970    0.047   20.805    0.000    0.844    0.844
    EXH               1.214    0.075   16.191    0.000    0.891    0.891
    SEN               0.985    0.053   18.576    0.000    0.847    0.847
    PAR               0.809    0.040   20.405    0.000    0.795    0.795
    HOS               0.652    0.031   21.033    0.000    0.726    0.726
  PTSD =~                                                               
    ptsd1             0.789    0.012   68.362    0.000    0.789    0.789
    ptsd2             0.753    0.012   62.213    0.000    0.753    0.753
    ptsd3             0.810    0.010   81.145    0.000    0.810    0.810
    ptsd4             0.828    0.009   93.489    0.000    0.828    0.828
    ptsd5             0.819    0.010   85.482    0.000    0.819    0.819
  MT =~                                                                 
    mt1               0.462    0.017   27.361    0.000    0.605    0.605
    mt2               0.609    0.014   42.033    0.000    0.796    0.796
    mt3               0.605    0.013   46.458    0.000    0.792    0.792
    mt4               0.638    0.014   46.300    0.000    0.835    0.835
    mt5               0.431    0.016   26.568    0.000    0.564    0.564

Regressions:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
  G_Distress ~                                                          
    PTSD    (c_pr)    1.171    0.055   21.279    0.000    0.723    0.723
    MT         (b)    0.116    0.030    3.929    0.000    0.094    0.094
  MT ~                                                                  
    PTSD       (a)    0.844    0.037   23.060    0.000    0.645    0.645

Covariances:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
 .ptsd2 ~~                                                              
   .ptsd3             0.098    0.011    8.611    0.000    0.098    0.253
 .mt1 ~~                                                                
   .mt2               0.107    0.018    5.901    0.000    0.107    0.222

Thresholds:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
    dep1|t1          -0.966    0.032  -30.132    0.000   -0.966   -0.966
    dep1|t2           0.507    0.028   18.150    0.000    0.507    0.507
    dep1|t3           1.564    0.042   37.270    0.000    1.564    1.564
    dep2|t1          -0.161    0.027   -5.984    0.000   -0.161   -0.161
    dep2|t2           0.759    0.029   25.840    0.000    0.759    0.759
    dep2|t3           1.567    0.042   37.378    0.000    1.567    1.567
    dep3|t1          -0.033    0.027   -1.215    0.224   -0.033   -0.033
    dep3|t2           0.945    0.032   29.842    0.000    0.945    0.945
    dep3|t3           1.854    0.052   35.798    0.000    1.854    1.854
    dep4|t1           0.207    0.027    7.695    0.000    0.207    0.207
    dep4|t2           1.005    0.032   31.322    0.000    1.005    1.005
    dep4|t3           1.770    0.049   36.229    0.000    1.770    1.770
    anx1|t1          -0.506    0.028  -18.103    0.000   -0.506   -0.506
    anx1|t2           0.736    0.029   25.090    0.000    0.736    0.736
    anx1|t3           1.746    0.046   37.784    0.000    1.746    1.746
    anx2|t1          -0.980    0.032  -30.742    0.000   -0.980   -0.980
    anx2|t2           0.479    0.028   17.272    0.000    0.479    0.479
    anx2|t3           1.535    0.041   37.673    0.000    1.535    1.535
    anx3|t1          -0.484    0.028  -17.356    0.000   -0.484   -0.484
    anx3|t2           0.857    0.030   28.219    0.000    0.857    0.857
    anx3|t3           1.777    0.047   38.111    0.000    1.777    1.777
    anx4|t1          -1.064    0.033  -31.938    0.000   -1.064   -1.064
    anx4|t2           0.504    0.028   18.175    0.000    0.504    0.504
    anx4|t3           1.649    0.043   37.951    0.000    1.649    1.649
    som1|t1          -1.025    0.031  -32.687    0.000   -1.025   -1.025
    som1|t2           0.368    0.028   13.319    0.000    0.368    0.368
    som1|t3           1.495    0.041   36.613    0.000    1.495    1.495
    som2|t1          -0.911    0.031  -29.684    0.000   -0.911   -0.911
    som2|t2           0.510    0.028   18.031    0.000    0.510    0.510
    som2|t3           1.641    0.045   36.501    0.000    1.641    1.641
    som3|t1          -0.150    0.027   -5.599    0.000   -0.150   -0.150
    som3|t2           0.917    0.032   28.561    0.000    0.917    0.917
    som3|t3           1.903    0.055   34.789    0.000    1.903    1.903
    som4|t1          -0.208    0.027   -7.743    0.000   -0.208   -0.208
    som4|t2           1.041    0.033   31.720    0.000    1.041    1.041
    som4|t3           1.947    0.060   32.251    0.000    1.947    1.947
    exh1|t1          -0.854    0.031  -27.586    0.000   -0.854   -0.854
    exh1|t2           0.537    0.028   18.925    0.000    0.537    0.537
    exh1|t3           1.580    0.043   36.833    0.000    1.580    1.580
    exh2|t1          -0.582    0.029  -20.126    0.000   -0.582   -0.582
    exh2|t2           0.783    0.029   26.553    0.000    0.783    0.783
    exh2|t3           1.751    0.047   36.920    0.000    1.751    1.751
    exh3|t1          -0.863    0.031  -27.844    0.000   -0.863   -0.863
    exh3|t2           0.637    0.028   22.355    0.000    0.637    0.637
    exh3|t3           1.746    0.048   36.472    0.000    1.746    1.746
    exh4|t1          -0.567    0.029  -19.719    0.000   -0.567   -0.567
    exh4|t2           0.586    0.028   20.989    0.000    0.586    0.586
    exh4|t3           1.578    0.042   37.990    0.000    1.578    1.578
    sen1|t1          -0.039    0.027   -1.460    0.144   -0.039   -0.039
    sen1|t2           1.002    0.032   31.461    0.000    1.002    1.002
    sen1|t3           1.715    0.047   36.567    0.000    1.715    1.715
    sen2|t1          -0.676    0.029  -23.568    0.000   -0.676   -0.676
    sen2|t2           0.621    0.029   21.614    0.000    0.621    0.621
    sen2|t3           1.434    0.039   36.448    0.000    1.434    1.434
    sen3|t1          -0.370    0.027  -13.553    0.000   -0.370   -0.370
    sen3|t2           0.877    0.030   28.913    0.000    0.877    0.877
    sen3|t3           1.720    0.047   36.436    0.000    1.720    1.720
    sen4|t1          -1.069    0.033  -32.377    0.000   -1.069   -1.069
    sen4|t2           0.428    0.027   15.588    0.000    0.428    0.428
    sen4|t3           1.337    0.037   36.583    0.000    1.337    1.337
    par1|t1          -1.089    0.032  -33.598    0.000   -1.089   -1.089
    par1|t2           0.158    0.027    5.879    0.000    0.158    0.158
    par1|t3           1.063    0.034   31.599    0.000    1.063    1.063
    par2|t1          -0.783    0.030  -26.429    0.000   -0.783   -0.783
    par2|t2           0.689    0.029   23.574    0.000    0.689    0.689
    par2|t3           1.719    0.048   35.705    0.000    1.719    1.719
    par3|t1          -0.962    0.031  -31.146    0.000   -0.962   -0.962
    par3|t2           0.385    0.027   14.037    0.000    0.385    0.385
    par3|t3           1.354    0.038   36.095    0.000    1.354    1.354
    par4|t1          -0.217    0.027   -8.092    0.000   -0.217   -0.217
    par4|t2           0.945    0.031   30.021    0.000    0.945    0.945
    par4|t3           1.702    0.048   35.183    0.000    1.702    1.702
    hos1|t1          -0.687    0.029  -23.294    0.000   -0.687   -0.687
    hos1|t2           0.867    0.030   29.103    0.000    0.867    0.867
    hos1|t3           1.945    0.056   34.623    0.000    1.945    1.945
    hos2|t1           0.106    0.027    3.949    0.000    0.106    0.106
    hos2|t2           1.295    0.035   36.674    0.000    1.295    1.295
    hos2|t3           2.138    0.062   34.613    0.000    2.138    2.138
    hos3|t1           0.624    0.028   22.096    0.000    0.624    0.624
    hos3|t2           1.531    0.040   38.380    0.000    1.531    1.531
    hos3|t3           2.119    0.070   30.421    0.000    2.119    2.119
    hos4|t1          -0.360    0.027  -13.216    0.000   -0.360   -0.360
    hos4|t2           0.994    0.033   30.303    0.000    0.994    0.994
    hos4|t3           1.840    0.053   34.532    0.000    1.840    1.840
    ptsd1|t1         -0.898    0.031  -28.862    0.000   -0.898   -0.898
    ptsd1|t2         -0.263    0.027   -9.710    0.000   -0.263   -0.263
    ptsd1|t3          1.133    0.034   33.255    0.000    1.133    1.133
    ptsd1|t4          1.893    0.053   36.011    0.000    1.893    1.893
    ptsd2|t1         -0.505    0.028  -18.113    0.000   -0.505   -0.505
    ptsd2|t2          0.118    0.027    4.398    0.000    0.118    0.118
    ptsd2|t3          1.355    0.037   36.418    0.000    1.355    1.355
    ptsd2|t4          1.928    0.055   35.170    0.000    1.928    1.928
    ptsd3|t1         -0.482    0.028  -17.218    0.000   -0.482   -0.482
    ptsd3|t2          0.162    0.027    6.033    0.000    0.162    0.162
    ptsd3|t3          1.434    0.039   37.164    0.000    1.434    1.434
    ptsd3|t4          2.073    0.060   34.667    0.000    2.073    2.073
    ptsd4|t1         -0.856    0.030  -28.319    0.000   -0.856   -0.856
    ptsd4|t2         -0.231    0.027   -8.590    0.000   -0.231   -0.231
    ptsd4|t3          1.077    0.033   32.877    0.000    1.077    1.077
    ptsd4|t4          1.819    0.051   35.894    0.000    1.819    1.819
    ptsd5|t1         -0.480    0.028  -17.384    0.000   -0.480   -0.480
    ptsd5|t2          0.053    0.027    1.983    0.047    0.053    0.053
    ptsd5|t3          1.282    0.036   35.703    0.000    1.282    1.282
    ptsd5|t4          2.004    0.059   34.142    0.000    2.004    2.004
    mt1|t1           -0.566    0.028  -20.233    0.000   -0.566   -0.566
    mt1|t2            0.278    0.027   10.284    0.000    0.278    0.278
    mt1|t3            1.052    0.033   31.929    0.000    1.052    1.052
    mt1|t4            2.040    0.061   33.503    0.000    2.040    2.040
    mt2|t1           -0.857    0.030  -28.278    0.000   -0.857   -0.857
    mt2|t2            0.184    0.027    6.804    0.000    0.184    0.184
    mt2|t3            1.026    0.032   32.152    0.000    1.026    1.026
    mt2|t4            2.043    0.058   35.204    0.000    2.043    2.043
    mt3|t1           -1.267    0.036  -35.652    0.000   -1.267   -1.267
    mt3|t2           -0.241    0.027   -8.914    0.000   -0.241   -0.241
    mt3|t3            0.555    0.028   19.751    0.000    0.555    0.555
    mt3|t4            1.781    0.046   38.612    0.000    1.781    1.781
    mt4|t1           -0.878    0.030  -29.122    0.000   -0.878   -0.878
    mt4|t2            0.122    0.027    4.551    0.000    0.122    0.122
    mt4|t3            0.930    0.031   29.836    0.000    0.930    0.930
    mt4|t4            1.852    0.048   38.371    0.000    1.852    1.852
    mt5|t1           -0.784    0.030  -25.872    0.000   -0.784   -0.784
    mt5|t2            0.154    0.027    5.763    0.000    0.154    0.154
    mt5|t3            1.027    0.032   31.738    0.000    1.027    1.027
    mt5|t4            1.844    0.052   35.424    0.000    1.844    1.844

Variances:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
   .dep1              0.384                               0.384    0.384
   .dep2              0.552                               0.552    0.552
   .dep3              0.575                               0.575    0.575
   .dep4              0.414                               0.414    0.414
   .anx1              0.450                               0.450    0.450
   .anx2              0.524                               0.524    0.524
   .anx3              0.513                               0.513    0.513
   .anx4              0.515                               0.515    0.515
   .som1              0.488                               0.488    0.488
   .som2              0.525                               0.525    0.525
   .som3              0.515                               0.515    0.515
   .som4              0.503                               0.503    0.503
   .exh1              0.423                               0.423    0.423
   .exh2              0.585                               0.585    0.585
   .exh3              0.513                               0.513    0.513
   .exh4              0.596                               0.596    0.596
   .sen1              0.503                               0.503    0.503
   .sen2              0.576                               0.576    0.576
   .sen3              0.703                               0.703    0.703
   .sen4              0.446                               0.446    0.446
   .par1              0.668                               0.668    0.668
   .par2              0.724                               0.724    0.724
   .par3              0.579                               0.579    0.579
   .par4              0.490                               0.490    0.490
   .hos1              0.676                               0.676    0.676
   .hos2              0.577                               0.577    0.577
   .hos3              0.497                               0.497    0.497
   .hos4              0.366                               0.366    0.366
   .ptsd1             0.377                               0.377    0.377
   .ptsd2             0.432                               0.432    0.432
   .ptsd3             0.345                               0.345    0.345
   .ptsd4             0.314                               0.314    0.314
   .ptsd5             0.329                               0.329    0.329
   .mt1               0.634                               0.634    0.634
   .mt2               0.366                               0.366    0.366
   .mt3               0.373                               0.373    0.373
   .mt4               0.303                               0.303    0.303
   .mt5               0.682                               0.682    0.682
   .DEP               1.000                               0.216    0.216
   .ANX               1.000                               0.032    0.032
   .SOM               1.000                               0.288    0.288
   .EXH               1.000                               0.205    0.205
   .SEN               1.000                               0.282    0.282
   .PAR               1.000                               0.368    0.368
   .HOS               1.000                               0.473    0.473
   .G_Distress        1.000                               0.381    0.381
    PTSD              1.000                               1.000    1.000
   .MT                1.000                               0.584    0.584

R-Square:
                   Estimate
    dep1              0.616
    dep2              0.448
    dep3              0.425
    dep4              0.586
    anx1              0.550
    anx2              0.476
    anx3              0.487
    anx4              0.485
    som1              0.512
    som2              0.475
    som3              0.485
    som4              0.497
    exh1              0.577
    exh2              0.415
    exh3              0.487
    exh4              0.404
    sen1              0.497
    sen2              0.424
    sen3              0.297
    sen4              0.554
    par1              0.332
    par2              0.276
    par3              0.421
    par4              0.510
    hos1              0.324
    hos2              0.423
    hos3              0.503
    hos4              0.634
    ptsd1             0.623
    ptsd2             0.568
    ptsd3             0.655
    ptsd4             0.686
    ptsd5             0.671
    mt1               0.366
    mt2               0.634
    mt3               0.627
    mt4               0.697
    mt5               0.318
    DEP               0.784
    ANX               0.968
    SOM               0.712
    EXH               0.795
    SEN               0.718
    PAR               0.632
    HOS               0.527
    G_Distress        0.619
    MT                0.416

Defined Parameters:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
    direct            1.171    0.055   21.279    0.000    0.723    0.723
    indirect          0.098    0.025    3.963    0.000    0.060    0.060
    total             1.269    0.047   27.048    0.000    0.783    0.783
    prop_mediated     0.077    0.020    3.869    0.000    0.077    0.077

Citation

How to cite (APA 7th ed.):
Bova, A. A. (2026). PTSD and distress among the Ukrainian population during the war: Does media traumatization play a mediating role? [Analytical Code Report — Working Version]. RPubs. https://rpubs.com/abova/mediation-analysis

BibTeX:

@misc{bova2026,
  author = {Bova, Andrii A.},
  title  = {PTSD and Distress Among the Ukrainian Population During the War:
             Does Media Traumatization Play a Mediating Role?},
  subtitle = {Analytical Code Report — Working Version},
  year   = {2026},
  url    = {https://rpubs.com/abova/mediation-analysis}
}

Reproducibility

Show / Hide Code
sessioninfo::session_info()
─ Session info ───────────────────────────────────────────────────────────────
 setting  value
 version  R version 4.5.2 (2025-10-31 ucrt)
 os       Windows 11 x64 (build 26200)
 system   x86_64, mingw32
 ui       RTerm
 language (EN)
 collate  Ukrainian_Ukraine.utf8
 ctype    Ukrainian_Ukraine.utf8
 tz       Europe/Kiev
 date     2026-04-18
 pandoc   3.6.3 @ C:/Program Files/RStudio/resources/app/bin/quarto/bin/tools/ (via rmarkdown)
 quarto   NA @ C:\\PROGRA~1\\RStudio\\RESOUR~1\\app\\bin\\quarto\\bin\\quarto.exe

─ Packages ───────────────────────────────────────────────────────────────────
 ! package                   * version   date (UTC) lib source
   abind                       1.4-8     2024-09-12 [1] CRAN (R 4.5.2)
   arm                         1.14-4    2024-04-01 [1] CRAN (R 4.5.2)
   backports                   1.5.0     2024-05-23 [1] CRAN (R 4.5.2)
   base64enc                   0.1-6     2026-02-02 [1] CRAN (R 4.5.2)
   BifactorIndicesCalculator * 0.2.2     2021-05-12 [1] CRAN (R 4.5.2)
   boot                        1.3-32    2025-08-29 [2] CRAN (R 4.5.2)
   carData                     3.0-6     2026-01-30 [1] CRAN (R 4.5.2)
   checkmate                   2.3.4     2026-02-03 [1] CRAN (R 4.5.2)
   cli                         3.6.5     2025-04-23 [1] CRAN (R 4.5.2)
   cluster                     2.1.8.1   2025-03-12 [2] CRAN (R 4.5.2)
   coda                        0.19-4.1  2024-01-31 [1] CRAN (R 4.5.2)
   colorspace                  2.1-2     2025-09-22 [1] CRAN (R 4.5.2)
   corpcor                     1.6.10    2021-09-16 [1] CRAN (R 4.5.2)
   curl                        7.0.0     2025-08-19 [1] CRAN (R 4.5.2)
   data.table                  1.18.2.1  2026-01-27 [1] CRAN (R 4.5.2)
   datawizard                  1.3.0     2025-10-11 [1] CRAN (R 4.5.2)
   DiagrammeR                * 1.0.11    2024-02-02 [1] CRAN (R 4.5.2)
   DiagrammeRsvg               0.1       2016-02-04 [1] CRAN (R 4.5.2)
   digest                      0.6.39    2025-11-19 [1] CRAN (R 4.5.2)
   dplyr                     * 1.2.0     2026-02-03 [1] CRAN (R 4.5.2)
   emmeans                     2.0.1     2025-12-16 [1] CRAN (R 4.5.2)
   estimability                1.5.1     2024-05-12 [1] CRAN (R 4.5.2)
   evaluate                    1.0.5     2025-08-27 [1] CRAN (R 4.5.2)
   farver                      2.1.2     2024-05-13 [1] CRAN (R 4.5.2)
   fastmap                     1.2.0     2024-05-15 [1] CRAN (R 4.5.2)
   fdrtool                     1.2.18    2024-08-20 [1] CRAN (R 4.5.2)
   forcats                     1.0.1     2025-09-25 [1] CRAN (R 4.5.2)
   foreign                     0.8-90    2025-03-31 [2] CRAN (R 4.5.2)
   Formula                     1.2-5     2023-02-24 [1] CRAN (R 4.5.2)
   generics                    0.1.4     2025-05-09 [1] CRAN (R 4.5.2)
   ggcorrplot                * 0.1.4.1   2023-09-05 [1] CRAN (R 4.5.2)
   ggplot2                   * 4.0.2     2026-02-03 [1] CRAN (R 4.5.2)
   glasso                      1.11      2019-10-01 [1] CRAN (R 4.5.2)
   glue                        1.8.0     2024-09-30 [1] CRAN (R 4.5.2)
   GPArotation                 2025.3-1  2025-04-12 [1] CRAN (R 4.5.2)
   gridExtra                 * 2.3       2017-09-09 [1] CRAN (R 4.5.2)
   gtable                      0.3.6     2024-10-25 [1] CRAN (R 4.5.2)
   gtools                      3.9.5     2023-11-20 [1] CRAN (R 4.5.2)
   haven                     * 2.5.5     2025-05-30 [1] CRAN (R 4.5.2)
   here                      * 1.0.2     2025-09-15 [1] CRAN (R 4.5.2)
   Hmisc                       5.2-5     2026-01-09 [1] CRAN (R 4.5.2)
   hms                         1.1.4     2025-10-17 [1] CRAN (R 4.5.2)
   htmlTable                   2.4.3     2024-07-21 [1] CRAN (R 4.5.2)
   htmltools                   0.5.9     2025-12-04 [1] CRAN (R 4.5.2)
   htmlwidgets                 1.6.4     2023-12-06 [1] CRAN (R 4.5.2)
   igraph                      2.2.2     2026-02-12 [1] CRAN (R 4.5.2)
   insight                     1.4.6     2026-02-04 [1] CRAN (R 4.5.2)
   jpeg                        0.1-11    2025-03-21 [1] CRAN (R 4.5.2)
   jsonlite                    2.0.0     2025-03-27 [1] CRAN (R 4.5.2)
   kableExtra                * 1.4.0     2024-01-24 [1] CRAN (R 4.5.2)
   knitr                     * 1.51      2025-12-20 [1] CRAN (R 4.5.2)
   kutils                      1.73      2023-09-17 [1] CRAN (R 4.5.2)
   labeling                    0.4.3     2023-08-29 [1] CRAN (R 4.5.2)
   lattice                     0.22-7    2025-04-02 [2] CRAN (R 4.5.2)
   lavaan                    * 0.6-21    2025-12-21 [1] CRAN (R 4.5.2)
   lavaanExtra               * 0.2.2     2025-09-15 [1] CRAN (R 4.5.2)
   lavaanPlot                * 0.8.1     2024-01-29 [1] CRAN (R 4.5.2)
   lifecycle                   1.0.5     2026-01-08 [1] CRAN (R 4.5.2)
   lisrelToR                   0.3       2024-02-07 [1] CRAN (R 4.5.2)
   lme4                        1.1-38    2025-12-02 [1] CRAN (R 4.5.2)
   magrittr                    2.0.4     2025-09-12 [1] CRAN (R 4.5.2)
   MASS                        7.3-65    2025-02-28 [2] CRAN (R 4.5.2)
   Matrix                      1.7-4     2025-08-28 [2] CRAN (R 4.5.2)
   mi                          1.2       2025-09-02 [1] CRAN (R 4.5.2)
   minqa                       1.2.8     2024-08-17 [1] CRAN (R 4.5.2)
   mnormt                      2.1.2     2026-01-27 [1] CRAN (R 4.5.2)
   mvtnorm                     1.3-3     2025-01-10 [1] CRAN (R 4.5.2)
   nlme                        3.1-168   2025-03-31 [2] CRAN (R 4.5.2)
   nloptr                      2.2.1     2025-03-17 [1] CRAN (R 4.5.2)
   nnet                        7.3-20    2025-01-01 [2] CRAN (R 4.5.2)
   OpenMx                      2.22.10   2025-11-07 [1] CRAN (R 4.5.2)
   openxlsx                    4.2.8.1   2025-10-31 [1] CRAN (R 4.5.2)
   patchwork                 * 1.3.2     2025-08-25 [1] CRAN (R 4.5.2)
   pbapply                     1.7-4     2025-07-20 [1] CRAN (R 4.5.2)
   pbivnorm                    0.6.0     2015-01-23 [1] CRAN (R 4.5.2)
   pillar                      1.11.1    2025-09-17 [1] CRAN (R 4.5.2)
   pkgconfig                   2.0.3     2019-09-22 [1] CRAN (R 4.5.2)
   plyr                        1.8.9     2023-10-02 [1] CRAN (R 4.5.2)
   png                         0.1-8     2022-11-29 [1] CRAN (R 4.5.2)
   psych                     * 2.6.1     2026-02-03 [1] CRAN (R 4.5.2)
   purrr                     * 1.2.1     2026-01-09 [1] CRAN (R 4.5.2)
   qgraph                      1.9.8     2023-11-03 [1] CRAN (R 4.5.2)
   quadprog                    1.5-8     2019-11-20 [1] CRAN (R 4.5.2)
   R6                          2.6.1     2025-02-15 [1] CRAN (R 4.5.2)
   ragg                        1.5.0     2025-09-02 [1] CRAN (R 4.5.2)
   rbibutils                   2.4.1     2026-01-21 [1] CRAN (R 4.5.2)
   RColorBrewer                1.1-3     2022-04-03 [1] CRAN (R 4.5.2)
   Rcpp                        1.1.1     2026-01-10 [1] CRAN (R 4.5.2)
 D RcppParallel                5.1.11-1  2025-08-27 [1] CRAN (R 4.5.2)
   Rdpack                      2.6.6     2026-02-08 [1] CRAN (R 4.5.2)
   readr                       2.2.0     2026-02-19 [1] CRAN (R 4.5.2)
   reformulas                  0.4.4     2026-02-02 [1] CRAN (R 4.5.2)
   reshape2                    1.4.5     2025-11-12 [1] CRAN (R 4.5.2)
   rlang                       1.1.7     2026-01-09 [1] CRAN (R 4.5.2)
   rmarkdown                   2.30      2025-09-28 [1] CRAN (R 4.5.2)
   rockchalk                   1.8.157   2022-08-06 [1] CRAN (R 4.5.2)
   rpart                       4.1.24    2025-01-07 [2] CRAN (R 4.5.2)
   rprojroot                   2.1.1     2025-08-26 [1] CRAN (R 4.5.2)
   rstudioapi                  0.18.0    2026-01-16 [1] CRAN (R 4.5.2)
   rsvg                        2.7.0     2025-09-08 [1] CRAN (R 4.5.2)
   S7                          0.2.1     2025-11-14 [1] CRAN (R 4.5.2)
   scales                      1.4.0     2025-04-24 [1] CRAN (R 4.5.2)
   sem                         3.1-16    2024-08-28 [1] CRAN (R 4.5.2)
   semPlot                   * 1.1.8     2026-02-11 [1] CRAN (R 4.5.2)
   semTools                  * 0.5-7     2025-03-13 [1] local (C:/Users/Admin/Downloads/semTools_0.5-7.tar.gz)
   sessioninfo                 1.2.3     2025-02-05 [1] CRAN (R 4.5.2)
   sjlabelled                  1.2.0     2022-04-10 [1] CRAN (R 4.5.2)
   sjmisc                    * 2.8.11    2025-07-30 [1] CRAN (R 4.5.2)
   snakecase                   0.11.1    2023-08-27 [1] CRAN (R 4.5.2)
   stringi                     1.8.7     2025-03-27 [1] CRAN (R 4.5.2)
   stringr                   * 1.6.0     2025-11-04 [1] CRAN (R 4.5.2)
   svglite                     2.2.2     2025-10-21 [1] CRAN (R 4.5.2)
   systemfonts                 1.3.1     2025-10-01 [1] CRAN (R 4.5.2)
   textshaping                 1.0.4     2025-10-10 [1] CRAN (R 4.5.2)
   tibble                    * 3.3.1     2026-01-11 [1] CRAN (R 4.5.2)
   tidyselect                  1.2.1     2024-03-11 [1] CRAN (R 4.5.2)
   tzdb                        0.5.0     2025-03-15 [1] CRAN (R 4.5.2)
   V8                          8.0.1     2025-10-10 [1] CRAN (R 4.5.2)
   vctrs                       0.7.1     2026-01-23 [1] CRAN (R 4.5.2)
   viridisLite                 0.4.3     2026-02-04 [1] CRAN (R 4.5.2)
   visNetwork                  2.1.4     2025-09-04 [1] CRAN (R 4.5.2)
   webshot                     0.5.5     2023-06-26 [1] CRAN (R 4.5.2)
   withr                       3.0.2     2024-10-28 [1] CRAN (R 4.5.2)
   xfun                        0.56      2026-01-18 [1] CRAN (R 4.5.2)
   XML                         3.99-0.22 2026-02-10 [1] CRAN (R 4.5.2)
   xml2                        1.5.2     2026-01-17 [1] CRAN (R 4.5.2)
   xtable                      1.8-8     2026-02-22 [1] CRAN (R 4.5.2)
   yaml                        2.3.12    2025-12-10 [1] CRAN (R 4.5.2)
   zip                         2.3.3     2025-05-13 [1] CRAN (R 4.5.2)

 [1] C:/Users/Admin/AppData/Local/R/win-library/4.5
 [2] C:/Program Files/R/R-4.5.2/library

 * ── Packages attached to the search path.
 D ── DLL MD5 mismatch, broken installation.

──────────────────────────────────────────────────────────────────────────────

Document last updated: 18 April 2026