library(tidyverse)
library(gtsummary)
library(psych)
library(multilevel)
library(performance)
library(sjPlot)
library(patchwork)
library(lavaan)
library(lavaanPlot)
library(semPlot)
library(semTools)
library(lubridate)

1 Descriptive analysis for the study participabnts (the first form)

Desc <- read.csv("C:/Users/msaleeb/Downloads/Redcap Projects other than pregmpox/Self-management/Analysis-self management/Descreptive_raw.csv",
                na.strings = "", stringsAsFactors = T)

1.1 Description of the unique values of each variable separately (for quality check)

In this section, the unique values of every variable are shown and the number below every value shows how many people picked this value

1.1.1 Village

table(Desc$Village)
## 
##    Baguya   Bathnia Bethsaida      Bodo Chanambia  College   Donbosco  Haigabat 
##         8         1        10         3         8         1         2        19 
##   HaiGaty Haimagaya   Kazana1   Kazana2  Linezira     Maiwa    Maridi Marubanga 
##         1         1         2        23         1         5         1         2 
##    Matara   Mboroko   Mbulaba   Modubai    Monguo    Muku 1   Nagbaka Nangbinya 
##        20         4         1         1        13         1        12         2 
##    Napere Nazeretha      Nscc     Odabi    Sawora   Sugamal     Sujun 
##         2        11         7         5         1         5        11

1.1.2 Age of the patient

summary(Desc$Age.in.years)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##       3      17      23      22      26      71

1.1.3 Gender of the patient

table(Desc$Gender)
## 
## Female   Male 
##     81    103

1.1.4 Education of the patient

table(Desc$Education)
## 
## No education      Primary    Secondary   University 
##          162           19            2            1

1.1.5 Position of the patient in the family

summary(Desc$Position.of.patient.in.family)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.00    1.00    3.00    3.63    4.00   81.00

1.1.6 Number of siblings

summary(Desc$No.of.Brothers.and.Sisters)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   1.000   5.000   7.000   7.114   9.000  20.000

1.1.7 Number of siblings alive

summary(Desc$No..brothers.and.sisters.alive)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   1.000   4.000   5.000   5.826   8.000  17.000

1.1.8 Number of siblings dead

summary(Desc$No..brothers.and.sisters.dead)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   0.000   1.000   1.326   2.000  15.000

1.1.9 Type of seizure

table(Desc$Type.of.seizures)
## 
##        Both Generalized     Nodding     Unknown 
##           7         157          17           3

1.1.10 Seizure description

Desc %>%
  count(Seizure.description, name = "Frequency") %>%
  knitr::kable(
    format = "html",
    col.names = c("Seizure description", "Frequency")
  ) %>%
  kableExtra::kable_styling(
    full_width = TRUE,
    bootstrap_options = c("striped", "hover", "condensed")
  ) %>%
  kableExtra::column_spec(1, width = "85%") %>%
  kableExtra::column_spec(2, width = "15%")
Seizure description Frequency
Counfused 1
Diziness 1
Dizziness 23
Dizziness 19
Dizziness cameswhen moons going down 1
Dizziness ,seizure lost of consciousness after all for few minutes. 1
Dizziness and lost of consciousness same time. 1
Dizziness and than seizer some time nodding only. 1
Dizziness athan lost of consciousness same time. 1
Dizziness athan seizer 1
Dizziness athan seizer after. 1
Dizziness athan seizer all the body 1
Dizziness athan seizer always when it’s cool. 1
Dizziness athan seizer some times lost of consciousness 1
Dizziness athan seizure after . 1
Dizziness athan seizure and some times lost of consciousness. 1
Dizziness athan seizure when he forgot to take the pills in time 1
Dizziness comes when the weather is cold with seizure together. 1
Dizzinesse 2
Dizzinesse /same time nodding only. 1
Dizzinesse and General seizer, lost of consciousness. 1
Dizzinesse athan seizer and confusion same time. 1
Dizzy athan seizer in general 1
From beginning was nodding athan seizer came after, now no nodding again only seizure when it’s Cold and if he missed drugs. 1
Generailzed 1
General seizure came if the weather is cold 1
Generalied 1
Generalised seizure comes àfter mouths 1
Generalises occurs with seizure after weeks 1
Generalises seizure all the body 1
Generalises seizure all the body 2
Generalises seizure same time when there is not drugs. 1
Generalises seizure when the moon is going down 1
Generalises seizures once a months sometime 1
Generalized 14
Generalized 2
Generalized jacking fitting siezure 1
Generalized seizure which occur once amonth 1
Generalized with jacking fitting 1
Generalized, fitting siezure 1
Generalized, jacking fitting siezure 1
generalized, jacking fitting siezure 2
Generalized, jacking fitting siezure 7
He has nodded his head several times per day when there is food 1
He is nodded his head when there is food always. 1
Headnoding 2
Headnoding 1
No seizure, but nodding only the head 1
Nodding 3
Nodding occurs when there is cold or if they is a food 1
Nodding same time seizer 1
Nodding, head moving up and down during eating 1
Often he has heavy respiration and absent mind , getting confused at the time for some minutes. 1
Same time it starting with dizzinesse athan seizer later 1
Same time starting with dizzinesse athan nodding later. 1
Same time starting with dizzinesse athan seizer later. 1
Seizer after Dizziness. 1
Seizure cames when there is no durgs 1
Seizure comes after dizziness 1
Seizure comes when there is no durgs 1
Seizure general occurs after every mouths 1
Seizure Generalised all the body 1
Seizure generalised when there is no drugs 1
Seizure generalises every week 1
Seizure generalises after dizziness for some minutes 1
Seizure generalises every if they is no durgs. 1
Seizure generalises every month at night 1
Seizure generalises every months with all bady 1
Seizure generalises occurs once a month . 1
Seizure generalises with opening of mouth 1
Seizure generalizing every months 1
Seizure generallized 3
Seizure generallized all the body 1
Seizure generallized at night 1
Seizure in general body after dizziness always. 1
Seizuregeneralized 2
Seizures is generalising every weeks 1
She’s nodding her head always when the food is ready by her 1
She has generalises Seizure comes every months when there is no durgs 1
She is generalising all the body after some months 1
She is not understanding wel 1
Sometime it started with dizzinesse athan seizer. 1
Starting always with dizzinesse athan seizer later. 1
Starting with dizzinesse and nodding same time seizer after currently . 1
Starting with dizzinesse athan seizer later. 1
Starting with dizzinesse athan seizer some time brain disorder losing of consciousness for some days to be normal again. 1
Starting with dizzinesse athan seizer, some time sleeping when playing some times. 1
The all bady is generalising seizure 1
When seizure come he uses to leave. 1
NA 26

1.1.11 type of seizure and seizure description

Desc |>
  dplyr::select(Type.of.seizures, Seizure.description) |>
  knitr::kable(format = "html") |>
  kableExtra::kable_styling(
    full_width = FALSE,
    bootstrap_options = c("striped", "hover", "condensed")
  )
Type.of.seizures Seizure.description
Both Dizziness and than seizer some time nodding only.
Generalized Generalises seizure when the moon is going down
Both Dizziness athan seizure and some times lost of consciousness.
Generalized Generalized seizure which occur once amonth
Generalized Seizure generalizing every months
Generalized Dizziness ,seizure lost of consciousness after all for few minutes.
Generalized Generalized
Generalized Generalized
Generalized Dizziness
Generalized Seizure generalises every months with all bady
Generalized Generalized
Generalized Seizures is generalising every weeks
Generalized Seizure generallized at night
Unknown NA
Generalized NA
Generalized Generalized
Generalized Diziness
Generalized Generalized
Generalized Dizziness
Generalized Dizziness
Generalized Starting with dizzinesse athan seizer later.
Nodding Nodding
Generalized Generalized
Generalized Generalized
Generalized Generalized
Generalized Dizziness
Generalized Seizure generallized
Generalized She is not understanding wel
Generalized Generalises seizure same time when there is not drugs.
Generalized Seizure generalises every week
Generalized Dizziness athan seizer after.
Generalized Dizziness athan seizure after .
Generalized Generalized
Generalized Seizure generallized
Generalized Dizziness
Generalized NA
Generalized Seizure generallized
Generalized Dizziness
Generalized Seizure in general body after dizziness always.
Generalized Seizure Generalised all the body
Generalized Same time starting with dizzinesse athan seizer later.
Generalized Generalized
Generalized Seizure generalises every if they is no durgs.
Generalized Seizure generalised when there is no drugs
Generalized NA
Generalized Dizziness
Generalized Dizziness
Generalized Dizziness
Generalized Generalized
Generalized NA
Generalized Counfused
Generalized Generalises seizures once a months sometime
Generalized Generalized
Generalized Dizziness
Nodding He has nodded his head several times per day when there is food
Generalized Seizure generalises with opening of mouth
Generalized She is generalising all the body after some months
Generalized Generalized
Generalized She has generalises Seizure comes every months when there is no durgs
Nodding NA
Generalized Generalied
Nodding NA
Generalized NA
Generalized Dizziness athan seizer all the body
Generalized Seizure general occurs after every mouths
Generalized Generalises seizure all the body
Generalized NA
Generalized NA
Generalized Dizziness athan seizure when he forgot to take the pills in time
Generalized Dizziness
Generalized NA
Nodding Nodding
Both Nodding same time seizer
Generalized Starting always with dizzinesse athan seizer later.
Generalized Generalises seizure all the body
Generalized NA
Generalized NA
Generalized Dizziness
Generalized Dizziness cameswhen moons going down
Generalized Generalises seizure all the body
Generalized The all bady is generalising seizure
Generalized Dizziness comes when the weather is cold with seizure together.
Generalized Generailzed
Generalized NA
Generalized Dizziness
Both From beginning was nodding athan seizer came after, now no nodding again only seizure when it’s Cold and if he missed drugs.
Both Starting with dizzinesse and nodding same time seizer after currently .
Generalized Generalized jacking fitting siezure
Generalized NA
Generalized Dizzinesse and General seizer, lost of consciousness.
Both Dizzinesse /same time nodding only.
Generalized Dizzinesse athan seizer and confusion same time.
Generalized Generalized, jacking fitting siezure
Generalized Seizure comes when there is no durgs
Generalized Seizure comes after dizziness
Generalized Same time it starting with dizzinesse athan seizer later
Generalized Generalized, jacking fitting siezure
Generalized Generalized, jacking fitting siezure
Generalized Dizziness
Generalized Dizziness
Generalized Sometime it started with dizzinesse athan seizer.
Both Dizzinesse
Generalized Dizziness and lost of consciousness same time.
Nodding She’s nodding her head always when the food is ready by her
Generalized Dizziness
Generalized Dizziness
Generalized Dizziness
Generalized Dizziness
Generalized Starting with dizzinesse athan seizer, some time sleeping when playing some times.
Generalized Dizziness athan seizer
Generalized Dizziness
Generalized Dizziness athan seizer some times lost of consciousness
Generalized Seizure generalises occurs once a month .
Generalized Seizure cames when there is no durgs
Generalized Dizziness
Generalized Dizziness
Generalized Dizziness
Nodding Nodding, head moving up and down during eating
Generalized Generalized, jacking fitting siezure
Generalized NA
Generalized NA
Generalized Dizziness
Nodding NA
Generalized NA
Generalized Seizuregeneralized
Generalized Generalized with jacking fitting
Generalized Generalized, jacking fitting siezure
Generalized Seizure generalises after dizziness for some minutes
Generalized Dizziness
Generalized Dizziness
Generalized Dizziness
Nodding Nodding
Generalized NA
Generalized Generalised seizure comes àfter mouths
Generalized Dizziness
Generalized Generalises occurs with seizure after weeks
Generalized Dizziness athan lost of consciousness same time.
Generalized Same time starting with dizzinesse athan nodding later.
Generalized Starting with dizzinesse athan seizer some time brain disorder losing of consciousness for some days to be normal again.
Unknown Often he has heavy respiration and absent mind , getting confused at the time for some minutes.
Generalized Dizzinesse
Nodding NA
Generalized NA
Generalized Dizziness
Generalized Dizziness
Generalized Generalized, jacking fitting siezure
Generalized Dizziness
Nodding He is nodded his head when there is food always.
Generalized Generalized, jacking fitting siezure
Nodding No seizure, but nodding only the head
Unknown When seizure come he uses to leave.
Generalized Seizure generalises every month at night
Generalized NA
Generalized General seizure came if the weather is cold
Generalized NA
Generalized Generalized
Nodding NA
Generalized Seizure generallized all the body
Nodding Nodding occurs when there is cold or if they is a food
Generalized Dizziness
Generalized Dizzy athan seizer in general
Generalized Dizziness
Nodding Headnoding
Generalized Dizziness
Generalized Seizer after Dizziness.
Generalized NA
Generalized Generalized
Generalized Dizziness
Generalized Dizziness
Generalized generalized, jacking fitting siezure
Generalized Dizziness
Nodding Headnoding
Generalized generalized, jacking fitting siezure
Generalized Dizziness
Generalized Seizuregeneralized
Generalized Dizziness athan seizer always when it’s cool.
Generalized Dizziness
Generalized Generalized
Generalized Generalized, jacking fitting siezure
Generalized Dizziness
Generalized Generalized, fitting siezure
Generalized Dizziness
Generalized Dizziness
Nodding Headnoding

1.1.12 Age at seizure onset

summary(Desc$Age.at.seizure.onset..how.old.was.the.patient.in.years.)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##   1.000   6.000   9.000   9.907  12.000  51.000       2

1.1.13 Seizure frequency

table(Desc$Seizure.frequency)
## 
##                       Daily           Less than monthly 
##                          11                          41 
##                     Monthly No seizure for over 2 years 
##                          67                          23 
##                      Weekly 
##                          41

1.1.14 Name of the antiseizure medication

table(Desc$Name.of.the.antiseizure.medication.)
## 
## Carbamazepine Phenobarbital     Phenytoin     Valproate 
##           161            13             8             2

1.1.15 Dosage and frequency of the antiseizure medication

table(Desc$Dosage.and.frequency.of.the.anti.seizure.medication)
## 
##  100 mg 3 times    Once   Twice 
##       1       2     100      80

1.1.16 Year antiseizure started

table(Desc$Year.antiseizure.medicine.started)
## 
## 2001 2002 2006 2007 2009 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 
##    1    2    2    1    2    2    1    2    3    2    4    5    9   69   22    7 
## 2022 2023 2024 2025 
##   18   11    7   14

1.1.17 Year antiseizure stopped

table(Desc$Year.antiseizure.medicine.stopped..if.not.applicable..leave.it.blank.)
## 
## 2022 2024 2025 
##    1    1    2

1.1.18 Who stopped the antiseizure medication?

Desc |> dplyr::filter(!is.na(Year.antiseizure.medicine.stopped..if.not.applicable..leave.it.blank.))|>
  dplyr::rename(Year_med_stopped=Year.antiseizure.medicine.stopped..if.not.applicable..leave.it.blank.)|>
dplyr::select(Record.ID,Year_med_stopped)
##          Record.ID Year_med_stopped
## 1                0             2025
## 2               19             2022
## 3              113             2025
## 4 foibeSimonRafuel             2024

1.1.19 Side effects of the antiseizure medication

table(Desc$Side.effects.of.antiseizure.medicine)
## 
##            Dizziness                Fever      No side effects 
##                    8                    1                  120 
##           Sleepiness sleepy or dizziness  
##                    4                    1

1.1.20 Support from a community worker

table(Desc$Support.from.community.health.worker)
## 
##  No Yes 
## 152  30

1.1.21 Attending school normally

table(Desc$Attending.school.normally)
## 
##  No Yes 
## 175   8

1.1.22 Able to help in household normally

table(Desc$Able.to.help.in.the.household.normally)
## 
##                     No Not Applicable (adult)                    Yes 
##                     50                      1                    132

1.1.23 Diagnosed with Onchocerciasis

table(Desc$Diagnosed.with.onchocerciasis)
## 
##  No Yes 
##  37 146

1.1.24 Diagnosed with Nodding syndrome

table(Desc$Diagnosed.with.nodding.syndrome)
## 
##  No Yes 
## 154  30

1.1.25 Year of last Ivermectin intake

Desc$Last.ivermectin.intake <- dmy(Desc$Last.ivermectin.intake)
Desc$year_ivermectin <- year(Desc$Last.ivermectin.intake)

table(Desc$year_ivermectin)
## 
## 2025 2026 
##  178    2

1.1.26 PWE slow to understand?

table(Desc$The.PWE.is.slow.to.understand...respond..)
## 
##  No Yes 
##  68 116

1.1.27 If yes, describe how he is slow to understand

Desc %>%
  count(If.yes..describe., name = "Frequency") %>%
  knitr::kable(
    format = "html",
    col.names = c("Description", "Frequency")
  ) %>%
  kableExtra::kable_styling(
    full_width = TRUE,
    bootstrap_options = c("striped", "hover", "condensed")
  ) %>%
  kableExtra::column_spec(1, width = "85%") %>%
  kableExtra::column_spec(2, width = "15%")
Description Frequency
Can do what ask him to do 1
Can not speak clear due generalized seizure which resulted to deformities 1
Confused always 1
Confused and not responding very faster. 1
Counfusion 1
Counfusoun 1
Counfussing 1
District 1
Dizziness 9
Dizziness 11
Due to epilepsy deformities and effects of 1
He’s not faster to understand and even not taking well. 1
He’s slow by early and to talk also 1
He is out of mind 1
He is not active totalk 1
He is not ebale to reorganize and answer the questions all 1
He is not ebale to reorganize anything 1
He is not faster to understand and even to talk. 1
Heisnotactivetorespond 1
In early , not responding very faster to what you ask for. 1
Losing conscience 1
Not active 1
Not responding well 1
Not understand 1
Not understanding the questions 1
Notactivetorespond 1
Notactivetotalk 3
Patient due epilepsy effects or deformities 1
Sametime she has absent mind 1
She is not faster to understanding 1
She is slow because she have injured an the mauth 1
She can’t answer the questions well 1
She is faster to understanding 1
She is not active to respond 1
She is not faster to understand 1
She is not understand faster 1
She is not understanding fast 1
She is not understanding faster 1
She is not understanding faster 1
She is not understanding very faster even to responding to questionnaire is difficult 1
She is weak in earing to respond 1
Sheisnotactivetotalk 2
Sleepiness 8
Sleepiness 4
Slow 1
Slow because she is not active 1
Slow responding 2
Slow responding 5
Slow to respond 2
Slow to understand 1
Slow to understand 1
Slow to understand and respond 1
The PWE is under age and unable to speak clearly as she could understood questionnaires 1
Totalcounfoussed 1
Unable to answer 1
Unable to speak clearly due epilepsy deformities or effects 1
Undee age 1
Under age 1
Underage 2
Underage 1
NA 86

1.1.28 Age of the caregiver

summary(Desc$Age.of.the.caregiver.in.years)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   17.00   38.00   45.00   46.48   52.00   90.00

1.1.29 Education of the caregiver

table(Desc$Education.of.the.caregiver.)
## 
##         No education              Primary            secondary 
##                  127                   28                   25 
## University or higher 
##                    4

1.1.30 Occupation of the caregiver

table(Desc$Occupation.of.the.caregiver)
## 
##                  Farmer              Manual job      Medical profession 
##                     164                       1                       2 
## Not working / housewife                   Other            Petty trader 
##                       2                       2                       3 
##          School teacher 
##                      10

1.1.31 How many adults in the household

summary(Desc$How.many.adults.in.household)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   1.000   2.000   3.000   3.011   4.000  11.000

1.1.32 How many children in the household

summary(Desc$How.many.children.in.household)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   4.000   6.000   6.592   8.000  23.000

1.1.33 Difficulty to pay for transport

table(Desc$In.the.last.6.months..was.it.difficult.to.pay.for.transport)
## 
##  No Yes 
##  88  96

1.1.34 How many times was it difficult to pay for transport

summary(Desc$How.many.times..it.was.difficult.to.pay.for.transport...estimate.)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##   1.000   2.000   2.000   3.179   4.000  10.000      89

1.1.35 Community worker visited you

table(Desc$In.the.last.3.months..did.a.community.health.worker.visit.you.)
## 
##  No Yes 
## 114  70

1.1.36 How often a community worker visited you

table(Desc$How.often.)
## 
## Less often than once every 2 months                 Once every 2 months 
##                                   1                                   7 
##                      Once per month 
##                                  62

1.1.37 How many times you were unable to go to the clinic for medication

table(
  Desc$In.the.last.3.months..how.many.times.were.you.unable.to.come.to.the.clinic.for.medicine.because.of.transport..insecurity..or.costs...only.put.a.number.,
  useNA = "ifany"
)
## 
##    0    1    2    3    4    8   10 <NA> 
##   76   32   24    5    4    1    1   41

this means that 76 persons said 0 and 32 persons said 1 and so on, 1 person encountered difficulty 10 times in the last 3 months We have 41 missing values (NA means missing).

1.1.38 IDs with missing answers to the question: how many times it was difficult to come to the clinic for medicine

Desc |>
  dplyr::filter(is.na(In.the.last.3.months..how.many.times.were.you.unable.to.come.to.the.clinic.for.medicine.because.of.transport..insecurity..or.costs...only.put.a.number.))|>
  dplyr::select(Record.ID, In.the.last.3.months..how.many.times.were.you.unable.to.come.to.the.clinic.for.medicine.because.of.transport..insecurity..or.costs...only.put.a.number.) |>
    knitr::kable(
    format = "html",
    col.names = c("ID", "How_many")
  ) %>%
  kableExtra::kable_styling(
    full_width = FALSE,
    bootstrap_options = c("striped", "hover", "condensed")
  )
ID How_many
113 NA
202 NA
205 NA
240 NA
281 NA
443 NA
450 NA
502 NA
596 NA
620 NA
662 NA
673 NA
731 NA
780 NA
797 NA
819 NA
827 NA
859 NA
872 NA
876 NA
884 NA
934 NA
1265 NA
1285 NA
1602 NA
1622 NA
1862 NA
2401 NA
AJ NA
DavidMangihiwa NA
EmmanuelJeremaia NA
FoizaEdiya NA
JamesObed NA
JoiceJohn NA
paulWilson NA
Philipmartin NA
SamuelHasseny NA
sorume NA
suzanSimon NA
SuzeSimon NA
ThomasMborikino NA

1.1.39 Kilometers to the clinic

table(Desc$How.long.does.it.take.to.get.to.the.clinic)
## 
##  15 minutes or less     2 hours or more          30 minutes            one hour 
##                   2                  29                  40                  63 
## one hour and a half 
##                  50

1.2 Descriptive table (all the variables together except the qualitative ones)

library(dplyr)
library(gtsummary)
library(gt)

tab1 <- Desc %>%
  dplyr::select(
    Village,
    Age.in.years,
    Gender,
    Education,
    Position.of.patient.in.family,
    No.of.Brothers.and.Sisters,
    No..brothers.and.sisters.alive,
    No..brothers.and.sisters.dead,
    Type.of.seizures,
    Age.at.seizure.onset..how.old.was.the.patient.in.years.,
    Seizure.frequency,
    Name.of.the.antiseizure.medication.,
    Side.effects.of.antiseizure.medicine,
    Support.from.community.health.worker,
    Attending.school.normally,
    Able.to.help.in.the.household.normally,
    Diagnosed.with.onchocerciasis,
    Diagnosed.with.nodding.syndrome,
    year_ivermectin,
    The.PWE.is.slow.to.understand...respond..,
    The.caregiver.is.,
    Age.of.the.caregiver.in.years,
    Gender.of.the.caregiver,
    Education.of.the.caregiver.,
    Occupation.of.the.caregiver,
    How.many.adults.in.household,
    How.many.children.in.household,
    In.the.last.6.months..was.it.difficult.to.pay.for.transport,
    How.many.times..it.was.difficult.to.pay.for.transport...estimate.,
    In.the.last.3.months..did.a.community.health.worker.visit.you.,
    How.often.,
    In.the.last.3.months..how.many.times.were.you.unable.to.come.to.the.clinic.for.medicine.because.of.transport..insecurity..or.costs...only.put.a.number.,
    How.many.kilometres.are.between.where.you.live.and.the.clinic...please.give.a.number.,
    How.long.does.it.take.to.get.to.the.clinic,
    The.caregiver.is.the.person.who.takes.care.of.the.person.with.epilepsy.most.of.the.time.
  ) %>%
  
  tbl_summary(
    type = list(
      Support.from.community.health.worker ~ "categorical",
      Attending.school.normally ~ "categorical",
      Able.to.help.in.the.household.normally ~ "categorical",
      Diagnosed.with.onchocerciasis ~ "categorical",
      Diagnosed.with.nodding.syndrome ~ "categorical",
      The.PWE.is.slow.to.understand...respond.. ~ "categorical",
      How.many.adults.in.household ~ "continuous",
      How.many.kilometres.are.between.where.you.live.and.the.clinic...please.give.a.number. ~ "continuous"
    ),
    
    statistic = list(
      all_continuous() ~ "{median} ({p25}, {p75})",
      all_categorical() ~ "{n} ({p}%)"
    ),
    
    digits = list(
      all_categorical() ~ 1
    ),
    
    missing = "ifany",
    missing_text = "Missing"
  ) %>%
  
  modify_header(
    label ~ "**Characteristic**",
    stat_0 ~ "**Overall, N = {N}**"
  ) %>%
  
  bold_labels() %>%
  italicize_levels()


tab1 %>%
  as_gt() %>%
  gt::cols_width(
    label ~ gt::pct(65),
    stat_0 ~ gt::pct(35)
  ) %>%
  gt::cols_align(
    align = "left",
    columns = label
  ) %>%
  gt::cols_align(
    align = "center",
    columns = stat_0
  ) %>%
  gt::tab_options(
    table.width = gt::pct(100),
    data_row.padding = gt::px(3)
  )
Characteristic Overall, N = 1841
Village
    Baguya 8.0 (4.3%)
    Bathnia 1.0 (0.5%)
    Bethsaida 10.0 (5.4%)
    Bodo 3.0 (1.6%)
    Chanambia 8.0 (4.3%)
    College 1.0 (0.5%)
    Donbosco 2.0 (1.1%)
    Haigabat 19.0 (10.3%)
    HaiGaty 1.0 (0.5%)
    Haimagaya 1.0 (0.5%)
    Kazana1 2.0 (1.1%)
    Kazana2 23.0 (12.5%)
    Linezira 1.0 (0.5%)
    Maiwa 5.0 (2.7%)
    Maridi 1.0 (0.5%)
    Marubanga 2.0 (1.1%)
    Matara 20.0 (10.9%)
    Mboroko 4.0 (2.2%)
    Mbulaba 1.0 (0.5%)
    Modubai 1.0 (0.5%)
    Monguo 13.0 (7.1%)
    Muku 1 1.0 (0.5%)
    Nagbaka 12.0 (6.5%)
    Nangbinya 2.0 (1.1%)
    Napere 2.0 (1.1%)
    Nazeretha 11.0 (6.0%)
    Nscc 7.0 (3.8%)
    Odabi 5.0 (2.7%)
    Sawora 1.0 (0.5%)
    Sugamal 5.0 (2.7%)
    Sujun 11.0 (6.0%)
Age.in.years 23 (17, 26)
Gender
    Female 81.0 (44.0%)
    Male 103.0 (56.0%)
Education
    No education 162.0 (88.0%)
    Primary 19.0 (10.3%)
    Secondary 2.0 (1.1%)
    University 1.0 (0.5%)
Position.of.patient.in.family 3 (1, 4)
No.of.Brothers.and.Sisters 7 (5, 9)
No..brothers.and.sisters.alive 5 (4, 8)
No..brothers.and.sisters.dead 1 (0, 2)
Type.of.seizures
    Both 7.0 (3.8%)
    Generalized 157.0 (85.3%)
    Nodding 17.0 (9.2%)
    Unknown 3.0 (1.6%)
Age.at.seizure.onset..how.old.was.the.patient.in.years. 9 (6, 12)
    Missing 2
Seizure.frequency
    Daily 11.0 (6.0%)
    Less than monthly 41.0 (22.4%)
    Monthly 67.0 (36.6%)
    No seizure for over 2 years 23.0 (12.6%)
    Weekly 41.0 (22.4%)
    Missing 1
Name.of.the.antiseizure.medication.
    Carbamazepine 161.0 (87.5%)
    Phenobarbital 13.0 (7.1%)
    Phenytoin 8.0 (4.3%)
    Valproate 2.0 (1.1%)
Side.effects.of.antiseizure.medicine
    Dizziness 8.0 (6.0%)
    Fever 1.0 (0.7%)
    No side effects 120.0 (89.6%)
    Sleepiness 4.0 (3.0%)
    sleepy or dizziness 1.0 (0.7%)
    Missing 50
Support.from.community.health.worker
    No 152.0 (83.5%)
    Yes 30.0 (16.5%)
    Missing 2
Attending.school.normally
    No 175.0 (95.6%)
    Yes 8.0 (4.4%)
    Missing 1
Able.to.help.in.the.household.normally
    No 50.0 (27.3%)
    Not Applicable (adult) 1.0 (0.5%)
    Yes 132.0 (72.1%)
    Missing 1
Diagnosed.with.onchocerciasis
    No 37.0 (20.2%)
    Yes 146.0 (79.8%)
    Missing 1
Diagnosed.with.nodding.syndrome
    No 154.0 (83.7%)
    Yes 30.0 (16.3%)
year_ivermectin
    2025 178.0 (98.9%)
    2026 2.0 (1.1%)
    Missing 4
The.PWE.is.slow.to.understand...respond..
    No 68.0 (37.0%)
    Yes 116.0 (63.0%)
The.caregiver.is.
    Father 46.0 (25.0%)
    Mother 125.0 (67.9%)
    None (patient takes care of his own) 8.0 (4.3%)
    Other relative (aunt, uncle,..) 5.0 (2.7%)
Age.of.the.caregiver.in.years 45 (38, 52)
Gender.of.the.caregiver
    Female 125.0 (67.9%)
    Male 59.0 (32.1%)
Education.of.the.caregiver.
    No education 127.0 (69.0%)
    Primary 28.0 (15.2%)
    secondary 25.0 (13.6%)
    University or higher 4.0 (2.2%)
Occupation.of.the.caregiver
    Farmer 164.0 (89.1%)
    Manual job 1.0 (0.5%)
    Medical profession 2.0 (1.1%)
    Not working / housewife 2.0 (1.1%)
    Other 2.0 (1.1%)
    Petty trader 3.0 (1.6%)
    School teacher 10.0 (5.4%)
How.many.adults.in.household 3 (2, 4)
How.many.children.in.household 6 (4, 8)
In.the.last.6.months..was.it.difficult.to.pay.for.transport 96.0 (52.2%)
How.many.times..it.was.difficult.to.pay.for.transport...estimate. 2 (2, 4)
    Missing 89
In.the.last.3.months..did.a.community.health.worker.visit.you. 70.0 (38.0%)
How.often.
    Less often than once every 2 months 1.0 (1.4%)
    Once every 2 months 7.0 (10.0%)
    Once per month 62.0 (88.6%)
    Missing 114
In.the.last.3.months..how.many.times.were.you.unable.to.come.to.the.clinic.for.medicine.because.of.transport..insecurity..or.costs...only.put.a.number.
    0 76.0 (53.1%)
    1 32.0 (22.4%)
    2 24.0 (16.8%)
    3 5.0 (3.5%)
    4 4.0 (2.8%)
    8 1.0 (0.7%)
    10 1.0 (0.7%)
    Missing 41
How.many.kilometres.are.between.where.you.live.and.the.clinic...please.give.a.number. 3 (2, 5)
    Missing 2
How.long.does.it.take.to.get.to.the.clinic
    15 minutes or less 2.0 (1.1%)
    2 hours or more 29.0 (15.8%)
    30 minutes 40.0 (21.7%)
    one hour 63.0 (34.2%)
    one hour and a half 50.0 (27.2%)
The.caregiver.is.the.person.who.takes.care.of.the.person.with.epilepsy.most.of.the.time.
    Yes 145.0 (100.0%)
    Missing 39
1 n (%); Median (Q1, Q3)
data_raw<- read.csv("C:/Users/msaleeb/Downloads/Redcap Projects other than pregmpox/Self-management/Analysis-self management/Data-raw.csv",
                na.strings = "", stringsAsFactors = T)


manag<- data_raw |> filter(redcap_repeat_instrument=="management_scale")

# To select only the self management questions
manag<- manag[,75:131]

## to remove the questions: specify where
manag <- manag[,-c(8,36)]
data<- read.csv("C:/Users/msaleeb/Downloads/Redcap Projects other than pregmpox/Self-management/Analysis-self management/Data.csv",
                na.strings = "", stringsAsFactors = T)


manag_label<- data |> filter(Repeat.Instrument=="Management Scale")

# To select only the self management questions
manag_label<- manag_label[,75:131]

## to remove the questions: specify where
manag_label <- manag_label[,-c(8,36)]


## caregiver
caregiver_orig <- manag_label |> filter(is.na(Q1))


## PWE
PWE_orig <- manag_label |> filter(!is.na(Q1))

2 Descriptive stats for both PWE and caregiver

The Self-management questions For PWE:

Q1: In the last 6 months, how often did you take your seizure medication the way the nurse or clinical officer prescribed it?

Q2: In the last 6 months, how often did you take seizure medicine at a fixed time linked to a daily routine? For example, after waking or breakfast, when going to sleep, after fetching water, or using any other way to remember.

Q3: In the last 6 months, how often did you have seizure medicine available and take it when you were away from home?

Q4: In the last 6 months, how often did you get seizure medicine before it was finished?

Q5: In the last 6 months, how often did you plan ahead such as planning money, transport, or timing to avoid running out of seizure medicine?

Q6: In the last 6 months, when medicine was not available at the clinic, how often did you get medicine from somewhere else to avoid interruption? For example, from a private pharmacy or informal seller, through borrowing or sharing, or by travelling to another facility.

Q7: In the last 6 months, how often did you put the seizure medicine in a safe, dry place so that it would not become spoiled or lost?

Q8: In the last 6 months, how often did you keep track of how often seizures happened? For example, by counting and recording or remembering how many seizures occurred per week or per month. Market days could be used as a weekly marker.

Q9: In the last 6 months, how often did you notice or record what type of seizures happened, as best as you could?

Q10: In the last 6 months, how often did you remember or record the time of day or the situation in which a seizure happened? For example, at night, when it was cold, or when eating.

Q11: How confident are you that you have ways to get help during a seizure?

Q12: How confident are you that you ensure that others in the household know what to do during a seizure?

Q13: How confident are you that you have taught others in the household how to prevent harmful actions during seizures, such as putting objects in the person’s mouth?

Q14: How confident are you that you follow advice from the nurse or clinical officer to reduce seizures, including taking medicines, getting enough sleep, and avoiding alcohol and other triggers?

Q15: In the last 6 months, how often did you limit your exposure to open fires or cooking?

Q16: In the last 6 months, how often did you limit bathing, water, river, or well activities to reduce the risk of drowning?

Q17: In the last 6 months, how often did you prevent dangerous climbing, such as climbing trees, ladders, or high places?

Q18: In the last 6 months, how often did you make your environment safer to reduce the risk of injuries? For example, by removing sharp objects or fire from the sleeping place.

Q19: In the last 6 months, how often did you attend clinic visits?

Q20: In the last 6 months, how often did you inform a health worker if your seizures increased or changed?

Q21: In the last 6 months, how often did you seek help before the planned clinic visit—from a clinic or health worker—if your seizures became worse or continued despite treatment?

Q22: In the last 6 months, how often did you inform a health worker about any new or concerning changes noticed after starting or changing medicine, such as sleepiness, dizziness, behavioral changes, or a rash—that is, suspected medicine side effects?

Q23: In the last 6 months, how often did you ask questions when the instructions were not clear?

Q24: In the last 6 months, how often did you check with a health worker before adding other medicines or traditional remedies, or before stopping seizure medication? For example, when a traditional leader advised you to stop taking seizure medication.

Q25: In the last 6 months, how often did you make sure that at least one other trusted person knew how to help during a seizure?

Q26: In the last 6 months, how often did you inform necessary people—such as family members or people at school or work—about your epilepsy when safety required it?

Q27: In the last 6 months, how often did you talk with other people with epilepsy outside your household?

2.1 Table 1. Responses of PWE to the self-management questionnaire

 PWE_orig %>%
  gtsummary::select(
    Q1, Q2, Q3,Q4, Q5, Q6, Q7, Q8, Q9, Q10, Q11, Q12, Q13,Q14,
    Q15, Q16, Q17, Q18, Q19,Q20, Q21, Q22, Q23, Q24, Q25, Q26, Q27
  ) %>%
  tbl_summary(
    digits = list(all_categorical() ~ 1),
    missing_text = "Missing"
  ) %>%
  bold_labels() %>%
  italicize_levels()
Characteristic N = 381
Q1
    Always 36.0 (94.7%)
    Never 1.0 (2.6%)
    Often 1.0 (2.6%)
Q2
    Always 36.0 (94.7%)
    Never 1.0 (2.6%)
    Often 1.0 (2.6%)
Q3
    Always 31.0 (81.6%)
    Never 1.0 (2.6%)
    Not Applicable (was never away from home) 5.0 (13.2%)
    Sometimes 1.0 (2.6%)
Q4
    Always 29.0 (76.3%)
    Never 4.0 (10.5%)
    Often 3.0 (7.9%)
    Sometimes 2.0 (5.3%)
Q5
    Always 21.0 (55.3%)
    Never 8.0 (21.1%)
    Often 3.0 (7.9%)
    Sometimes 6.0 (15.8%)
Q6
    Always 19.0 (50.0%)
    Never 2.0 (5.3%)
    Not applicable (the medicine is always available in the clinic) 9.0 (23.7%)
    Often 6.0 (15.8%)
    Sometimes 2.0 (5.3%)
Q7
    Always 38.0 (100.0%)
Q8
    Always 36.0 (94.7%)
    Often 1.0 (2.6%)
    Sometimes 1.0 (2.6%)
Q9
    Always 29.0 (76.3%)
    Not applicable (if there were no seizures in the past 6 months) 5.0 (13.2%)
    Often 4.0 (10.5%)
Q10
    Always 29.0 (76.3%)
    Not applicable (if there were no seizures in the past 6 months) 5.0 (13.2%)
    Often 3.0 (7.9%)
    Sometimes 1.0 (2.6%)
Q11
    Confident 12.0 (31.6%)
    Moderately confident 4.0 (10.5%)
    Very confident 22.0 (57.9%)
Q12
    A little confident 1.0 (2.6%)
    Confident 1.0 (2.6%)
    Moderately confident 8.0 (21.1%)
    Very confident 28.0 (73.7%)
Q13
    Confident 9.0 (23.7%)
    Moderately confident 4.0 (10.5%)
    Very confident 25.0 (65.8%)
Q14
    Confident 3.0 (7.9%)
    Very confident 35.0 (92.1%)
Q15
    Always 31.0 (81.6%)
    Never 1.0 (2.6%)
    Often 3.0 (7.9%)
    Sometimes 3.0 (7.9%)
Q16
    Always 31.0 (81.6%)
    Never 2.0 (5.3%)
    Often 4.0 (10.5%)
    Sometimes 1.0 (2.6%)
Q17
    Always 34.0 (89.5%)
    Never 2.0 (5.3%)
    Often 1.0 (2.6%)
    Sometimes 1.0 (2.6%)
Q18
    Always 32.0 (84.2%)
    Never 2.0 (5.3%)
    Often 4.0 (10.5%)
Q19
    Always 36.0 (94.7%)
    Often 2.0 (5.3%)
Q20
    Always 32.0 (84.2%)
    Not applicable (if there was no seizures in the last 6 months) 4.0 (10.5%)
    Often 2.0 (5.3%)
Q21
    Always 29.0 (76.3%)
    Never 1.0 (2.6%)
    Not applicable (if there was no seizures in the last 6 months) 4.0 (10.5%)
    Often 3.0 (7.9%)
    Sometimes 1.0 (2.6%)
Q22
    Always 26.0 (68.4%)
    Never 1.0 (2.6%)
    Not applicable (if there was no change) 7.0 (18.4%)
    Often 2.0 (5.3%)
    Sometimes 2.0 (5.3%)
Q23
    Always 33.0 (86.8%)
    Never 1.0 (2.6%)
    Not applicable (if instructions were always clear) 3.0 (7.9%)
    Often 1.0 (2.6%)
Q24
    Always 3.0 (7.9%)
    Never 1.0 (2.6%)
    Not applicable (if they never considered adding traditional remedies or stopping seizure medicine) 34.0 (89.5%)
Q25
    Always 33.0 (86.8%)
    Often 4.0 (10.5%)
    Sometimes 1.0 (2.6%)
Q26
    Always 27.0 (71.1%)
    Never 1.0 (2.6%)
    Not applicable (if this was never necessary) 3.0 (7.9%)
    Often 4.0 (10.5%)
    Rarely 1.0 (2.6%)
    Sometimes 2.0 (5.3%)
Q27
    Always 32.0 (86.5%)
    Often 4.0 (10.8%)
    Sometimes 1.0 (2.7%)
    Missing 1
1 n (%)

2.2 Table 2. Responses of caregivers to the self-management questionnaire

The Self-management questions For Caregivers:

Caregiver.Q1: In the last 6 months, how often did you make sure that the person took seizure medicine the way the nurse or clinical officer prescribed it? For example, by supervising when the person takes the medicine or by counting pills.

Caregiver.Q2: In the last 6 months, how often did you take seizure medicine at a fixed time linked to a daily routine? For example, after waking or breakfast, when going to sleep, or after fetching water, or any other way to remember.

Caregiver.Q3: In the last 6 months, how often did you verify that the person actually took the medicine (e.g. you saw them swallow / checked tablets)?

Caregiver.Q4: In the last 6 months, how often did you get seizure medicine before it was finished?

Caregiver.Q5: In the last 6 months, how often did you plan (money/transport/timing) to avoid running out of seizure medicine.

Caregiver.Q6: In the last 6 months, when medicine was not available at the clinic, how often did you get medicine from somewhere else to avoid interruption? For example, from a private pharmacy, informal sellers, borrowing, sharing, travelling to another facility.

Caregiver.Q7: In the last 6 months, how often did you put the seizure medicine in a safe, dry place, so that it doesn’t get spoiled or lost?

Caregiver.Q8: In the last 6 months, how often did you keep track whether seizures happened and how many? For example, by counting and record/remembering how many seizures per week or per month. Market days could be used as week marker.

Caregiver.Q9: In the last 6 months, how often did you remember or record what type of seizures happened (as best as you could)?

Caregiver.Q10: In the last 6 months, how often did you remember or record at what time of day or in what situation seizures happened? For example, at night, or when it is cold, or when eating.

Caregiver.Q11: How confident are you that you know what to do during a seizure for this person?

Caregiver.Q12: How confident are you that you made sure others in the household know what to do during a seizure?

Caregiver.Q13: How confident are you that you prevent harmful actions during seizures (e.g., putting objects in the mouth)?

Caregiver.Q14: How confident are you that you supervise the person after seizures until they were safe/recovered.

Caregiver.Q15: In the last 6 months, how often did you supervise or limit exposure to open fire/cooking?

Caregiver.Q16: In the last 6 months, how often did you supervise bathing/water/river/well activities to reduce drowning risk?

Caregiver.Q17: In the last 6 months, how often did you prevent dangerous climbing (trees, ladders, high places)?

Caregiver.Q18: In the last 6 months, how often did you make the environment of the person with epilepsy safer to reduce the risk of injuries. For example, remove sharp objects or fire from the sleeping place.

Caregiver.Q19: In the last 6 months, how often did you put measures in place to prevent the person from wandering off or getting lost.

Caregiver.Q20: In the last 6 months, how often did you attend clinic follow-up appointments (or arrange for them)?

Caregiver.Q21: In the last 6 months, how often did you seek help before the planned clinic visit (clinic/health worker) if seizures became worse or continued despite treatment?

Caregiver.Q22: In the last 6 months, how often did you inform a health worker about any new or concerning changes noticed after starting or changing medicine (sleepiness, dizziness, behavior change, rash, etc.) (suspected medicine side effects)?

Caregiver.Q23: In the last 6 months, how often did you ask questions when instructions were not clear?

Caregiver.Q24: In the last 6 months, how often did you check with a health worker before adding other medicines, traditional remedies or stopping seizure medicine? For example, when a traditional leader advised to stop seizure medicine.

Caregiver.Q25: In the last 6 months, how often did you make sure at least one other trusted person knew how to help during a seizure?

Caregiver.Q26: In the last 6 months, how often did you arrange for another person to take responsibility for caring for the person with epilepsy when you were unavailable?

Caregiver.Q27: In the last 6 months, how often did you inform necessary people (family/school/work) about epilepsy when safety required it?

Caregiver.Q28: In the last 6 months, how often did you talk with others, outside the household, who take care of another person with epilepsy.

#  caregiver table
 caregiver_orig %>%
  gtsummary::select(
    Caregiver.Q1, Caregiver.Q2, Caregiver.Q3,Caregiver.Q4,Caregiver.Q5,Caregiver.Q6,
         Caregiver.Q7,Caregiver.Q8,Caregiver.Q9,Caregiver.Q10,Caregiver.Q11,Caregiver.Q12,Caregiver.Q13,Caregiver.Q14,
         Caregiver.Q15,Caregiver.Q16,
         Caregiver.Q17,Caregiver.Q18,Caregiver.Q19,Caregiver.Q20,Caregiver.Q21,Caregiver.Q22, Caregiver.Q23,Caregiver.Q24,Caregiver.Q25,Caregiver.Q26,Caregiver.Q27, Caregiver.Q28
  ) %>%
  tbl_summary(
    digits = list(all_categorical() ~ 1),
    missing_text = "Missing"
  ) %>%
  bold_labels() %>%
  italicize_levels()
Characteristic N = 1461
Caregiver.Q1
    Always 139.0 (95.2%)
    Never 6.0 (4.1%)
    Often 1.0 (0.7%)
Caregiver.Q2
    Always 138.0 (94.5%)
    Never 6.0 (4.1%)
    Often 2.0 (1.4%)
Caregiver.Q3
    Always 136.0 (93.2%)
    Never 5.0 (3.4%)
    Often 4.0 (2.7%)
    Rarely 1.0 (0.7%)
Caregiver.Q4
    Always 121.0 (82.9%)
    Never 8.0 (5.5%)
    Often 12.0 (8.2%)
    Rarely 1.0 (0.7%)
    Sometimes 4.0 (2.7%)
Caregiver.Q5
    Always 52.0 (35.6%)
    Never 17.0 (11.6%)
    Often 26.0 (17.8%)
    Rarely 3.0 (2.1%)
    Sometimes 48.0 (32.9%)
Caregiver.Q6
    Always 55.0 (37.7%)
    Never 7.0 (4.8%)
    Not applicable (if medicine was always available at the clinic) 62.0 (42.5%)
    Often 17.0 (11.6%)
    Rarely 2.0 (1.4%)
    Sometimes 3.0 (2.1%)
Caregiver.Q7
    Always 140.0 (95.9%)
    Never 4.0 (2.7%)
    Rarely 2.0 (1.4%)
Caregiver.Q8
    Always 123.0 (84.2%)
    Never 3.0 (2.1%)
    Often 16.0 (11.0%)
    Rarely 2.0 (1.4%)
    Sometimes 2.0 (1.4%)
Caregiver.Q9
    Always 118.0 (80.8%)
    Never 5.0 (3.4%)
    Not applicable (if there were no seizures in the past 6 months) 8.0 (5.5%)
    Often 12.0 (8.2%)
    Sometimes 3.0 (2.1%)
Caregiver.Q10
    Always 123.0 (84.2%)
    Never 3.0 (2.1%)
    Not applicable (if there were no seizures in the past 6 months) 7.0 (4.8%)
    Often 12.0 (8.2%)
    Rarely 1.0 (0.7%)
Caregiver.Q11
    Confident 80.0 (54.8%)
    Don't know 1.0 (0.7%)
    Moderately confident 7.0 (4.8%)
    Not confident 1.0 (0.7%)
    Very confident 57.0 (39.0%)
Caregiver.Q12
    Confident 17.0 (11.6%)
    Don't know 1.0 (0.7%)
    Moderately confident 48.0 (32.9%)
    Not confident 1.0 (0.7%)
    Very confident 79.0 (54.1%)
Caregiver.Q13
    Confident 40.0 (27.4%)
    Don't know 1.0 (0.7%)
    Moderately confident 9.0 (6.2%)
    Not confident 6.0 (4.1%)
    Very confident 90.0 (61.6%)
Caregiver.Q14
    Confident 15.0 (10.3%)
    Don't know 1.0 (0.7%)
    Moderately confident 1.0 (0.7%)
    Not confident 1.0 (0.7%)
    Very confident 128.0 (87.7%)
Caregiver.Q15
    Always 119.0 (81.5%)
    Never 9.0 (6.2%)
    Often 16.0 (11.0%)
    Rarely 1.0 (0.7%)
    Sometimes 1.0 (0.7%)
Caregiver.Q16
    Always 122.0 (83.6%)
    Never 9.0 (6.2%)
    Often 11.0 (7.5%)
    Rarely 1.0 (0.7%)
    Sometimes 3.0 (2.1%)
Caregiver.Q17
    Always 124.0 (84.9%)
    Never 7.0 (4.8%)
    Often 13.0 (8.9%)
    Sometimes 2.0 (1.4%)
Caregiver.Q18
    Always 114.0 (78.1%)
    Never 2.0 (1.4%)
    Often 24.0 (16.4%)
    Rarely 1.0 (0.7%)
    Sometimes 5.0 (3.4%)
Caregiver.Q19
    Always 63.0 (43.2%)
    Never 1.0 (0.7%)
    Not applicable (only if the person with epilepsy is not at risk of wandering off) 76.0 (52.1%)
    Often 4.0 (2.7%)
    Rarely 1.0 (0.7%)
    Sometimes 1.0 (0.7%)
Caregiver.Q20
    Always 135.0 (92.5%)
    Never 3.0 (2.1%)
    Often 3.0 (2.1%)
    Rarely 3.0 (2.1%)
    Sometimes 2.0 (1.4%)
Caregiver.Q21
    Always 116.0 (79.5%)
    Never 3.0 (2.1%)
    Not applicable (if there was no seizure in the last 6 months) 10.0 (6.8%)
    Often 13.0 (8.9%)
    Rarely 4.0 (2.7%)
Caregiver.Q22
    Always 113.0 (77.4%)
    Never 1.0 (0.7%)
    Not applicable (if there was no change) 14.0 (9.6%)
    Often 8.0 (5.5%)
    Rarely 2.0 (1.4%)
    Sometimes 8.0 (5.5%)
Caregiver.Q23
    Always 112.0 (76.7%)
    Never 1.0 (0.7%)
    Not applicable (if instructions were always clear) 27.0 (18.5%)
    Often 1.0 (0.7%)
    Rarely 3.0 (2.1%)
    Sometimes 2.0 (1.4%)
Caregiver.Q24
    Always 12.0 (8.2%)
    Never 7.0 (4.8%)
    Not applicable (if they never considered adding traditional remedies or stopping seizure medicine) 124.0 (84.9%)
    Often 3.0 (2.1%)
Caregiver.Q25
    Always 117.0 (80.1%)
    Never 2.0 (1.4%)
    Often 17.0 (11.6%)
    Rarely 1.0 (0.7%)
    Sometimes 9.0 (6.2%)
Caregiver.Q26
    Always 87.0 (59.6%)
    Never 1.0 (0.7%)
    Not applicable (if the person was always available) 30.0 (20.5%)
    Often 23.0 (15.8%)
    Rarely 1.0 (0.7%)
    Sometimes 4.0 (2.7%)
Caregiver.Q27
    Always 103.0 (70.5%)
    Never 4.0 (2.7%)
    Not applicable (if this was never necessary) 12.0 (8.2%)
    Often 15.0 (10.3%)
    Sometimes 12.0 (8.2%)
Caregiver.Q28
    Always 103.0 (70.5%)
    Never 1.0 (0.7%)
    Often 10.0 (6.8%)
    Rarely 1.0 (0.7%)
    Sometimes 31.0 (21.2%)
1 n (%)

2.3 Table 3. Responses of the participants to the knowledge questionnaire

Knowledge.Q1: Brain discharges during seizure cause changes in behaviour/movements/consciousness.

Knowledge.Q2: Suddenly stopping seizure medicines may increase seizure risk.

Knowledge.Q3: Antiseizure drugs should be used exactly as prescribed.

Knowledge.Q4: Even if when the person doesn’t have seizures anymore, it is important to use antiseizure drugs regularly and to attend clinic visits on time.

Knowledge.Q5: When applying to a health facility for any other illness (e.g., a common cold), it must be stated that the person is using antiseizure medicine.

Knowledge.Q6: During a seizure, remove dangerous objects around the person.

Knowledge.Q7: During a seizure, turn the person on their side.

Knowledge.Q8: During a seizure, the tongue may fall back into the throat.

Knowledge.Q9: During a seizure, arm and leg movements should be restrained.

Knowledge.Q10: During a seizure, the person’s mouth should not be forced open and nothing should be given by mouth.

Knowledge.Q11: After the seizure ends, the person should not be left alone until full consciousness returns.

Knowledge.Q12: Epilepsy is a contagious disease.

Knowledge.Q13: Regular use of antiepileptic drugs reduces or stops seizures.

Knowledge.Q14: Some people have rare seizures, others may have many seizures per day.

Knowledge.Q15: People with epilepsy should always consult a doctor or nurse before using any medicine or herbal product.

Know <- data[,c(132:146)]
Know <- Know[seq(2, nrow(Know), by = 2), ]

Know <- Know %>%
  mutate(across(
    everything(),
    ~ factor(
      case_when(
        .x == TRUE  ~ "True",
        .x == FALSE ~ "False",
        TRUE        ~ NA_character_
      ),
      levels = c("True", "False", "I don't know")
    )
  ))

Know%>%
  gtsummary::select(
    K1, K2, K3,K4, K5, K6, K7, K8, K9, K10, K11, K12, K13,K14,K15 ) %>%
  tbl_summary(
    digits = list(all_categorical() ~ 1),
    missing_text = "Missing"
  ) %>%
  bold_labels() %>%
  italicize_levels()
Characteristic N = 1841
K1
    True 177.0 (98.9%)
    False 2.0 (1.1%)
    I don't know 0.0 (0.0%)
    Missing 5
K2
    True 176.0 (97.2%)
    False 5.0 (2.8%)
    I don't know 0.0 (0.0%)
    Missing 3
K3
    True 180.0 (99.4%)
    False 1.0 (0.6%)
    I don't know 0.0 (0.0%)
    Missing 3
K4
    True 177.0 (97.3%)
    False 5.0 (2.7%)
    I don't know 0.0 (0.0%)
    Missing 2
K5
    True 159.0 (87.4%)
    False 23.0 (12.6%)
    I don't know 0.0 (0.0%)
    Missing 2
K6
    True 181.0 (100.0%)
    False 0.0 (0.0%)
    I don't know 0.0 (0.0%)
    Missing 3
K7
    True 181.0 (100.0%)
    False 0.0 (0.0%)
    I don't know 0.0 (0.0%)
    Missing 3
K8
    True 158.0 (100.0%)
    False 0.0 (0.0%)
    I don't know 0.0 (0.0%)
    Missing 26
K9
    True 37.0 (20.6%)
    False 143.0 (79.4%)
    I don't know 0.0 (0.0%)
    Missing 4
K10
    True 137.0 (75.7%)
    False 44.0 (24.3%)
    I don't know 0.0 (0.0%)
    Missing 3
K11
    True 176.0 (97.8%)
    False 4.0 (2.2%)
    I don't know 0.0 (0.0%)
    Missing 4
K12
    True 16.0 (11.0%)
    False 130.0 (89.0%)
    I don't know 0.0 (0.0%)
    Missing 38
K13
    True 179.0 (99.4%)
    False 1.0 (0.6%)
    I don't know 0.0 (0.0%)
    Missing 4
K14
    True 181.0 (100.0%)
    False 0.0 (0.0%)
    I don't know 0.0 (0.0%)
    Missing 3
K15
    True 180.0 (100.0%)
    False 0.0 (0.0%)
    I don't know 0.0 (0.0%)
    Missing 4
1 n (%)

The responses to the knowledge-domain questions suggest that this cohort had generally good knowledge about epilepsy and seizure management. For most items, the largest proportion of participants selected the correct response, “Yes.” However both K9 and K12 are exceptions, they are reverse-worded items for which the correct response is “False.” For this statement, 79.4% and 89% of participants selected “False” for K9 and K12 respectively, indicating that the majority answered the items correctly.

# Transform all 999 or 6 to NA (not applicable is considered as missing data)

manag <- manag |>
  mutate(
    across(Q1:Q27, ~ na_if(.x, 999))
  )

manag <- manag |>
  mutate(
    across(Q1:Q27, ~ na_if(.x, 6))
  )


manag <- manag |>
  mutate(
    across(Caregiver.Q1: Caregiver.Q28, ~ na_if(.x, 999))
  )

manag <- manag |>
  mutate(
    across(Caregiver.Q1: Caregiver.Q28, ~ na_if(.x, 6))
  )


## PWE
PWE <- manag |> filter(!is.na(Q1))
PWE <- PWE %>%
  dplyr::select(-Q3, -Q14, -Q20)
# Merge the responses for PWE and caregiver together

# Questions 3, 14, and 20 are removed from PWE because they didn' match anthing in the caregiver questionnaire

# All of the codes that contain # before are not executed


manag$Q1  <- coalesce(manag$Q1, manag$Caregiver.Q1)
manag$Q2  <- coalesce(manag$Q2,  manag$Caregiver.Q2)
#manag$Q3 <- coalesce(manag$Q3,  manag$Caregiver.Q3)
manag$Q4  <- coalesce(manag$Q4,  manag$Caregiver.Q4)
manag$Q5  <- coalesce(manag$Q5,  manag$Caregiver.Q5)
manag$Q6  <- coalesce(manag$Q6,  manag$Caregiver.Q6)
manag$Q7  <- coalesce(manag$Q7,  manag$Caregiver.Q7)
manag$Q8  <- coalesce(manag$Q8,  manag$Caregiver.Q8)
manag$Q9  <- coalesce(manag$Q9,  manag$Caregiver.Q9)
manag$Q10 <- coalesce(manag$Q10, manag$Caregiver.Q10)
manag$Q11 <- coalesce(manag$Q11, manag$Caregiver.Q11)
manag$Q12 <- coalesce(manag$Q12, manag$Caregiver.Q12)
manag$Q13 <- coalesce(manag$Q13, manag$Caregiver.Q13)
#manag$Q14 <- coalesce(manag$Q14, manag$Caregiver.Q14)
manag$Q15 <- coalesce(manag$Q15, manag$Caregiver.Q15)
manag$Q16 <- coalesce(manag$Q16, manag$Caregiver.Q16)
manag$Q17 <- coalesce(manag$Q17, manag$Caregiver.Q17)
manag$Q18 <- coalesce(manag$Q18, manag$Caregiver.Q18)
manag$Q19 <- coalesce(manag$Q19, manag$Caregiver.Q20)
#manag$Q20 <- coalesce(manag$Q20, manag$Caregiver.Q20)
manag$Q21 <- coalesce(manag$Q21, manag$Caregiver.Q21)
manag$Q22 <- coalesce(manag$Q22, manag$Caregiver.Q22)
manag$Q23 <- coalesce(manag$Q23, manag$Caregiver.Q23)
manag$Q24 <- coalesce(manag$Q24, manag$Caregiver.Q24)
manag$Q25 <- coalesce(manag$Q25, manag$Caregiver.Q25)
manag$Q26 <- coalesce(manag$Q26, manag$Caregiver.Q27)
manag$Q27 <- coalesce(manag$Q27, manag$Caregiver.Q28)

2.5 Table 5. Frequency and distribution of the participants’ answers to some selected external validators

ext<- data[seq(1, nrow(data), by = 2), ]

ext %>%
  gtsummary::select(Seizure.frequency,When.was.the.last.dose.taken,
                    Support.from.CHW,CHW.visited.you, Diff.to.pay.transport,
              Unable.to.come.to.the.clinic.for.medicine,
                  Distance.to.the.clinic.km,
                   Time.to.the.clinic) %>%
  tbl_summary(type = list(Support.from.CHW~ "categorical",
                          CHW.visited.you~ "categorical",
                          Diff.to.pay.transport~"categorical"),
    digits = list(all_categorical() ~ 1),
    missing_text = "Missing"
  ) %>%
  bold_labels() %>%
  italicize_levels()
Characteristic N = 1841
Seizure.frequency
    Daily 11.0 (6.0%)
    Less than monthly 41.0 (22.4%)
    Monthly 67.0 (36.6%)
    No seizure for over 2 years 23.0 (12.6%)
    Weekly 41.0 (22.4%)
    Missing 1
When.was.the.last.dose.taken
    Days ago 6.0 (3.3%)
    Months ago 3.0 (1.6%)
    More than 1 year ago 5.0 (2.7%)
    Today 169.0 (91.8%)
    Weeks ago 1.0 (0.5%)
Support.from.CHW
    No 152.0 (83.5%)
    Yes 30.0 (16.5%)
    Missing 2
CHW.visited.you
    No 114.0 (62.0%)
    Yes 70.0 (38.0%)
Diff.to.pay.transport
    No 88.0 (47.8%)
    Yes 96.0 (52.2%)
Unable.to.come.to.the.clinic.for.medicine
    0 76.0 (53.1%)
    1 32.0 (22.4%)
    2 24.0 (16.8%)
    3 5.0 (3.5%)
    4 4.0 (2.8%)
    8 1.0 (0.7%)
    10 1.0 (0.7%)
    Missing 41
Distance.to.the.clinic.km 3 (2, 5)
    Missing 2
Time.to.the.clinic
    15 minutes or less 2.0 (1.1%)
    2 hours or more 29.0 (15.8%)
    30 minutes 40.0 (21.7%)
    one hour 63.0 (34.2%)
    one hour and a half 50.0 (27.2%)
1 n (%); Median (Q1, Q3)

The potential external validators showed generally good completeness, although their distributions varied considerably. Seizure frequency had substantial variability and was almost complete (183/184), with monthly seizures most common (36.6%), followed by weekly and less-than-monthly seizures (22.4% each); this makes it statistically usable, although it remains an exploratory validator because seizure frequency does not directly measure monitoring behavior. Recency of the last ASM dose was complete but showed a pronounced ceiling effect: 169/184 participants (91.8%) reported taking their medication today, leaving very little variability across the remaining categories. Therefore, although conceptually relevant to medication continuity, its highly skewed distribution may limit its ability to discriminate between participants. CHW-related variables differed in their distributions: only 30/182 participants (16.5%) reported receiving CHW support, making this variable quite imbalanced, whereas CHW visits were more evenly distributed, with 70/184 (38.0%) reporting a visit. Difficulty paying for transport was the most balanced binary validator, with 96/184 (52.2%) reporting difficulty and 88/184 (47.8%) reporting none.

The geographic/access variables also appear potentially useful. Distance to the clinic was almost complete, with a median of 3 km (IQR 2–5), while travel time showed good variation: 34.2% reported one hour, 27.2% one and a half hours, 21.7% 30 minutes, and 15.8% two hours or more. These variables therefore provide reasonable measures of access burden. In contrast, the number of times participants were unable to come to the clinic for medicine had substantial missingness—41/184 (22.3%)—although among those with data, 53.1% reported no such episode and most remaining participants reported only one or two episodes. Overall, CHW visit, difficulty paying for transport, travel time, distance, and seizure frequency have sufficient completeness and variability for external-validation analyses. ASM last-dose recency is conceptually relevant but strongly ceiling-limited, CHW support is usable but highly imbalanced.

3 Confirmatory Factor analysis

3.1 Model 1

In confirmatory factor analysis, the results are usually interpreted in several connected parts. First, we examine the overall model fit, which tells us whether the proposed factor structure adequately represents the observed data; in general,we expect to see that CFI and TLI (fit measures) at least 0.95 and both RMSEA and SRMR (the errors) are at most 0.08

Second, we examine the standardized factor loadings, which show how strongly each questionnaire item is related to its intended domain; ideally, these loadings should be statistically significant and reasonably high, indicating that the items are good indicators of their constructs.

Third, we assess the correlations between the latent domains, where we expect the domains to be related but not so highly correlated, very high correlations between the domain may indicate poor discriminant validity.

Fourth, we inspect the residual variances, which represent the portion of each item that is not explained by its factor; these should remain positive, and negative values or standardized loadings above 1 may indicate an inadmissible solution such as a Heywood case.

For ordinal questionnaire data, we also examine the thresholds, which describe how respondents move between ordered response categories; these are mainly useful for understanding category use, skewness, and possible floor or ceiling effects rather than for judging model fit directly. Finally, after confirming that the factor structure is acceptable, we usually assess reliability and construct validity, including internal consistency measures such as ordinal Cronbach’s alpha or composite reliability, convergent validity using AVE, and discriminant validity to confirm that each domain is both measured consistently and sufficiently distinct from the other domains.

3.2 Model 1

items <- c(
   "Q1", "Q2", "Q4", "Q5", "Q6", "Q7",
  "Q8", "Q9", "Q10",
  "Q11", "Q12", "Q13", 
  "Q15", "Q16", "Q17", "Q18",
  "Q19", "Q21", "Q22", "Q23","Q24",
  "Q25", "Q26", "Q27"
)

model1 <- '
  DomainA =~  Q1+ Q2 
  DomainB =~  Q4 + Q5 + Q6 + Q7
  DomainC =~ Q8 + Q9 + Q10
  DomainD =~ Q11 + Q12 + Q13
  DomainE =~ Q15 + Q16 + Q17 + Q18
  DomainF =~ Q19  + Q21 + Q22 + Q23 +Q24
  DomainG =~ Q25  + Q26 + Q27 
'

fit1 <- cfa(
  model1,
  data      = manag,
  ordered   = items,
  estimator = "WLSMV",
  std.lv    = TRUE,
  missing   = "pairwise"
  
)

summary(
  fit1,
  fit.measures = TRUE,
  standardized = TRUE
)
## lavaan 0.6-19 ended normally after 44 iterations
## 
##   Estimator                                       DWLS
##   Optimization method                           NLMINB
##   Number of model parameters                       129
## 
##   Number of observations                           184
##   Number of missing patterns                        27
## 
## Model Test User Model:
##                                               Standard      Scaled
##   Test Statistic                               509.814     505.697
##   Degrees of freedom                               231         231
##   P-value (Chi-square)                           0.000       0.000
##   Scaling correction factor                                  1.384
##   Shift parameter                                          137.286
##     simple second-order correction                                
## 
## Model Test Baseline Model:
## 
##   Test statistic                             38494.663    9252.451
##   Degrees of freedom                               276         276
##   P-value                                        0.000       0.000
##   Scaling correction factor                                  4.258
## 
## User Model versus Baseline Model:
## 
##   Comparative Fit Index (CFI)                    0.993       0.969
##   Tucker-Lewis Index (TLI)                       0.991       0.963
##                                                                   
##   Robust Comparative Fit Index (CFI)                            NA
##   Robust Tucker-Lewis Index (TLI)                               NA
## 
## Root Mean Square Error of Approximation:
## 
##   RMSEA                                          0.081       0.081
##   90 Percent confidence interval - lower         0.072       0.071
##   90 Percent confidence interval - upper         0.091       0.090
##   P-value H_0: RMSEA <= 0.050                    0.000       0.000
##   P-value H_0: RMSEA >= 0.080                    0.592       0.551
##                                                                   
##   Robust RMSEA                                                  NA
##   90 Percent confidence interval - lower                        NA
##   90 Percent confidence interval - upper                        NA
##   P-value H_0: Robust RMSEA <= 0.050                            NA
##   P-value H_0: Robust RMSEA >= 0.080                            NA
## 
## Standardized Root Mean Square Residual:
## 
##   SRMR                                           0.126       0.126
## 
## 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
##   DomainA =~                                                            
##     Q1                1.015    0.008  132.800    0.000    1.015    1.015
##     Q2                0.980    0.009  106.840    0.000    0.980    0.980
##   DomainB =~                                                            
##     Q4                0.848    0.033   25.977    0.000    0.848    0.848
##     Q5                0.754    0.035   21.525    0.000    0.754    0.754
##     Q6                0.809    0.058   13.964    0.000    0.809    0.809
##     Q7                0.969    0.060   16.148    0.000    0.969    0.969
##   DomainC =~                                                            
##     Q8                0.947    0.028   33.563    0.000    0.947    0.947
##     Q9                0.859    0.050   17.247    0.000    0.859    0.859
##     Q10               0.922    0.034   26.914    0.000    0.922    0.922
##   DomainD =~                                                            
##     Q11               0.753    0.048   15.544    0.000    0.753    0.753
##     Q12               0.857    0.046   18.667    0.000    0.857    0.857
##     Q13               0.769    0.061   12.633    0.000    0.769    0.769
##   DomainE =~                                                            
##     Q15               0.928    0.024   38.633    0.000    0.928    0.928
##     Q16               0.971    0.018   55.274    0.000    0.971    0.971
##     Q17               0.910    0.027   33.927    0.000    0.910    0.910
##     Q18               0.888    0.046   19.352    0.000    0.888    0.888
##   DomainF =~                                                            
##     Q19               0.946    0.068   13.897    0.000    0.946    0.946
##     Q21               0.710    0.082    8.701    0.000    0.710    0.710
##     Q22               0.818    0.042   19.594    0.000    0.818    0.818
##     Q23               0.792    0.072   11.006    0.000    0.792    0.792
##     Q24               0.362    0.167    2.165    0.030    0.362    0.362
##   DomainG =~                                                            
##     Q25               0.844    0.038   22.402    0.000    0.844    0.844
##     Q26               0.672    0.071    9.489    0.000    0.672    0.672
##     Q27               0.669    0.041   16.438    0.000    0.669    0.669
## 
## Covariances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   DomainA ~~                                                            
##     DomainB           1.068    0.030   35.369    0.000    1.068    1.068
##     DomainC           0.898    0.043   20.949    0.000    0.898    0.898
##     DomainD           0.362    0.111    3.275    0.001    0.362    0.362
##     DomainE           0.709    0.099    7.151    0.000    0.709    0.709
##     DomainF           0.935    0.074   12.696    0.000    0.935    0.935
##     DomainG           0.531    0.126    4.218    0.000    0.531    0.531
##   DomainB ~~                                                            
##     DomainC           0.923    0.041   22.620    0.000    0.923    0.923
##     DomainD           0.436    0.053    8.158    0.000    0.436    0.436
##     DomainE           0.793    0.062   12.710    0.000    0.793    0.793
##     DomainF           0.851    0.069   12.365    0.000    0.851    0.851
##     DomainG           0.566    0.087    6.547    0.000    0.566    0.566
##   DomainC ~~                                                            
##     DomainD           0.419    0.056    7.509    0.000    0.419    0.419
##     DomainE           0.492    0.093    5.308    0.000    0.492    0.492
##     DomainF           0.785    0.084    9.297    0.000    0.785    0.785
##     DomainG           0.628    0.093    6.728    0.000    0.628    0.628
##   DomainD ~~                                                            
##     DomainE           0.268    0.080    3.356    0.001    0.268    0.268
##     DomainF           0.542    0.075    7.214    0.000    0.542    0.542
##     DomainG           0.905    0.058   15.739    0.000    0.905    0.905
##   DomainE ~~                                                            
##     DomainF           0.600    0.063    9.565    0.000    0.600    0.600
##     DomainG           0.686    0.068   10.031    0.000    0.686    0.686
##   DomainF ~~                                                            
##     DomainG           0.746    0.057   13.125    0.000    0.746    0.746
## 
## Thresholds:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##     Q1|t1            -1.774    0.171  -10.377    0.000   -1.774   -1.774
##     Q1|t2            -1.655    0.157  -10.522    0.000   -1.655   -1.655
##     Q2|t1            -1.774    0.171  -10.377    0.000   -1.774   -1.774
##     Q2|t2            -1.604    0.152  -10.548    0.000   -1.604   -1.604
##     Q4|t1            -1.512    0.144  -10.534    0.000   -1.512   -1.512
##     Q4|t2            -1.471    0.140  -10.501    0.000   -1.471   -1.471
##     Q4|t3            -1.263    0.125  -10.088    0.000   -1.263   -1.263
##     Q4|t4            -0.897    0.108   -8.342    0.000   -0.897   -0.897
##     Q5|t1            -1.099    0.116   -9.463    0.000   -1.099   -1.099
##     Q5|t2            -1.027    0.113   -9.106    0.000   -1.027   -1.027
##     Q5|t3            -0.137    0.093   -1.470    0.142   -0.137   -0.137
##     Q5|t4             0.262    0.094    2.791    0.005    0.262    0.262
##     Q6|t1            -1.407    0.172   -8.166    0.000   -1.407   -1.407
##     Q6|t2            -1.297    0.162   -7.981    0.000   -1.297   -1.297
##     Q6|t3            -1.073    0.147   -7.319    0.000   -1.073   -1.073
##     Q6|t4            -0.398    0.122   -3.274    0.001   -0.398   -0.398
##     Q7|t1            -2.019    0.207   -9.732    0.000   -2.019   -2.019
##     Q7|t2            -1.844    0.180  -10.237    0.000   -1.844   -1.844
##     Q8|t1            -2.137    0.230   -9.285    0.000   -2.137   -2.137
##     Q8|t2            -1.924    0.192  -10.032    0.000   -1.924   -1.924
##     Q8|t3            -1.712    0.164  -10.468    0.000   -1.712   -1.712
##     Q8|t4            -1.099    0.116   -9.463    0.000   -1.099   -1.099
##     Q9|t1            -1.892    0.194   -9.755    0.000   -1.892   -1.892
##     Q9|t2            -1.677    0.166  -10.127    0.000   -1.677   -1.677
##     Q9|t3            -1.079    0.119   -9.030    0.000   -1.079   -1.079
##     Q10|t1           -2.110    0.232   -9.083    0.000   -2.110   -2.110
##     Q10|t2           -1.991    0.210   -9.502    0.000   -1.991   -1.991
##     Q10|t3           -1.895    0.194   -9.777    0.000   -1.895   -1.895
##     Q10|t4           -1.194    0.125   -9.529    0.000   -1.194   -1.194
##     Q11|t1           -2.545    0.349   -7.288    0.000   -2.545   -2.545
##     Q11|t2           -1.510    0.144  -10.503    0.000   -1.510   -1.510
##     Q11|t3            0.172    0.093    1.842    0.065    0.172    0.172
##     Q12|t1           -2.545    0.349   -7.288    0.000   -2.545   -2.545
##     Q12|t2           -2.293    0.268   -8.568    0.000   -2.293   -2.293
##     Q12|t3           -0.476    0.097   -4.919    0.000   -0.476   -0.476
##     Q12|t4           -0.214    0.094   -2.284    0.022   -0.214   -0.214
##     Q13|t1           -1.841    0.180  -10.215    0.000   -1.841   -1.841
##     Q13|t2           -1.260    0.125  -10.051    0.000   -1.260   -1.260
##     Q13|t3           -0.328    0.095   -3.459    0.001   -0.328   -0.328
##     Q15|t1           -1.604    0.152  -10.548    0.000   -1.604   -1.604
##     Q15|t2           -1.557    0.148  -10.550    0.000   -1.557   -1.557
##     Q15|t3           -1.395    0.134  -10.399    0.000   -1.395   -1.395
##     Q15|t4           -0.897    0.108   -8.342    0.000   -0.897   -0.897
##     Q16|t1           -1.557    0.148  -10.550    0.000   -1.557   -1.557
##     Q16|t2           -1.512    0.144  -10.534    0.000   -1.512   -1.512
##     Q16|t3           -1.360    0.132  -10.333    0.000   -1.360   -1.360
##     Q16|t4           -0.960    0.110   -8.731    0.000   -0.960   -0.960
##     Q17|t1           -1.655    0.157  -10.522    0.000   -1.655   -1.655
##     Q17|t2           -1.512    0.144  -10.534    0.000   -1.512   -1.512
##     Q17|t3           -1.074    0.115   -9.346    0.000   -1.074   -1.074
##     Q18|t1           -2.019    0.207   -9.732    0.000   -2.019   -2.019
##     Q18|t2           -1.924    0.192  -10.032    0.000   -1.924   -1.924
##     Q18|t3           -1.604    0.152  -10.548    0.000   -1.604   -1.604
##     Q18|t4           -0.819    0.105   -7.806    0.000   -0.819   -0.819
##     Q19|t1           -2.137    0.230   -9.285    0.000   -2.137   -2.137
##     Q19|t2           -1.844    0.180  -10.237    0.000   -1.844   -1.844
##     Q19|t3           -1.712    0.164  -10.468    0.000   -1.712   -1.712
##     Q19|t4           -1.471    0.140  -10.501    0.000   -1.471   -1.471
##     Q21|t1           -1.986    0.210   -9.462    0.000   -1.986   -1.986
##     Q21|t2           -1.674    0.166  -10.100    0.000   -1.674   -1.674
##     Q21|t3           -1.617    0.160  -10.135    0.000   -1.617   -1.617
##     Q21|t4           -1.049    0.118   -8.863    0.000   -1.049   -1.049
##     Q22|t1           -2.249    0.272   -8.281    0.000   -2.249   -2.249
##     Q22|t2           -1.968    0.211   -9.319    0.000   -1.968   -1.968
##     Q22|t3           -1.367    0.140   -9.738    0.000   -1.367   -1.367
##     Q22|t4           -1.048    0.121   -8.675    0.000   -1.048   -1.048
##     Q23|t1           -2.227    0.274   -8.141    0.000   -2.227   -2.227
##     Q23|t2           -1.846    0.197   -9.362    0.000   -1.846   -1.846
##     Q23|t3           -1.691    0.176   -9.598    0.000   -1.691   -1.691
##     Q23|t4           -1.568    0.162   -9.653    0.000   -1.568   -1.568
##     Q24|t1           -0.502    0.258   -1.946    0.052   -0.502   -0.502
##     Q24|t2           -0.194    0.248   -0.782    0.434   -0.194   -0.194
##     Q25|t1           -2.295    0.267   -8.581    0.000   -2.295   -2.295
##     Q25|t2           -2.137    0.230   -9.285    0.000   -2.137   -2.137
##     Q25|t3           -1.471    0.140  -10.501    0.000   -1.471   -1.471
##     Q25|t4           -0.897    0.108   -8.342    0.000   -0.897   -0.897
##     Q26|t1           -1.887    0.194   -9.711    0.000   -1.887   -1.887
##     Q26|t2           -1.805    0.183   -9.889    0.000   -1.805   -1.805
##     Q26|t3           -1.183    0.126   -9.408    0.000   -1.183   -1.183
##     Q26|t4           -0.736    0.107   -6.893    0.000   -0.736   -0.736
##     Q27|t1           -2.545    0.349   -7.288    0.000   -2.545   -2.545
##     Q27|t2           -2.293    0.268   -8.568    0.000   -2.293   -2.293
##     Q27|t3           -0.894    0.108   -8.295    0.000   -0.894   -0.894
##     Q27|t4           -0.636    0.100   -6.358    0.000   -0.636   -0.636
## 
## Variances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .Q1               -0.031                              -0.031   -0.031
##    .Q2                0.040                               0.040    0.040
##    .Q4                0.281                               0.281    0.281
##    .Q5                0.432                               0.432    0.432
##    .Q6                0.346                               0.346    0.346
##    .Q7                0.061                               0.061    0.061
##    .Q8                0.102                               0.102    0.102
##    .Q9                0.262                               0.262    0.262
##    .Q10               0.151                               0.151    0.151
##    .Q11               0.432                               0.432    0.432
##    .Q12               0.266                               0.266    0.266
##    .Q13               0.409                               0.409    0.409
##    .Q15               0.139                               0.139    0.139
##    .Q16               0.057                               0.057    0.057
##    .Q17               0.171                               0.171    0.171
##    .Q18               0.211                               0.211    0.211
##    .Q19               0.105                               0.105    0.105
##    .Q21               0.496                               0.496    0.496
##    .Q22               0.330                               0.330    0.330
##    .Q23               0.373                               0.373    0.373
##    .Q24               0.869                               0.869    0.869
##    .Q25               0.288                               0.288    0.288
##    .Q26               0.548                               0.548    0.548
##    .Q27               0.553                               0.553    0.553
##     DomainA           1.000                               1.000    1.000
##     DomainB           1.000                               1.000    1.000
##     DomainC           1.000                               1.000    1.000
##     DomainD           1.000                               1.000    1.000
##     DomainE           1.000                               1.000    1.000
##     DomainF           1.000                               1.000    1.000
##     DomainG           1.000                               1.000    1.000

The main problem concerned Domain A, which consisted of only Q1 and Q2. Both items had extremely high standardized factor loadings (Q1 = 1.015 and Q2 = 0.980), and Q1 had a negative residual variance (−0.031), indicating a Heywood case and suggesting that this two-item factor was not being estimated appropriately. In addition, the estimated correlation between Domain A and Domain B was 1.068, which exceeds the theoretical range of −1 to 1 and indicates that the two domains could not be empirically distinguished in this model.

Inspection of the item response distributions provided an important explanation for this problem. Approximately 95% of participants selected response category 5 for both Q1 and Q2, resulting in very limited variability in these items. Such extreme response concentration can produce unstable polychoric correlations and inflated factor loadings when ordinal CFA is used. Given the very similar response distributions of Q1 and Q2, their conceptual overlap, and the instability of the two-item Domain A factor.

Additional concerns were observed in the correlations between some of the remaining domains. In particular, Domain D and Domain G were very highly correlated (r = 0.905), suggesting a potential discriminant-validity problem between these constructs. Other relatively high correlations included: Domain A–Domain C (r = 0.898), Domain A–Domain F (r = 0.935), Domain B–Domain C (r = 0.923), and Domain B–Domain F (r = 0.851). These correlations should therefore continue to be monitored after the restructuring of Domain A in Model 2.

Discriminant validity means that every domain should be distinguished from the other domain and the correlation between two domains should not be high

At the item level, most standardized factor loadings were strong. Particularly high loadings were observed for Q16 (0.971), Q7 (0.969), Q8 (0.947), and Q19 (0.946). In contrast, Q24 had a substantially weaker loading of 0.362, suggesting that it may represent its intended domain less strongly than the other items and should be examined further from both statistical and substantive perspectives. Finally, the model remained relatively complex for the available sample, with 184 participants and 129 estimated parameters, which may further contribute to instability when some ordinal response categories contain very few observations.

Q1 was removed and Q2 was reassigned to Domain B in Model 2

3.3 Model 2

model2 <- '
 
  DomainA=~  Q2+ Q4 + Q5 + Q6 + Q7
  DomainB =~ Q8 + Q9 + Q10
  DomainC =~ Q11 + Q12 + Q13
  DomainD =~ Q15 + Q16 + Q17 + Q18
  DomainE =~ Q19  + Q21 + Q22 + Q23 +Q24
  DomainF =~ Q25  + Q26 + Q27 
'

fit2 <- cfa(
  model2,
  data      = manag,
  ordered   = items,
  estimator = "WLSMV",
  std.lv    = TRUE,
  missing   = "pairwise"
  
)

summary(
  fit2,
  fit.measures = TRUE,
  standardized = TRUE
)
## lavaan 0.6-19 ended normally after 35 iterations
## 
##   Estimator                                       DWLS
##   Optimization method                           NLMINB
##   Number of model parameters                       120
## 
##   Number of observations                           184
##   Number of missing patterns                        27
## 
## Model Test User Model:
##                                               Standard      Scaled
##   Test Statistic                               488.888     478.163
##   Degrees of freedom                               215         215
##   P-value (Chi-square)                           0.000       0.000
##   Scaling correction factor                                  1.380
##   Shift parameter                                          123.957
##     simple second-order correction                                
## 
## Model Test Baseline Model:
## 
##   Test statistic                             13367.807    3526.873
##   Degrees of freedom                               253         253
##   P-value                                        0.000       0.000
##   Scaling correction factor                                  4.006
## 
## User Model versus Baseline Model:
## 
##   Comparative Fit Index (CFI)                    0.979       0.920
##   Tucker-Lewis Index (TLI)                       0.975       0.905
##                                                                   
##   Robust Comparative Fit Index (CFI)                            NA
##   Robust Tucker-Lewis Index (TLI)                               NA
## 
## Root Mean Square Error of Approximation:
## 
##   RMSEA                                          0.083       0.082
##   90 Percent confidence interval - lower         0.074       0.072
##   90 Percent confidence interval - upper         0.093       0.092
##   P-value H_0: RMSEA <= 0.050                    0.000       0.000
##   P-value H_0: RMSEA >= 0.080                    0.725       0.626
##                                                                   
##   Robust RMSEA                                                  NA
##   90 Percent confidence interval - lower                        NA
##   90 Percent confidence interval - upper                        NA
##   P-value H_0: Robust RMSEA <= 0.050                            NA
##   P-value H_0: Robust RMSEA >= 0.080                            NA
## 
## Standardized Root Mean Square Residual:
## 
##   SRMR                                           0.129       0.129
## 
## 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
##   DomainA =~                                                            
##     Q2                0.999    0.019   52.668    0.000    0.999    0.999
##     Q4                0.810    0.037   21.614    0.000    0.810    0.810
##     Q5                0.758    0.036   21.216    0.000    0.758    0.758
##     Q6                0.794    0.064   12.429    0.000    0.794    0.794
##     Q7                1.021    0.051   20.011    0.000    1.021    1.021
##   DomainB =~                                                            
##     Q8                0.947    0.029   32.457    0.000    0.947    0.947
##     Q9                0.860    0.050   17.329    0.000    0.860    0.860
##     Q10               0.921    0.034   27.499    0.000    0.921    0.921
##   DomainC =~                                                            
##     Q11               0.750    0.048   15.721    0.000    0.750    0.750
##     Q12               0.861    0.045   19.093    0.000    0.861    0.861
##     Q13               0.769    0.060   12.852    0.000    0.769    0.769
##   DomainD =~                                                            
##     Q15               0.927    0.024   38.688    0.000    0.927    0.927
##     Q16               0.971    0.018   55.329    0.000    0.971    0.971
##     Q17               0.912    0.027   34.140    0.000    0.912    0.912
##     Q18               0.886    0.045   19.592    0.000    0.886    0.886
##   DomainE =~                                                            
##     Q19               0.941    0.073   12.936    0.000    0.941    0.941
##     Q21               0.709    0.081    8.779    0.000    0.709    0.709
##     Q22               0.825    0.042   19.764    0.000    0.825    0.825
##     Q23               0.786    0.072   10.896    0.000    0.786    0.786
##     Q24               0.377    0.163    2.312    0.021    0.377    0.377
##   DomainF =~                                                            
##     Q25               0.843    0.038   22.382    0.000    0.843    0.843
##     Q26               0.675    0.069    9.718    0.000    0.675    0.675
##     Q27               0.667    0.041   16.455    0.000    0.667    0.667
## 
## Covariances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   DomainA ~~                                                            
##     DomainB           0.901    0.036   25.367    0.000    0.901    0.901
##     DomainC           0.435    0.059    7.395    0.000    0.435    0.435
##     DomainD           0.782    0.068   11.547    0.000    0.782    0.782
##     DomainE           0.882    0.069   12.772    0.000    0.882    0.882
##     DomainF           0.558    0.092    6.087    0.000    0.558    0.558
##   DomainB ~~                                                            
##     DomainC           0.419    0.056    7.518    0.000    0.419    0.419
##     DomainD           0.492    0.093    5.315    0.000    0.492    0.492
##     DomainE           0.786    0.084    9.313    0.000    0.786    0.786
##     DomainF           0.629    0.093    6.731    0.000    0.629    0.629
##   DomainC ~~                                                            
##     DomainD           0.268    0.080    3.361    0.001    0.268    0.268
##     DomainE           0.544    0.075    7.233    0.000    0.544    0.544
##     DomainF           0.905    0.057   15.820    0.000    0.905    0.905
##   DomainD ~~                                                            
##     DomainE           0.601    0.063    9.571    0.000    0.601    0.601
##     DomainF           0.687    0.068   10.087    0.000    0.687    0.687
##   DomainE ~~                                                            
##     DomainF           0.746    0.057   13.131    0.000    0.746    0.746
## 
## Thresholds:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##     Q2|t1            -1.774    0.171  -10.377    0.000   -1.774   -1.774
##     Q2|t2            -1.604    0.152  -10.548    0.000   -1.604   -1.604
##     Q4|t1            -1.512    0.144  -10.534    0.000   -1.512   -1.512
##     Q4|t2            -1.471    0.140  -10.501    0.000   -1.471   -1.471
##     Q4|t3            -1.263    0.125  -10.088    0.000   -1.263   -1.263
##     Q4|t4            -0.897    0.108   -8.342    0.000   -0.897   -0.897
##     Q5|t1            -1.099    0.116   -9.463    0.000   -1.099   -1.099
##     Q5|t2            -1.027    0.113   -9.106    0.000   -1.027   -1.027
##     Q5|t3            -0.137    0.093   -1.470    0.142   -0.137   -0.137
##     Q5|t4             0.262    0.094    2.791    0.005    0.262    0.262
##     Q6|t1            -1.407    0.172   -8.166    0.000   -1.407   -1.407
##     Q6|t2            -1.297    0.162   -7.981    0.000   -1.297   -1.297
##     Q6|t3            -1.073    0.147   -7.319    0.000   -1.073   -1.073
##     Q6|t4            -0.398    0.122   -3.274    0.001   -0.398   -0.398
##     Q7|t1            -2.019    0.207   -9.732    0.000   -2.019   -2.019
##     Q7|t2            -1.844    0.180  -10.237    0.000   -1.844   -1.844
##     Q8|t1            -2.137    0.230   -9.285    0.000   -2.137   -2.137
##     Q8|t2            -1.924    0.192  -10.032    0.000   -1.924   -1.924
##     Q8|t3            -1.712    0.164  -10.468    0.000   -1.712   -1.712
##     Q8|t4            -1.099    0.116   -9.463    0.000   -1.099   -1.099
##     Q9|t1            -1.892    0.194   -9.755    0.000   -1.892   -1.892
##     Q9|t2            -1.677    0.166  -10.127    0.000   -1.677   -1.677
##     Q9|t3            -1.079    0.119   -9.030    0.000   -1.079   -1.079
##     Q10|t1           -2.110    0.232   -9.083    0.000   -2.110   -2.110
##     Q10|t2           -1.991    0.210   -9.502    0.000   -1.991   -1.991
##     Q10|t3           -1.895    0.194   -9.777    0.000   -1.895   -1.895
##     Q10|t4           -1.194    0.125   -9.529    0.000   -1.194   -1.194
##     Q11|t1           -2.545    0.349   -7.288    0.000   -2.545   -2.545
##     Q11|t2           -1.510    0.144  -10.503    0.000   -1.510   -1.510
##     Q11|t3            0.172    0.093    1.842    0.065    0.172    0.172
##     Q12|t1           -2.545    0.349   -7.288    0.000   -2.545   -2.545
##     Q12|t2           -2.293    0.268   -8.568    0.000   -2.293   -2.293
##     Q12|t3           -0.476    0.097   -4.919    0.000   -0.476   -0.476
##     Q12|t4           -0.214    0.094   -2.284    0.022   -0.214   -0.214
##     Q13|t1           -1.841    0.180  -10.215    0.000   -1.841   -1.841
##     Q13|t2           -1.260    0.125  -10.051    0.000   -1.260   -1.260
##     Q13|t3           -0.328    0.095   -3.459    0.001   -0.328   -0.328
##     Q15|t1           -1.604    0.152  -10.548    0.000   -1.604   -1.604
##     Q15|t2           -1.557    0.148  -10.550    0.000   -1.557   -1.557
##     Q15|t3           -1.395    0.134  -10.399    0.000   -1.395   -1.395
##     Q15|t4           -0.897    0.108   -8.342    0.000   -0.897   -0.897
##     Q16|t1           -1.557    0.148  -10.550    0.000   -1.557   -1.557
##     Q16|t2           -1.512    0.144  -10.534    0.000   -1.512   -1.512
##     Q16|t3           -1.360    0.132  -10.333    0.000   -1.360   -1.360
##     Q16|t4           -0.960    0.110   -8.731    0.000   -0.960   -0.960
##     Q17|t1           -1.655    0.157  -10.522    0.000   -1.655   -1.655
##     Q17|t2           -1.512    0.144  -10.534    0.000   -1.512   -1.512
##     Q17|t3           -1.074    0.115   -9.346    0.000   -1.074   -1.074
##     Q18|t1           -2.019    0.207   -9.732    0.000   -2.019   -2.019
##     Q18|t2           -1.924    0.192  -10.032    0.000   -1.924   -1.924
##     Q18|t3           -1.604    0.152  -10.548    0.000   -1.604   -1.604
##     Q18|t4           -0.819    0.105   -7.806    0.000   -0.819   -0.819
##     Q19|t1           -2.137    0.230   -9.285    0.000   -2.137   -2.137
##     Q19|t2           -1.844    0.180  -10.237    0.000   -1.844   -1.844
##     Q19|t3           -1.712    0.164  -10.468    0.000   -1.712   -1.712
##     Q19|t4           -1.471    0.140  -10.501    0.000   -1.471   -1.471
##     Q21|t1           -1.986    0.210   -9.462    0.000   -1.986   -1.986
##     Q21|t2           -1.674    0.166  -10.100    0.000   -1.674   -1.674
##     Q21|t3           -1.617    0.160  -10.135    0.000   -1.617   -1.617
##     Q21|t4           -1.049    0.118   -8.863    0.000   -1.049   -1.049
##     Q22|t1           -2.249    0.272   -8.281    0.000   -2.249   -2.249
##     Q22|t2           -1.968    0.211   -9.319    0.000   -1.968   -1.968
##     Q22|t3           -1.367    0.140   -9.738    0.000   -1.367   -1.367
##     Q22|t4           -1.048    0.121   -8.675    0.000   -1.048   -1.048
##     Q23|t1           -2.227    0.274   -8.141    0.000   -2.227   -2.227
##     Q23|t2           -1.846    0.197   -9.362    0.000   -1.846   -1.846
##     Q23|t3           -1.691    0.176   -9.598    0.000   -1.691   -1.691
##     Q23|t4           -1.568    0.162   -9.653    0.000   -1.568   -1.568
##     Q24|t1           -0.502    0.258   -1.946    0.052   -0.502   -0.502
##     Q24|t2           -0.194    0.248   -0.782    0.434   -0.194   -0.194
##     Q25|t1           -2.295    0.267   -8.581    0.000   -2.295   -2.295
##     Q25|t2           -2.137    0.230   -9.285    0.000   -2.137   -2.137
##     Q25|t3           -1.471    0.140  -10.501    0.000   -1.471   -1.471
##     Q25|t4           -0.897    0.108   -8.342    0.000   -0.897   -0.897
##     Q26|t1           -1.887    0.194   -9.711    0.000   -1.887   -1.887
##     Q26|t2           -1.805    0.183   -9.889    0.000   -1.805   -1.805
##     Q26|t3           -1.183    0.126   -9.408    0.000   -1.183   -1.183
##     Q26|t4           -0.736    0.107   -6.893    0.000   -0.736   -0.736
##     Q27|t1           -2.545    0.349   -7.288    0.000   -2.545   -2.545
##     Q27|t2           -2.293    0.268   -8.568    0.000   -2.293   -2.293
##     Q27|t3           -0.894    0.108   -8.295    0.000   -0.894   -0.894
##     Q27|t4           -0.636    0.100   -6.358    0.000   -0.636   -0.636
## 
## Variances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .Q2                0.002                               0.002    0.002
##    .Q4                0.343                               0.343    0.343
##    .Q5                0.425                               0.425    0.425
##    .Q6                0.369                               0.369    0.369
##    .Q7               -0.042                              -0.042   -0.042
##    .Q8                0.103                               0.103    0.103
##    .Q9                0.260                               0.260    0.260
##    .Q10               0.151                               0.151    0.151
##    .Q11               0.437                               0.437    0.437
##    .Q12               0.259                               0.259    0.259
##    .Q13               0.409                               0.409    0.409
##    .Q15               0.140                               0.140    0.140
##    .Q16               0.057                               0.057    0.057
##    .Q17               0.168                               0.168    0.168
##    .Q18               0.215                               0.215    0.215
##    .Q19               0.114                               0.114    0.114
##    .Q21               0.498                               0.498    0.498
##    .Q22               0.319                               0.319    0.319
##    .Q23               0.383                               0.383    0.383
##    .Q24               0.858                               0.858    0.858
##    .Q25               0.290                               0.290    0.290
##    .Q26               0.545                               0.545    0.545
##    .Q27               0.554                               0.554    0.554
##     DomainA           1.000                               1.000    1.000
##     DomainB           1.000                               1.000    1.000
##     DomainC           1.000                               1.000    1.000
##     DomainD           1.000                               1.000    1.000
##     DomainE           1.000                               1.000    1.000
##     DomainF           1.000                               1.000    1.000

Model 2 solved the original Q1 problem, but it did not improve the overall CFA fit and introduced/retained other important problems.

The most important findings are:

Global fit became worse overall. The scaled CFI decreased from about 0.969 in Model 1 to 0.920 in Model 2, and scaled TLI decreased from 0.963 to 0.905. RMSEA remained borderline/poor at 0.082 (90% CI 0.072–0.092), and SRMR remained high at 0.129. Thus, although Model 2 is simpler, it does not reproduce the observed item relationships particularly well.

Moving Q2 into the first domain removed the previous impossible correlation above 1 between the first two factors. However, Q2 now loads almost perfectly on Domain A (0.999) and has essentially zero residual variance (0.002). This is not technically a negative variance, but it still indicates that Q2 behaves unusually strongly in the model.

More importantly, Q7 now produces a Heywood case: its standardized loading is 1.021 and its residual variance is −0.042. So removing Q1 did not completely eliminate the inadmissible-estimate problem; it shifted attention to Q7 within the revised first domain. We can see in table 1 that 96.7% of the people have chosen category 5 for Q7.

There are still discriminant-validity concerns. The correlation between Domain A and Domain B is 0.901, and Domain C and Domain F is 0.905. Domain A–Domain E is also high at 0.882.

Most item loadings are strong, but Q24 remains weak at 0.377, whereas Q16 (0.971), Q8 (0.947), and Q19 (0.941) are very strong. Model 2 is somewhat simpler, with 120 parameters for 184 participants, compared with 129 parameters in Model 1, but the sample-to-model-complexity issue remains relevant.

Let’s remove Q7 in model 3 and comapre the difference

3.4 Model 3

model3 <- '
 
  DomainA=~  Q2+ Q4 + Q5 + Q6 
  DomainB =~ Q8 + Q9 + Q10
  DomainC =~ Q11 + Q12 + Q13
  DomainD =~ Q15 + Q16 + Q17 + Q18
  DomainE =~ Q19  + Q21 + Q22 + Q23 +Q24
  DomainF =~ Q25  + Q26 + Q27 
'

fit3 <- cfa(
  model3,
  data      = manag,
  ordered   = items,
  estimator = "WLSMV",
  std.lv    = TRUE,
  missing   = "pairwise"
  
)

summary(
  fit3,
  fit.measures = TRUE,
  standardized = TRUE
)
## lavaan 0.6-19 ended normally after 33 iterations
## 
##   Estimator                                       DWLS
##   Optimization method                           NLMINB
##   Number of model parameters                       117
## 
##   Number of observations                           184
##   Number of missing patterns                        27
## 
## Model Test User Model:
##                                               Standard      Scaled
##   Test Statistic                               439.777     445.256
##   Degrees of freedom                               194         194
##   P-value (Chi-square)                           0.000       0.000
##   Scaling correction factor                                  1.297
##   Shift parameter                                          106.067
##     simple second-order correction                                
## 
## Model Test Baseline Model:
## 
##   Test statistic                             10901.805    3098.184
##   Degrees of freedom                               231         231
##   P-value                                        0.000       0.000
##   Scaling correction factor                                  3.722
## 
## User Model versus Baseline Model:
## 
##   Comparative Fit Index (CFI)                    0.977       0.912
##   Tucker-Lewis Index (TLI)                       0.973       0.896
##                                                                   
##   Robust Comparative Fit Index (CFI)                            NA
##   Robust Tucker-Lewis Index (TLI)                               NA
## 
## Root Mean Square Error of Approximation:
## 
##   RMSEA                                          0.083       0.084
##   90 Percent confidence interval - lower         0.073       0.074
##   90 Percent confidence interval - upper         0.094       0.094
##   P-value H_0: RMSEA <= 0.050                    0.000       0.000
##   P-value H_0: RMSEA >= 0.080                    0.703       0.752
##                                                                   
##   Robust RMSEA                                                  NA
##   90 Percent confidence interval - lower                        NA
##   90 Percent confidence interval - upper                        NA
##   P-value H_0: Robust RMSEA <= 0.050                            NA
##   P-value H_0: Robust RMSEA >= 0.080                            NA
## 
## Standardized Root Mean Square Residual:
## 
##   SRMR                                           0.126       0.126
## 
## 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
##   DomainA =~                                                            
##     Q2                1.094    0.037   29.377    0.000    1.094    1.094
##     Q4                0.833    0.040   20.556    0.000    0.833    0.833
##     Q5                0.814    0.036   22.930    0.000    0.814    0.814
##     Q6                0.824    0.066   12.574    0.000    0.824    0.824
##   DomainB =~                                                            
##     Q8                0.931    0.033   27.819    0.000    0.931    0.931
##     Q9                0.867    0.053   16.442    0.000    0.867    0.867
##     Q10               0.931    0.041   22.575    0.000    0.931    0.931
##   DomainC =~                                                            
##     Q11               0.753    0.048   15.616    0.000    0.753    0.753
##     Q12               0.859    0.045   18.946    0.000    0.859    0.859
##     Q13               0.767    0.059   13.029    0.000    0.767    0.767
##   DomainD =~                                                            
##     Q15               0.927    0.024   37.995    0.000    0.927    0.927
##     Q16               0.972    0.018   54.679    0.000    0.972    0.972
##     Q17               0.913    0.027   34.311    0.000    0.913    0.913
##     Q18               0.884    0.045   19.731    0.000    0.884    0.884
##   DomainE =~                                                            
##     Q19               0.936    0.075   12.547    0.000    0.936    0.936
##     Q21               0.711    0.081    8.811    0.000    0.711    0.711
##     Q22               0.829    0.041   20.070    0.000    0.829    0.829
##     Q23               0.782    0.072   10.859    0.000    0.782    0.782
##     Q24               0.385    0.160    2.403    0.016    0.385    0.385
##   DomainF =~                                                            
##     Q25               0.841    0.038   22.026    0.000    0.841    0.841
##     Q26               0.676    0.069    9.860    0.000    0.676    0.676
##     Q27               0.668    0.041   16.394    0.000    0.668    0.668
## 
## Covariances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   DomainA ~~                                                            
##     DomainB           0.785    0.057   13.865    0.000    0.785    0.785
##     DomainC           0.355    0.070    5.037    0.000    0.355    0.355
##     DomainD           0.757    0.062   12.310    0.000    0.757    0.757
##     DomainE           0.835    0.064   12.944    0.000    0.835    0.835
##     DomainF           0.476    0.088    5.423    0.000    0.476    0.476
##   DomainB ~~                                                            
##     DomainC           0.418    0.056    7.510    0.000    0.418    0.418
##     DomainD           0.494    0.093    5.316    0.000    0.494    0.494
##     DomainE           0.788    0.084    9.338    0.000    0.788    0.788
##     DomainF           0.630    0.094    6.718    0.000    0.630    0.630
##   DomainC ~~                                                            
##     DomainD           0.268    0.080    3.357    0.001    0.268    0.268
##     DomainE           0.544    0.075    7.277    0.000    0.544    0.544
##     DomainF           0.905    0.057   15.870    0.000    0.905    0.905
##   DomainD ~~                                                            
##     DomainE           0.602    0.063    9.594    0.000    0.602    0.602
##     DomainF           0.687    0.068   10.086    0.000    0.687    0.687
##   DomainE ~~                                                            
##     DomainF           0.746    0.057   13.128    0.000    0.746    0.746
## 
## Thresholds:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##     Q2|t1            -1.774    0.171  -10.377    0.000   -1.774   -1.774
##     Q2|t2            -1.604    0.152  -10.548    0.000   -1.604   -1.604
##     Q4|t1            -1.512    0.144  -10.534    0.000   -1.512   -1.512
##     Q4|t2            -1.471    0.140  -10.501    0.000   -1.471   -1.471
##     Q4|t3            -1.263    0.125  -10.088    0.000   -1.263   -1.263
##     Q4|t4            -0.897    0.108   -8.342    0.000   -0.897   -0.897
##     Q5|t1            -1.099    0.116   -9.463    0.000   -1.099   -1.099
##     Q5|t2            -1.027    0.113   -9.106    0.000   -1.027   -1.027
##     Q5|t3            -0.137    0.093   -1.470    0.142   -0.137   -0.137
##     Q5|t4             0.262    0.094    2.791    0.005    0.262    0.262
##     Q6|t1            -1.407    0.172   -8.166    0.000   -1.407   -1.407
##     Q6|t2            -1.297    0.162   -7.981    0.000   -1.297   -1.297
##     Q6|t3            -1.073    0.147   -7.319    0.000   -1.073   -1.073
##     Q6|t4            -0.398    0.122   -3.274    0.001   -0.398   -0.398
##     Q8|t1            -2.137    0.230   -9.285    0.000   -2.137   -2.137
##     Q8|t2            -1.924    0.192  -10.032    0.000   -1.924   -1.924
##     Q8|t3            -1.712    0.164  -10.468    0.000   -1.712   -1.712
##     Q8|t4            -1.099    0.116   -9.463    0.000   -1.099   -1.099
##     Q9|t1            -1.892    0.194   -9.755    0.000   -1.892   -1.892
##     Q9|t2            -1.677    0.166  -10.127    0.000   -1.677   -1.677
##     Q9|t3            -1.079    0.119   -9.030    0.000   -1.079   -1.079
##     Q10|t1           -2.110    0.232   -9.083    0.000   -2.110   -2.110
##     Q10|t2           -1.991    0.210   -9.502    0.000   -1.991   -1.991
##     Q10|t3           -1.895    0.194   -9.777    0.000   -1.895   -1.895
##     Q10|t4           -1.194    0.125   -9.529    0.000   -1.194   -1.194
##     Q11|t1           -2.545    0.349   -7.288    0.000   -2.545   -2.545
##     Q11|t2           -1.510    0.144  -10.503    0.000   -1.510   -1.510
##     Q11|t3            0.172    0.093    1.842    0.065    0.172    0.172
##     Q12|t1           -2.545    0.349   -7.288    0.000   -2.545   -2.545
##     Q12|t2           -2.293    0.268   -8.568    0.000   -2.293   -2.293
##     Q12|t3           -0.476    0.097   -4.919    0.000   -0.476   -0.476
##     Q12|t4           -0.214    0.094   -2.284    0.022   -0.214   -0.214
##     Q13|t1           -1.841    0.180  -10.215    0.000   -1.841   -1.841
##     Q13|t2           -1.260    0.125  -10.051    0.000   -1.260   -1.260
##     Q13|t3           -0.328    0.095   -3.459    0.001   -0.328   -0.328
##     Q15|t1           -1.604    0.152  -10.548    0.000   -1.604   -1.604
##     Q15|t2           -1.557    0.148  -10.550    0.000   -1.557   -1.557
##     Q15|t3           -1.395    0.134  -10.399    0.000   -1.395   -1.395
##     Q15|t4           -0.897    0.108   -8.342    0.000   -0.897   -0.897
##     Q16|t1           -1.557    0.148  -10.550    0.000   -1.557   -1.557
##     Q16|t2           -1.512    0.144  -10.534    0.000   -1.512   -1.512
##     Q16|t3           -1.360    0.132  -10.333    0.000   -1.360   -1.360
##     Q16|t4           -0.960    0.110   -8.731    0.000   -0.960   -0.960
##     Q17|t1           -1.655    0.157  -10.522    0.000   -1.655   -1.655
##     Q17|t2           -1.512    0.144  -10.534    0.000   -1.512   -1.512
##     Q17|t3           -1.074    0.115   -9.346    0.000   -1.074   -1.074
##     Q18|t1           -2.019    0.207   -9.732    0.000   -2.019   -2.019
##     Q18|t2           -1.924    0.192  -10.032    0.000   -1.924   -1.924
##     Q18|t3           -1.604    0.152  -10.548    0.000   -1.604   -1.604
##     Q18|t4           -0.819    0.105   -7.806    0.000   -0.819   -0.819
##     Q19|t1           -2.137    0.230   -9.285    0.000   -2.137   -2.137
##     Q19|t2           -1.844    0.180  -10.237    0.000   -1.844   -1.844
##     Q19|t3           -1.712    0.164  -10.468    0.000   -1.712   -1.712
##     Q19|t4           -1.471    0.140  -10.501    0.000   -1.471   -1.471
##     Q21|t1           -1.986    0.210   -9.462    0.000   -1.986   -1.986
##     Q21|t2           -1.674    0.166  -10.100    0.000   -1.674   -1.674
##     Q21|t3           -1.617    0.160  -10.135    0.000   -1.617   -1.617
##     Q21|t4           -1.049    0.118   -8.863    0.000   -1.049   -1.049
##     Q22|t1           -2.249    0.272   -8.281    0.000   -2.249   -2.249
##     Q22|t2           -1.968    0.211   -9.319    0.000   -1.968   -1.968
##     Q22|t3           -1.367    0.140   -9.738    0.000   -1.367   -1.367
##     Q22|t4           -1.048    0.121   -8.675    0.000   -1.048   -1.048
##     Q23|t1           -2.227    0.274   -8.141    0.000   -2.227   -2.227
##     Q23|t2           -1.846    0.197   -9.362    0.000   -1.846   -1.846
##     Q23|t3           -1.691    0.176   -9.598    0.000   -1.691   -1.691
##     Q23|t4           -1.568    0.162   -9.653    0.000   -1.568   -1.568
##     Q24|t1           -0.502    0.258   -1.946    0.052   -0.502   -0.502
##     Q24|t2           -0.194    0.248   -0.782    0.434   -0.194   -0.194
##     Q25|t1           -2.295    0.267   -8.581    0.000   -2.295   -2.295
##     Q25|t2           -2.137    0.230   -9.285    0.000   -2.137   -2.137
##     Q25|t3           -1.471    0.140  -10.501    0.000   -1.471   -1.471
##     Q25|t4           -0.897    0.108   -8.342    0.000   -0.897   -0.897
##     Q26|t1           -1.887    0.194   -9.711    0.000   -1.887   -1.887
##     Q26|t2           -1.805    0.183   -9.889    0.000   -1.805   -1.805
##     Q26|t3           -1.183    0.126   -9.408    0.000   -1.183   -1.183
##     Q26|t4           -0.736    0.107   -6.893    0.000   -0.736   -0.736
##     Q27|t1           -2.545    0.349   -7.288    0.000   -2.545   -2.545
##     Q27|t2           -2.293    0.268   -8.568    0.000   -2.293   -2.293
##     Q27|t3           -0.894    0.108   -8.295    0.000   -0.894   -0.894
##     Q27|t4           -0.636    0.100   -6.358    0.000   -0.636   -0.636
## 
## Variances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .Q2               -0.197                              -0.197   -0.197
##    .Q4                0.307                               0.307    0.307
##    .Q5                0.337                               0.337    0.337
##    .Q6                0.321                               0.321    0.321
##    .Q8                0.132                               0.132    0.132
##    .Q9                0.248                               0.248    0.248
##    .Q10               0.133                               0.133    0.133
##    .Q11               0.433                               0.433    0.433
##    .Q12               0.262                               0.262    0.262
##    .Q13               0.412                               0.412    0.412
##    .Q15               0.141                               0.141    0.141
##    .Q16               0.056                               0.056    0.056
##    .Q17               0.167                               0.167    0.167
##    .Q18               0.219                               0.219    0.219
##    .Q19               0.123                               0.123    0.123
##    .Q21               0.495                               0.495    0.495
##    .Q22               0.313                               0.313    0.313
##    .Q23               0.389                               0.389    0.389
##    .Q24               0.851                               0.851    0.851
##    .Q25               0.292                               0.292    0.292
##    .Q26               0.543                               0.543    0.543
##    .Q27               0.554                               0.554    0.554
##     DomainA           1.000                               1.000    1.000
##     DomainB           1.000                               1.000    1.000
##     DomainC           1.000                               1.000    1.000
##     DomainD           1.000                               1.000    1.000
##     DomainE           1.000                               1.000    1.000
##     DomainF           1.000                               1.000    1.000

The scaled CFI is now 0.912, TLI 0.896, RMSEA 0.084 (90% CI 0.074–0.094), and SRMR 0.126. Therefore, removing Q7 did not improve overall model fit; CFI, TLI, and RMSEA became slightly worse, while SRMR improved only minimally and remains well above the usual 0.08 threshold.

More importantly, there is still a Heywood case, but now it involves Q2. Its standardized loading increased from 0.999 in Model 2 to 1.094, which is above 1, and its residual variance is now −0.197. This is actually a stronger warning than the Q7 problem in Model 2. So Q7 itself was probably not the fundamental source of the instability.

There is one useful improvement: the correlations involving the revised first domain decreased. For example, Domain A–Domain B fell from 0.901 to 0.785, and Domain A–Domain E fell from 0.882 to 0.835. Thus, removing Q7 improved the separation of Domain A from some other domains. However, Domain C–Domain F remains extremely high at 0.905, so that discriminant-validity issue is completely unchanged.

Most of the remaining loadings are strong. Q4–Q6 now load 0.833, 0.814, and 0.824 on Domain A, respectively. Q16 remains very strong at 0.972. Q24 remains the weakest item, with a standardized loading of only 0.385

I will remove Q2 in model 4

3.5 Model 4

model4 <- '
 
  DomainA =~ Q4 + Q5 + Q6 
  DomainB =~ Q8 + Q9 + Q10
  DomainC =~ Q11 + Q12 + Q13
  DomainD =~ Q15 + Q16 + Q17 + Q18
  DomainE =~ Q19  + Q21 + Q22 + Q23 +Q24
  DomainF =~ Q25  + Q26 + Q27 

'

fit4 <- cfa(
  model4,
  data      = manag,
  ordered   = items,
  estimator = "WLSMV",
  std.lv    = TRUE,
  missing   = "pairwise"
  
)

summary(
  fit4,
  fit.measures = TRUE,
  standardized = TRUE
)
## lavaan 0.6-19 ended normally after 28 iterations
## 
##   Estimator                                       DWLS
##   Optimization method                           NLMINB
##   Number of model parameters                       114
## 
##   Number of observations                           184
##   Number of missing patterns                        27
## 
## Model Test User Model:
##                                               Standard      Scaled
##   Test Statistic                               426.691     434.786
##   Degrees of freedom                               174         174
##   P-value (Chi-square)                           0.000       0.000
##   Scaling correction factor                                  1.241
##   Shift parameter                                           91.080
##     simple second-order correction                                
## 
## Model Test Baseline Model:
## 
##   Test statistic                              9472.306    2833.183
##   Degrees of freedom                               210         210
##   P-value                                        0.000       0.000
##   Scaling correction factor                                  3.531
## 
## User Model versus Baseline Model:
## 
##   Comparative Fit Index (CFI)                    0.973       0.901
##   Tucker-Lewis Index (TLI)                       0.967       0.880
##                                                                   
##   Robust Comparative Fit Index (CFI)                            NA
##   Robust Tucker-Lewis Index (TLI)                               NA
## 
## Root Mean Square Error of Approximation:
## 
##   RMSEA                                          0.089       0.090
##   90 Percent confidence interval - lower         0.078       0.080
##   90 Percent confidence interval - upper         0.100       0.101
##   P-value H_0: RMSEA <= 0.050                    0.000       0.000
##   P-value H_0: RMSEA >= 0.080                    0.921       0.948
##                                                                   
##   Robust RMSEA                                                  NA
##   90 Percent confidence interval - lower                        NA
##   90 Percent confidence interval - upper                        NA
##   P-value H_0: Robust RMSEA <= 0.050                            NA
##   P-value H_0: Robust RMSEA >= 0.080                            NA
## 
## Standardized Root Mean Square Residual:
## 
##   SRMR                                           0.131       0.131
## 
## 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
##   DomainA =~                                                            
##     Q4                0.850    0.046   18.357    0.000    0.850    0.850
##     Q5                0.816    0.035   23.583    0.000    0.816    0.816
##     Q6                0.821    0.070   11.718    0.000    0.821    0.821
##   DomainB =~                                                            
##     Q8                0.927    0.037   25.230    0.000    0.927    0.927
##     Q9                0.877    0.053   16.608    0.000    0.877    0.877
##     Q10               0.923    0.038   24.193    0.000    0.923    0.923
##   DomainC =~                                                            
##     Q11               0.751    0.048   15.752    0.000    0.751    0.751
##     Q12               0.862    0.045   19.203    0.000    0.862    0.862
##     Q13               0.766    0.058   13.216    0.000    0.766    0.766
##   DomainD =~                                                            
##     Q15               0.925    0.025   37.459    0.000    0.925    0.925
##     Q16               0.972    0.018   53.874    0.000    0.972    0.972
##     Q17               0.914    0.027   34.272    0.000    0.914    0.914
##     Q18               0.886    0.044   19.949    0.000    0.886    0.886
##   DomainE =~                                                            
##     Q19               0.929    0.084   11.096    0.000    0.929    0.929
##     Q21               0.712    0.079    9.001    0.000    0.712    0.712
##     Q22               0.843    0.041   20.444    0.000    0.843    0.843
##     Q23               0.765    0.074   10.388    0.000    0.765    0.765
##     Q24               0.389    0.160    2.436    0.015    0.389    0.389
##   DomainF =~                                                            
##     Q25               0.842    0.038   22.010    0.000    0.842    0.842
##     Q26               0.676    0.068   10.004    0.000    0.676    0.676
##     Q27               0.667    0.041   16.373    0.000    0.667    0.667
## 
## Covariances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   DomainA ~~                                                            
##     DomainB           0.725    0.070   10.376    0.000    0.725    0.725
##     DomainC           0.349    0.068    5.162    0.000    0.349    0.349
##     DomainD           0.787    0.060   13.128    0.000    0.787    0.787
##     DomainE           0.813    0.070   11.640    0.000    0.813    0.813
##     DomainF           0.473    0.086    5.512    0.000    0.473    0.473
##   DomainB ~~                                                            
##     DomainC           0.420    0.056    7.510    0.000    0.420    0.420
##     DomainD           0.495    0.093    5.322    0.000    0.495    0.495
##     DomainE           0.789    0.084    9.342    0.000    0.789    0.789
##     DomainF           0.631    0.094    6.720    0.000    0.631    0.631
##   DomainC ~~                                                            
##     DomainD           0.268    0.080    3.369    0.001    0.268    0.268
##     DomainE           0.546    0.075    7.311    0.000    0.546    0.546
##     DomainF           0.904    0.057   15.925    0.000    0.904    0.904
##   DomainD ~~                                                            
##     DomainE           0.605    0.063    9.553    0.000    0.605    0.605
##     DomainF           0.687    0.068   10.119    0.000    0.687    0.687
##   DomainE ~~                                                            
##     DomainF           0.746    0.057   13.103    0.000    0.746    0.746
## 
## Thresholds:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##     Q4|t1            -1.512    0.144  -10.534    0.000   -1.512   -1.512
##     Q4|t2            -1.471    0.140  -10.501    0.000   -1.471   -1.471
##     Q4|t3            -1.263    0.125  -10.088    0.000   -1.263   -1.263
##     Q4|t4            -0.897    0.108   -8.342    0.000   -0.897   -0.897
##     Q5|t1            -1.099    0.116   -9.463    0.000   -1.099   -1.099
##     Q5|t2            -1.027    0.113   -9.106    0.000   -1.027   -1.027
##     Q5|t3            -0.137    0.093   -1.470    0.142   -0.137   -0.137
##     Q5|t4             0.262    0.094    2.791    0.005    0.262    0.262
##     Q6|t1            -1.407    0.172   -8.166    0.000   -1.407   -1.407
##     Q6|t2            -1.297    0.162   -7.981    0.000   -1.297   -1.297
##     Q6|t3            -1.073    0.147   -7.319    0.000   -1.073   -1.073
##     Q6|t4            -0.398    0.122   -3.274    0.001   -0.398   -0.398
##     Q8|t1            -2.137    0.230   -9.285    0.000   -2.137   -2.137
##     Q8|t2            -1.924    0.192  -10.032    0.000   -1.924   -1.924
##     Q8|t3            -1.712    0.164  -10.468    0.000   -1.712   -1.712
##     Q8|t4            -1.099    0.116   -9.463    0.000   -1.099   -1.099
##     Q9|t1            -1.892    0.194   -9.755    0.000   -1.892   -1.892
##     Q9|t2            -1.677    0.166  -10.127    0.000   -1.677   -1.677
##     Q9|t3            -1.079    0.119   -9.030    0.000   -1.079   -1.079
##     Q10|t1           -2.110    0.232   -9.083    0.000   -2.110   -2.110
##     Q10|t2           -1.991    0.210   -9.502    0.000   -1.991   -1.991
##     Q10|t3           -1.895    0.194   -9.777    0.000   -1.895   -1.895
##     Q10|t4           -1.194    0.125   -9.529    0.000   -1.194   -1.194
##     Q11|t1           -2.545    0.349   -7.288    0.000   -2.545   -2.545
##     Q11|t2           -1.510    0.144  -10.503    0.000   -1.510   -1.510
##     Q11|t3            0.172    0.093    1.842    0.065    0.172    0.172
##     Q12|t1           -2.545    0.349   -7.288    0.000   -2.545   -2.545
##     Q12|t2           -2.293    0.268   -8.568    0.000   -2.293   -2.293
##     Q12|t3           -0.476    0.097   -4.919    0.000   -0.476   -0.476
##     Q12|t4           -0.214    0.094   -2.284    0.022   -0.214   -0.214
##     Q13|t1           -1.841    0.180  -10.215    0.000   -1.841   -1.841
##     Q13|t2           -1.260    0.125  -10.051    0.000   -1.260   -1.260
##     Q13|t3           -0.328    0.095   -3.459    0.001   -0.328   -0.328
##     Q15|t1           -1.604    0.152  -10.548    0.000   -1.604   -1.604
##     Q15|t2           -1.557    0.148  -10.550    0.000   -1.557   -1.557
##     Q15|t3           -1.395    0.134  -10.399    0.000   -1.395   -1.395
##     Q15|t4           -0.897    0.108   -8.342    0.000   -0.897   -0.897
##     Q16|t1           -1.557    0.148  -10.550    0.000   -1.557   -1.557
##     Q16|t2           -1.512    0.144  -10.534    0.000   -1.512   -1.512
##     Q16|t3           -1.360    0.132  -10.333    0.000   -1.360   -1.360
##     Q16|t4           -0.960    0.110   -8.731    0.000   -0.960   -0.960
##     Q17|t1           -1.655    0.157  -10.522    0.000   -1.655   -1.655
##     Q17|t2           -1.512    0.144  -10.534    0.000   -1.512   -1.512
##     Q17|t3           -1.074    0.115   -9.346    0.000   -1.074   -1.074
##     Q18|t1           -2.019    0.207   -9.732    0.000   -2.019   -2.019
##     Q18|t2           -1.924    0.192  -10.032    0.000   -1.924   -1.924
##     Q18|t3           -1.604    0.152  -10.548    0.000   -1.604   -1.604
##     Q18|t4           -0.819    0.105   -7.806    0.000   -0.819   -0.819
##     Q19|t1           -2.137    0.230   -9.285    0.000   -2.137   -2.137
##     Q19|t2           -1.844    0.180  -10.237    0.000   -1.844   -1.844
##     Q19|t3           -1.712    0.164  -10.468    0.000   -1.712   -1.712
##     Q19|t4           -1.471    0.140  -10.501    0.000   -1.471   -1.471
##     Q21|t1           -1.986    0.210   -9.462    0.000   -1.986   -1.986
##     Q21|t2           -1.674    0.166  -10.100    0.000   -1.674   -1.674
##     Q21|t3           -1.617    0.160  -10.135    0.000   -1.617   -1.617
##     Q21|t4           -1.049    0.118   -8.863    0.000   -1.049   -1.049
##     Q22|t1           -2.249    0.272   -8.281    0.000   -2.249   -2.249
##     Q22|t2           -1.968    0.211   -9.319    0.000   -1.968   -1.968
##     Q22|t3           -1.367    0.140   -9.738    0.000   -1.367   -1.367
##     Q22|t4           -1.048    0.121   -8.675    0.000   -1.048   -1.048
##     Q23|t1           -2.227    0.274   -8.141    0.000   -2.227   -2.227
##     Q23|t2           -1.846    0.197   -9.362    0.000   -1.846   -1.846
##     Q23|t3           -1.691    0.176   -9.598    0.000   -1.691   -1.691
##     Q23|t4           -1.568    0.162   -9.653    0.000   -1.568   -1.568
##     Q24|t1           -0.502    0.258   -1.946    0.052   -0.502   -0.502
##     Q24|t2           -0.194    0.248   -0.782    0.434   -0.194   -0.194
##     Q25|t1           -2.295    0.267   -8.581    0.000   -2.295   -2.295
##     Q25|t2           -2.137    0.230   -9.285    0.000   -2.137   -2.137
##     Q25|t3           -1.471    0.140  -10.501    0.000   -1.471   -1.471
##     Q25|t4           -0.897    0.108   -8.342    0.000   -0.897   -0.897
##     Q26|t1           -1.887    0.194   -9.711    0.000   -1.887   -1.887
##     Q26|t2           -1.805    0.183   -9.889    0.000   -1.805   -1.805
##     Q26|t3           -1.183    0.126   -9.408    0.000   -1.183   -1.183
##     Q26|t4           -0.736    0.107   -6.893    0.000   -0.736   -0.736
##     Q27|t1           -2.545    0.349   -7.288    0.000   -2.545   -2.545
##     Q27|t2           -2.293    0.268   -8.568    0.000   -2.293   -2.293
##     Q27|t3           -0.894    0.108   -8.295    0.000   -0.894   -0.894
##     Q27|t4           -0.636    0.100   -6.358    0.000   -0.636   -0.636
## 
## Variances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .Q4                0.277                               0.277    0.277
##    .Q5                0.335                               0.335    0.335
##    .Q6                0.325                               0.325    0.325
##    .Q8                0.140                               0.140    0.140
##    .Q9                0.231                               0.231    0.231
##    .Q10               0.147                               0.147    0.147
##    .Q11               0.436                               0.436    0.436
##    .Q12               0.257                               0.257    0.257
##    .Q13               0.414                               0.414    0.414
##    .Q15               0.145                               0.145    0.145
##    .Q16               0.055                               0.055    0.055
##    .Q17               0.165                               0.165    0.165
##    .Q18               0.216                               0.216    0.216
##    .Q19               0.136                               0.136    0.136
##    .Q21               0.493                               0.493    0.493
##    .Q22               0.290                               0.290    0.290
##    .Q23               0.414                               0.414    0.414
##    .Q24               0.848                               0.848    0.848
##    .Q25               0.290                               0.290    0.290
##    .Q26               0.544                               0.544    0.544
##    .Q27               0.555                               0.555    0.555
##     DomainA           1.000                               1.000    1.000
##     DomainB           1.000                               1.000    1.000
##     DomainC           1.000                               1.000    1.000
##     DomainD           1.000                               1.000    1.000
##     DomainE           1.000                               1.000    1.000
##     DomainF           1.000                               1.000    1.000

The model fit measures are still unacceptable

To investigate where and why the CFA model was not fitting the data well after looking at the overall fit indices. Modification indices (modindices code) are diagnostic statistics that help identify possible sources of local misfit, such as an item that may also relate to another domain (cross-loading) or two items that may share additional information not explained by their common factor (correlated residuals). sort. = TRUE arranges the results from the largest modification index to the smallest, allowing us to focus first on the most important sources of misfit, while minimum.value = 10 restricts the output to relatively substantial modification indices and avoids reviewing many trivial suggestions.

modindices(fit4, sort. = TRUE, minimum.value = 10)
##         lhs op rhs      mi    epc sepc.lv sepc.all sepc.nox
## 289 DomainF =~ Q18 109.745 -0.790  -0.790   -0.790   -0.790
## 235 DomainC =~ Q18 101.107 -0.608  -0.608   -0.608   -0.608
## 273 DomainE =~ Q18  77.735 -0.742  -0.742   -0.742   -0.742
## 217 DomainB =~ Q18  65.097 -0.674  -0.674   -0.674   -0.674
## 226 DomainC =~  Q4  54.237  0.536   0.536    0.536    0.536
## 261 DomainE =~  Q4  36.997  0.994   0.994    0.994    0.994
## 301      Q4 ~~ Q12  34.833  0.446   0.446    1.670    1.670
## 277 DomainF =~  Q4  33.629  0.524   0.524    0.524    0.524
## 339      Q6 ~~ Q13  27.860 -0.448  -0.448   -1.220   -1.220
## 401     Q11 ~~ Q13  27.858 -0.368  -0.368   -0.867   -0.867
## 418     Q12 ~~ Q18  26.753 -0.409  -0.409   -1.740   -1.740
## 476     Q18 ~~ Q27  24.701 -0.350  -0.350   -1.010   -1.010
## 244 DomainD =~  Q4  19.756 -0.678  -0.678   -0.678   -0.678
## 283 DomainF =~ Q11  19.369  0.532   0.532    0.532    0.532
## 208 DomainB =~  Q4  18.128  0.601   0.601    0.601    0.601
## 228 DomainC =~  Q6  17.851 -0.327  -0.327   -0.327   -0.327
## 503     Q25 ~~ Q27  16.452 -0.408  -0.408   -1.016   -1.016
## 284 DomainF =~ Q12  15.996 -0.526  -0.526   -0.526   -0.526
## 286 DomainF =~ Q15  15.585  0.311   0.311    0.311    0.311
## 474     Q18 ~~ Q25  15.507 -0.280  -0.280   -1.118   -1.118
## 504     Q26 ~~ Q27  15.302  0.397   0.397    0.724    0.724
## 263 DomainE =~  Q6  14.546 -0.708  -0.708   -0.708   -0.708
## 271 DomainE =~ Q16  14.211  0.330   0.330    0.330    0.330
## 250 DomainD =~ Q11  14.025  0.208   0.208    0.208    0.208
## 414     Q12 ~~ Q13  13.657  0.346   0.346    1.061    1.061
## 425     Q12 ~~ Q26  13.330 -0.255  -0.255   -0.683   -0.683
## 227 DomainC =~  Q5  12.999 -0.257  -0.257   -0.257   -0.257
## 232 DomainC =~ Q15  12.369  0.222   0.222    0.222    0.222
## 215 DomainB =~ Q16  12.029  0.306   0.306    0.306    0.306
## 303      Q4 ~~ Q15  12.028 -0.241  -0.241   -1.202   -1.202
## 451     Q16 ~~ Q18  11.956  0.267   0.267    2.442    2.442
## 501     Q24 ~~ Q27  11.557  0.372   0.372    0.542    0.542
## 234 DomainC =~ Q17  11.064  0.208   0.208    0.208    0.208
## 279 DomainF =~  Q6  10.938 -0.306  -0.306   -0.306   -0.306
## 288 DomainF =~ Q17  10.839  0.259   0.259    0.259    0.259
## 287 DomainF =~ Q16  10.724  0.272   0.272    0.272    0.272
## 404     Q11 ~~ Q17  10.685  0.249   0.249    0.927    0.927
## 233 DomainC =~ Q16  10.587  0.219   0.219    0.219    0.219
## 441     Q15 ~~ Q18  10.463  0.268   0.268    1.516    1.516

Q18 has several cross-loadings on more than one domain because the wording of Q18 is more general than the other questions in the same domain.

Q15–Q17 each assess a specific safety behavior:

Q15: limiting exposure to fire/cooking Q16: limiting water-related activities Q17: preventing dangerous climbing

But Q18 is different: “How often did you make your environment safer to reduce the risk of injuries?”with examples such as removing sharp objects or fire from the sleeping place.

This is much more general and encompassing. It could reflect an overall tendency toward epilepsy self-management or risk prevention, rather than only the specific “safety in daily life” construct.

I will remove Q18 in model 5

3.6 Model 5

model5 <- '
 
  DomainA =~ Q4 + Q5 + Q6 
  DomainB =~ Q8 + Q9 + Q10
  DomainC =~ Q11 + Q12 + Q13
  DomainD =~ Q15 + Q16 + Q17 
  DomainE =~ Q19  + Q21 + Q22 + Q23 +Q24
  DomainF =~ Q25  + Q26 + Q27 

'

fit5 <- cfa(
  model5,
  data      = manag,
  ordered   = items,
  estimator = "WLSMV",
  std.lv    = TRUE,
  missing   = "pairwise"
  
)

summary(
  fit5,
  fit.measures = TRUE,
  standardized = TRUE
)
## lavaan 0.6-19 ended normally after 28 iterations
## 
##   Estimator                                       DWLS
##   Optimization method                           NLMINB
##   Number of model parameters                       109
## 
##   Number of observations                           184
##   Number of missing patterns                        27
## 
## Model Test User Model:
##                                               Standard      Scaled
##   Test Statistic                               283.515     319.693
##   Degrees of freedom                               155         155
##   P-value (Chi-square)                           0.000       0.000
##   Scaling correction factor                                  1.173
##   Shift parameter                                           77.989
##     simple second-order correction                                
## 
## Model Test Baseline Model:
## 
##   Test statistic                              8543.999    2684.484
##   Degrees of freedom                               190         190
##   P-value                                        0.000       0.000
##   Scaling correction factor                                  3.349
## 
## User Model versus Baseline Model:
## 
##   Comparative Fit Index (CFI)                    0.985       0.934
##   Tucker-Lewis Index (TLI)                       0.981       0.919
##                                                                   
##   Robust Comparative Fit Index (CFI)                            NA
##   Robust Tucker-Lewis Index (TLI)                               NA
## 
## Root Mean Square Error of Approximation:
## 
##   RMSEA                                          0.067       0.076
##   90 Percent confidence interval - lower         0.055       0.064
##   90 Percent confidence interval - upper         0.080       0.088
##   P-value H_0: RMSEA <= 0.050                    0.013       0.000
##   P-value H_0: RMSEA >= 0.080                    0.044       0.308
##                                                                   
##   Robust RMSEA                                                  NA
##   90 Percent confidence interval - lower                        NA
##   90 Percent confidence interval - upper                        NA
##   P-value H_0: Robust RMSEA <= 0.050                            NA
##   P-value H_0: Robust RMSEA >= 0.080                            NA
## 
## Standardized Root Mean Square Residual:
## 
##   SRMR                                           0.121       0.121
## 
## 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
##   DomainA =~                                                            
##     Q4                0.843    0.044   19.297    0.000    0.843    0.843
##     Q5                0.818    0.034   23.716    0.000    0.818    0.818
##     Q6                0.827    0.069   11.995    0.000    0.827    0.827
##   DomainB =~                                                            
##     Q8                0.932    0.035   26.448    0.000    0.932    0.932
##     Q9                0.872    0.052   16.870    0.000    0.872    0.872
##     Q10               0.924    0.037   24.946    0.000    0.924    0.924
##   DomainC =~                                                            
##     Q11               0.766    0.048   16.107    0.000    0.766    0.766
##     Q12               0.847    0.044   19.072    0.000    0.847    0.847
##     Q13               0.764    0.056   13.636    0.000    0.764    0.764
##   DomainD =~                                                            
##     Q15               0.945    0.025   37.777    0.000    0.945    0.945
##     Q16               0.979    0.019   52.373    0.000    0.979    0.979
##     Q17               0.936    0.026   35.386    0.000    0.936    0.936
##   DomainE =~                                                            
##     Q19               0.932    0.082   11.398    0.000    0.932    0.932
##     Q21               0.715    0.077    9.234    0.000    0.715    0.715
##     Q22               0.838    0.042   20.090    0.000    0.838    0.838
##     Q23               0.769    0.074   10.351    0.000    0.769    0.769
##     Q24               0.392    0.159    2.469    0.014    0.392    0.392
##   DomainF =~                                                            
##     Q25               0.842    0.041   20.591    0.000    0.842    0.842
##     Q26               0.708    0.066   10.689    0.000    0.708    0.708
##     Q27               0.644    0.042   15.223    0.000    0.644    0.644
## 
## Covariances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   DomainA ~~                                                            
##     DomainB           0.726    0.070   10.403    0.000    0.726    0.726
##     DomainC           0.354    0.068    5.223    0.000    0.354    0.354
##     DomainD           0.820    0.063   12.940    0.000    0.820    0.820
##     DomainE           0.812    0.070   11.672    0.000    0.812    0.812
##     DomainF           0.476    0.085    5.571    0.000    0.476    0.476
##   DomainB ~~                                                            
##     DomainC           0.418    0.056    7.493    0.000    0.418    0.418
##     DomainD           0.401    0.104    3.866    0.000    0.401    0.401
##     DomainE           0.788    0.085    9.303    0.000    0.788    0.788
##     DomainF           0.629    0.094    6.697    0.000    0.629    0.629
##   DomainC ~~                                                            
##     DomainD           0.160    0.089    1.797    0.072    0.160    0.160
##     DomainE           0.546    0.075    7.304    0.000    0.546    0.546
##     DomainF           0.906    0.057   15.956    0.000    0.906    0.906
##   DomainD ~~                                                            
##     DomainE           0.526    0.075    7.006    0.000    0.526    0.526
##     DomainF           0.505    0.085    5.946    0.000    0.505    0.505
##   DomainE ~~                                                            
##     DomainF           0.750    0.057   13.116    0.000    0.750    0.750
## 
## Thresholds:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##     Q4|t1            -1.512    0.144  -10.534    0.000   -1.512   -1.512
##     Q4|t2            -1.471    0.140  -10.501    0.000   -1.471   -1.471
##     Q4|t3            -1.263    0.125  -10.088    0.000   -1.263   -1.263
##     Q4|t4            -0.897    0.108   -8.342    0.000   -0.897   -0.897
##     Q5|t1            -1.099    0.116   -9.463    0.000   -1.099   -1.099
##     Q5|t2            -1.027    0.113   -9.106    0.000   -1.027   -1.027
##     Q5|t3            -0.137    0.093   -1.470    0.142   -0.137   -0.137
##     Q5|t4             0.262    0.094    2.791    0.005    0.262    0.262
##     Q6|t1            -1.407    0.172   -8.166    0.000   -1.407   -1.407
##     Q6|t2            -1.297    0.162   -7.981    0.000   -1.297   -1.297
##     Q6|t3            -1.073    0.147   -7.319    0.000   -1.073   -1.073
##     Q6|t4            -0.398    0.122   -3.274    0.001   -0.398   -0.398
##     Q8|t1            -2.137    0.230   -9.285    0.000   -2.137   -2.137
##     Q8|t2            -1.924    0.192  -10.032    0.000   -1.924   -1.924
##     Q8|t3            -1.712    0.164  -10.468    0.000   -1.712   -1.712
##     Q8|t4            -1.099    0.116   -9.463    0.000   -1.099   -1.099
##     Q9|t1            -1.892    0.194   -9.755    0.000   -1.892   -1.892
##     Q9|t2            -1.677    0.166  -10.127    0.000   -1.677   -1.677
##     Q9|t3            -1.079    0.119   -9.030    0.000   -1.079   -1.079
##     Q10|t1           -2.110    0.232   -9.083    0.000   -2.110   -2.110
##     Q10|t2           -1.991    0.210   -9.502    0.000   -1.991   -1.991
##     Q10|t3           -1.895    0.194   -9.777    0.000   -1.895   -1.895
##     Q10|t4           -1.194    0.125   -9.529    0.000   -1.194   -1.194
##     Q11|t1           -2.545    0.349   -7.288    0.000   -2.545   -2.545
##     Q11|t2           -1.510    0.144  -10.503    0.000   -1.510   -1.510
##     Q11|t3            0.172    0.093    1.842    0.065    0.172    0.172
##     Q12|t1           -2.545    0.349   -7.288    0.000   -2.545   -2.545
##     Q12|t2           -2.293    0.268   -8.568    0.000   -2.293   -2.293
##     Q12|t3           -0.476    0.097   -4.919    0.000   -0.476   -0.476
##     Q12|t4           -0.214    0.094   -2.284    0.022   -0.214   -0.214
##     Q13|t1           -1.841    0.180  -10.215    0.000   -1.841   -1.841
##     Q13|t2           -1.260    0.125  -10.051    0.000   -1.260   -1.260
##     Q13|t3           -0.328    0.095   -3.459    0.001   -0.328   -0.328
##     Q15|t1           -1.604    0.152  -10.548    0.000   -1.604   -1.604
##     Q15|t2           -1.557    0.148  -10.550    0.000   -1.557   -1.557
##     Q15|t3           -1.395    0.134  -10.399    0.000   -1.395   -1.395
##     Q15|t4           -0.897    0.108   -8.342    0.000   -0.897   -0.897
##     Q16|t1           -1.557    0.148  -10.550    0.000   -1.557   -1.557
##     Q16|t2           -1.512    0.144  -10.534    0.000   -1.512   -1.512
##     Q16|t3           -1.360    0.132  -10.333    0.000   -1.360   -1.360
##     Q16|t4           -0.960    0.110   -8.731    0.000   -0.960   -0.960
##     Q17|t1           -1.655    0.157  -10.522    0.000   -1.655   -1.655
##     Q17|t2           -1.512    0.144  -10.534    0.000   -1.512   -1.512
##     Q17|t3           -1.074    0.115   -9.346    0.000   -1.074   -1.074
##     Q19|t1           -2.137    0.230   -9.285    0.000   -2.137   -2.137
##     Q19|t2           -1.844    0.180  -10.237    0.000   -1.844   -1.844
##     Q19|t3           -1.712    0.164  -10.468    0.000   -1.712   -1.712
##     Q19|t4           -1.471    0.140  -10.501    0.000   -1.471   -1.471
##     Q21|t1           -1.986    0.210   -9.462    0.000   -1.986   -1.986
##     Q21|t2           -1.674    0.166  -10.100    0.000   -1.674   -1.674
##     Q21|t3           -1.617    0.160  -10.135    0.000   -1.617   -1.617
##     Q21|t4           -1.049    0.118   -8.863    0.000   -1.049   -1.049
##     Q22|t1           -2.249    0.272   -8.281    0.000   -2.249   -2.249
##     Q22|t2           -1.968    0.211   -9.319    0.000   -1.968   -1.968
##     Q22|t3           -1.367    0.140   -9.738    0.000   -1.367   -1.367
##     Q22|t4           -1.048    0.121   -8.675    0.000   -1.048   -1.048
##     Q23|t1           -2.227    0.274   -8.141    0.000   -2.227   -2.227
##     Q23|t2           -1.846    0.197   -9.362    0.000   -1.846   -1.846
##     Q23|t3           -1.691    0.176   -9.598    0.000   -1.691   -1.691
##     Q23|t4           -1.568    0.162   -9.653    0.000   -1.568   -1.568
##     Q24|t1           -0.502    0.258   -1.946    0.052   -0.502   -0.502
##     Q24|t2           -0.194    0.248   -0.782    0.434   -0.194   -0.194
##     Q25|t1           -2.295    0.267   -8.581    0.000   -2.295   -2.295
##     Q25|t2           -2.137    0.230   -9.285    0.000   -2.137   -2.137
##     Q25|t3           -1.471    0.140  -10.501    0.000   -1.471   -1.471
##     Q25|t4           -0.897    0.108   -8.342    0.000   -0.897   -0.897
##     Q26|t1           -1.887    0.194   -9.711    0.000   -1.887   -1.887
##     Q26|t2           -1.805    0.183   -9.889    0.000   -1.805   -1.805
##     Q26|t3           -1.183    0.126   -9.408    0.000   -1.183   -1.183
##     Q26|t4           -0.736    0.107   -6.893    0.000   -0.736   -0.736
##     Q27|t1           -2.545    0.349   -7.288    0.000   -2.545   -2.545
##     Q27|t2           -2.293    0.268   -8.568    0.000   -2.293   -2.293
##     Q27|t3           -0.894    0.108   -8.295    0.000   -0.894   -0.894
##     Q27|t4           -0.636    0.100   -6.358    0.000   -0.636   -0.636
## 
## Variances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .Q4                0.290                               0.290    0.290
##    .Q5                0.331                               0.331    0.331
##    .Q6                0.316                               0.316    0.316
##    .Q8                0.132                               0.132    0.132
##    .Q9                0.239                               0.239    0.239
##    .Q10               0.146                               0.146    0.146
##    .Q11               0.414                               0.414    0.414
##    .Q12               0.283                               0.283    0.283
##    .Q13               0.417                               0.417    0.417
##    .Q15               0.106                               0.106    0.106
##    .Q16               0.041                               0.041    0.041
##    .Q17               0.124                               0.124    0.124
##    .Q19               0.132                               0.132    0.132
##    .Q21               0.488                               0.488    0.488
##    .Q22               0.299                               0.299    0.299
##    .Q23               0.409                               0.409    0.409
##    .Q24               0.846                               0.846    0.846
##    .Q25               0.291                               0.291    0.291
##    .Q26               0.499                               0.499    0.499
##    .Q27               0.585                               0.585    0.585
##     DomainA           1.000                               1.000    1.000
##     DomainB           1.000                               1.000    1.000
##     DomainC           1.000                               1.000    1.000
##     DomainD           1.000                               1.000    1.000
##     DomainE           1.000                               1.000    1.000
##     DomainF           1.000                               1.000    1.000

After removing Q18 from the Safety in Daily Life domain, the CFA showed a substantial improvement in overall model fit. The scaled CFI increased to 0.934 and the scaled TLI to 0.919, while the scaled RMSEA decreased to 0.076 (90% CI: 0.064–0.088). The SRMR also decreased to 0.121, although it remained above the commonly recommended threshold, indicating some residual local misfit.

The removal of Q18 was supported both statistically and conceptually: unlike Q15–Q17, which assess specific safety behaviors related to fire, water and climbing, Q18 used broader wording concerning general environmental injury prevention and had previously shown large modification indices suggesting relationships with multiple domains. Following its removal, the remaining Safety in Daily Life items showed very strong standardized factor loadings (Q15 = 0.945, Q16 = 0.979, Q17 = 0.936).

No Heywood cases were observed in the revised model. Most other items also demonstrated satisfactory to strong loadings, although Q24 remained comparatively weak (0.392). A remaining concern was the very high correlation between Domain C and Domain F (r = 0.906), suggesting limited discriminant validity between these constructs. However, because the alternative model combining these two domains produced poorer overall fit, retaining them as theoretically distinct factors appears preferable.

I will use the Modification indices again to check why the SRMR is still high (0.121)

modindices(fit5, sort. = TRUE, minimum.value = 10)
##         lhs op rhs     mi    epc sepc.lv sepc.all sepc.nox
## 216 DomainC =~  Q4 55.839  0.518   0.518    0.518    0.518
## 265 DomainF =~  Q4 44.138  0.564   0.564    0.564    0.564
## 250 DomainE =~  Q4 35.990  0.842   0.842    0.842    0.842
## 288      Q4 ~~ Q12 33.767  0.436   0.436    1.525    1.525
## 233 DomainD =~  Q4 31.237 -0.819  -0.819   -0.819   -0.819
## 324      Q6 ~~ Q13 27.431 -0.445  -0.445   -1.227   -1.227
## 382     Q11 ~~ Q13 25.636 -0.361  -0.361   -0.869   -0.869
## 470     Q25 ~~ Q27 20.085 -0.435  -0.435   -1.053   -1.053
## 199 DomainB =~  Q4 19.089  0.530   0.530    0.530    0.530
## 218 DomainC =~  Q6 18.703 -0.329  -0.329   -0.329   -0.329
## 471     Q26 ~~ Q27 16.120  0.412   0.412    0.762    0.762
## 235 DomainD =~  Q6 15.108  0.762   0.762    0.762    0.762
## 252 DomainE =~  Q6 15.020 -0.661  -0.661   -0.661   -0.661
## 267 DomainF =~  Q6 14.557 -0.346  -0.346   -0.346   -0.346
## 271 DomainF =~ Q11 13.952  0.549   0.549    0.549    0.549
## 217 DomainC =~  Q5 13.407 -0.250  -0.250   -0.250   -0.250
## 394     Q12 ~~ Q13 11.801  0.319   0.319    0.930    0.930
## 468     Q24 ~~ Q27 11.231  0.367   0.367    0.521    0.521
## 404     Q12 ~~ Q26 11.051 -0.237  -0.237   -0.632   -0.632
## 287      Q4 ~~ Q11 10.495  0.270   0.270    0.779    0.779
## 266 DomainF =~  Q5 10.480 -0.275  -0.275   -0.275   -0.275
## 400     Q12 ~~ Q22 10.286 -0.256  -0.256   -0.881   -0.881
## 272 DomainF =~ Q12 10.228 -0.500  -0.500   -0.500   -0.500

Q4 showed a pronounced ceiling effect, with 81.5% of respondents selecting the highest response category and very sparse responses in some lower categories, particularly category 2 (0.5%). This restricted variability may contribute to unstable polychoric correlations and the large modification indices observed for Q4.

I will remove Q4 in model 6

3.7 Model 6

model6 <- '
 
  DomainA =~ Q5 + Q6 
  DomainB =~ Q8 + Q9 + Q10
  DomainC =~ Q11 + Q12 + Q13
  DomainD =~ Q15 + Q16 + Q17 
  DomainE =~ Q19  + Q21 + Q22 + Q23 + Q24
  DomainF =~ Q25  + Q26 + Q27 

'

fit6 <- cfa(
  model6,
  data      = manag,
  ordered   = items,
  estimator = "WLSMV",
  std.lv    = TRUE,
  missing   = "pairwise"
  
)

summary(
  fit6,
  fit.measures = TRUE,
  standardized = TRUE
)
## lavaan 0.6-19 ended normally after 29 iterations
## 
##   Estimator                                       DWLS
##   Optimization method                           NLMINB
##   Number of model parameters                       104
## 
##   Number of observations                           184
##   Number of missing patterns                        27
## 
## Model Test User Model:
##                                               Standard      Scaled
##   Test Statistic                               192.961     236.442
##   Degrees of freedom                               137         137
##   P-value (Chi-square)                           0.001       0.000
##   Scaling correction factor                                  1.132
##   Shift parameter                                           65.926
##     simple second-order correction                                
## 
## Model Test Baseline Model:
## 
##   Test statistic                              7634.590    2478.616
##   Degrees of freedom                               171         171
##   P-value                                        0.000       0.000
##   Scaling correction factor                                  3.234
## 
## User Model versus Baseline Model:
## 
##   Comparative Fit Index (CFI)                    0.993       0.957
##   Tucker-Lewis Index (TLI)                       0.991       0.946
##                                                                   
##   Robust Comparative Fit Index (CFI)                            NA
##   Robust Tucker-Lewis Index (TLI)                               NA
## 
## Root Mean Square Error of Approximation:
## 
##   RMSEA                                          0.047       0.063
##   90 Percent confidence interval - lower         0.030       0.049
##   90 Percent confidence interval - upper         0.062       0.076
##   P-value H_0: RMSEA <= 0.050                    0.603       0.060
##   P-value H_0: RMSEA >= 0.080                    0.000       0.017
##                                                                   
##   Robust RMSEA                                                  NA
##   90 Percent confidence interval - lower                        NA
##   90 Percent confidence interval - upper                        NA
##   P-value H_0: Robust RMSEA <= 0.050                            NA
##   P-value H_0: Robust RMSEA >= 0.080                            NA
## 
## Standardized Root Mean Square Residual:
## 
##   SRMR                                           0.110       0.110
## 
## 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
##   DomainA =~                                                            
##     Q5                0.839    0.048   17.319    0.000    0.839    0.839
##     Q6                0.842    0.062   13.599    0.000    0.842    0.842
##   DomainB =~                                                            
##     Q8                0.955    0.036   26.873    0.000    0.955    0.955
##     Q9                0.868    0.052   16.591    0.000    0.868    0.868
##     Q10               0.901    0.038   23.587    0.000    0.901    0.901
##   DomainC =~                                                            
##     Q11               0.763    0.047   16.376    0.000    0.763    0.763
##     Q12               0.850    0.043   19.909    0.000    0.850    0.850
##     Q13               0.764    0.053   14.545    0.000    0.764    0.764
##   DomainD =~                                                            
##     Q15               0.941    0.026   35.791    0.000    0.941    0.941
##     Q16               0.981    0.019   51.048    0.000    0.981    0.981
##     Q17               0.939    0.027   35.264    0.000    0.939    0.939
##   DomainE =~                                                            
##     Q19               0.918    0.083   11.037    0.000    0.918    0.918
##     Q21               0.704    0.078    9.005    0.000    0.704    0.704
##     Q22               0.851    0.041   20.717    0.000    0.851    0.851
##     Q23               0.767    0.073   10.525    0.000    0.767    0.767
##     Q24               0.413    0.152    2.718    0.007    0.413    0.413
##   DomainF =~                                                            
##     Q25               0.835    0.042   19.981    0.000    0.835    0.835
##     Q26               0.711    0.066   10.842    0.000    0.711    0.711
##     Q27               0.647    0.042   15.430    0.000    0.647    0.647
## 
## Covariances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   DomainA ~~                                                            
##     DomainB           0.723    0.085    8.476    0.000    0.723    0.723
##     DomainC           0.560    0.072    7.729    0.000    0.560    0.560
##     DomainD           0.661    0.088    7.495    0.000    0.661    0.661
##     DomainE           0.821    0.075   11.016    0.000    0.821    0.821
##     DomainF           0.484    0.088    5.518    0.000    0.484    0.484
##   DomainB ~~                                                            
##     DomainC           0.420    0.056    7.529    0.000    0.420    0.420
##     DomainD           0.398    0.103    3.865    0.000    0.398    0.398
##     DomainE           0.788    0.085    9.263    0.000    0.788    0.788
##     DomainF           0.629    0.094    6.701    0.000    0.629    0.629
##   DomainC ~~                                                            
##     DomainD           0.160    0.089    1.801    0.072    0.160    0.160
##     DomainE           0.548    0.075    7.352    0.000    0.548    0.548
##     DomainF           0.905    0.056   16.086    0.000    0.905    0.905
##   DomainD ~~                                                            
##     DomainE           0.526    0.075    6.995    0.000    0.526    0.526
##     DomainF           0.506    0.085    5.939    0.000    0.506    0.506
##   DomainE ~~                                                            
##     DomainF           0.752    0.057   13.108    0.000    0.752    0.752
## 
## Thresholds:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##     Q5|t1            -1.099    0.116   -9.463    0.000   -1.099   -1.099
##     Q5|t2            -1.027    0.113   -9.106    0.000   -1.027   -1.027
##     Q5|t3            -0.137    0.093   -1.470    0.142   -0.137   -0.137
##     Q5|t4             0.262    0.094    2.791    0.005    0.262    0.262
##     Q6|t1            -1.407    0.172   -8.166    0.000   -1.407   -1.407
##     Q6|t2            -1.297    0.162   -7.981    0.000   -1.297   -1.297
##     Q6|t3            -1.073    0.147   -7.319    0.000   -1.073   -1.073
##     Q6|t4            -0.398    0.122   -3.274    0.001   -0.398   -0.398
##     Q8|t1            -2.137    0.230   -9.285    0.000   -2.137   -2.137
##     Q8|t2            -1.924    0.192  -10.032    0.000   -1.924   -1.924
##     Q8|t3            -1.712    0.164  -10.468    0.000   -1.712   -1.712
##     Q8|t4            -1.099    0.116   -9.463    0.000   -1.099   -1.099
##     Q9|t1            -1.892    0.194   -9.755    0.000   -1.892   -1.892
##     Q9|t2            -1.677    0.166  -10.127    0.000   -1.677   -1.677
##     Q9|t3            -1.079    0.119   -9.030    0.000   -1.079   -1.079
##     Q10|t1           -2.110    0.232   -9.083    0.000   -2.110   -2.110
##     Q10|t2           -1.991    0.210   -9.502    0.000   -1.991   -1.991
##     Q10|t3           -1.895    0.194   -9.777    0.000   -1.895   -1.895
##     Q10|t4           -1.194    0.125   -9.529    0.000   -1.194   -1.194
##     Q11|t1           -2.545    0.349   -7.288    0.000   -2.545   -2.545
##     Q11|t2           -1.510    0.144  -10.503    0.000   -1.510   -1.510
##     Q11|t3            0.172    0.093    1.842    0.065    0.172    0.172
##     Q12|t1           -2.545    0.349   -7.288    0.000   -2.545   -2.545
##     Q12|t2           -2.293    0.268   -8.568    0.000   -2.293   -2.293
##     Q12|t3           -0.476    0.097   -4.919    0.000   -0.476   -0.476
##     Q12|t4           -0.214    0.094   -2.284    0.022   -0.214   -0.214
##     Q13|t1           -1.841    0.180  -10.215    0.000   -1.841   -1.841
##     Q13|t2           -1.260    0.125  -10.051    0.000   -1.260   -1.260
##     Q13|t3           -0.328    0.095   -3.459    0.001   -0.328   -0.328
##     Q15|t1           -1.604    0.152  -10.548    0.000   -1.604   -1.604
##     Q15|t2           -1.557    0.148  -10.550    0.000   -1.557   -1.557
##     Q15|t3           -1.395    0.134  -10.399    0.000   -1.395   -1.395
##     Q15|t4           -0.897    0.108   -8.342    0.000   -0.897   -0.897
##     Q16|t1           -1.557    0.148  -10.550    0.000   -1.557   -1.557
##     Q16|t2           -1.512    0.144  -10.534    0.000   -1.512   -1.512
##     Q16|t3           -1.360    0.132  -10.333    0.000   -1.360   -1.360
##     Q16|t4           -0.960    0.110   -8.731    0.000   -0.960   -0.960
##     Q17|t1           -1.655    0.157  -10.522    0.000   -1.655   -1.655
##     Q17|t2           -1.512    0.144  -10.534    0.000   -1.512   -1.512
##     Q17|t3           -1.074    0.115   -9.346    0.000   -1.074   -1.074
##     Q19|t1           -2.137    0.230   -9.285    0.000   -2.137   -2.137
##     Q19|t2           -1.844    0.180  -10.237    0.000   -1.844   -1.844
##     Q19|t3           -1.712    0.164  -10.468    0.000   -1.712   -1.712
##     Q19|t4           -1.471    0.140  -10.501    0.000   -1.471   -1.471
##     Q21|t1           -1.986    0.210   -9.462    0.000   -1.986   -1.986
##     Q21|t2           -1.674    0.166  -10.100    0.000   -1.674   -1.674
##     Q21|t3           -1.617    0.160  -10.135    0.000   -1.617   -1.617
##     Q21|t4           -1.049    0.118   -8.863    0.000   -1.049   -1.049
##     Q22|t1           -2.249    0.272   -8.281    0.000   -2.249   -2.249
##     Q22|t2           -1.968    0.211   -9.319    0.000   -1.968   -1.968
##     Q22|t3           -1.367    0.140   -9.738    0.000   -1.367   -1.367
##     Q22|t4           -1.048    0.121   -8.675    0.000   -1.048   -1.048
##     Q23|t1           -2.227    0.274   -8.141    0.000   -2.227   -2.227
##     Q23|t2           -1.846    0.197   -9.362    0.000   -1.846   -1.846
##     Q23|t3           -1.691    0.176   -9.598    0.000   -1.691   -1.691
##     Q23|t4           -1.568    0.162   -9.653    0.000   -1.568   -1.568
##     Q24|t1           -0.502    0.258   -1.946    0.052   -0.502   -0.502
##     Q24|t2           -0.194    0.248   -0.782    0.434   -0.194   -0.194
##     Q25|t1           -2.295    0.267   -8.581    0.000   -2.295   -2.295
##     Q25|t2           -2.137    0.230   -9.285    0.000   -2.137   -2.137
##     Q25|t3           -1.471    0.140  -10.501    0.000   -1.471   -1.471
##     Q25|t4           -0.897    0.108   -8.342    0.000   -0.897   -0.897
##     Q26|t1           -1.887    0.194   -9.711    0.000   -1.887   -1.887
##     Q26|t2           -1.805    0.183   -9.889    0.000   -1.805   -1.805
##     Q26|t3           -1.183    0.126   -9.408    0.000   -1.183   -1.183
##     Q26|t4           -0.736    0.107   -6.893    0.000   -0.736   -0.736
##     Q27|t1           -2.545    0.349   -7.288    0.000   -2.545   -2.545
##     Q27|t2           -2.293    0.268   -8.568    0.000   -2.293   -2.293
##     Q27|t3           -0.894    0.108   -8.295    0.000   -0.894   -0.894
##     Q27|t4           -0.636    0.100   -6.358    0.000   -0.636   -0.636
## 
## Variances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .Q5                0.297                               0.297    0.297
##    .Q6                0.292                               0.292    0.292
##    .Q8                0.087                               0.087    0.087
##    .Q9                0.247                               0.247    0.247
##    .Q10               0.189                               0.189    0.189
##    .Q11               0.418                               0.418    0.418
##    .Q12               0.277                               0.277    0.277
##    .Q13               0.417                               0.417    0.417
##    .Q15               0.115                               0.115    0.115
##    .Q16               0.038                               0.038    0.038
##    .Q17               0.118                               0.118    0.118
##    .Q19               0.156                               0.156    0.156
##    .Q21               0.505                               0.505    0.505
##    .Q22               0.275                               0.275    0.275
##    .Q23               0.412                               0.412    0.412
##    .Q24               0.830                               0.830    0.830
##    .Q25               0.302                               0.302    0.302
##    .Q26               0.495                               0.495    0.495
##    .Q27               0.582                               0.582    0.582
##     DomainA           1.000                               1.000    1.000
##     DomainB           1.000                               1.000    1.000
##     DomainC           1.000                               1.000    1.000
##     DomainD           1.000                               1.000    1.000
##     DomainE           1.000                               1.000    1.000
##     DomainF           1.000                               1.000    1.000

Following the removal of Q4, model fit improved substantially. The scaled CFI increased to 0.957 and the scaled TLI to 0.946, while the scaled RMSEA decreased to 0.063 (90% CI: 0.049–0.076). The SRMR also improved to 0.110, although it remained above the commonly recommended threshold, suggesting some remaining local misfit.

The removal of Q4 was supported by its highly skewed response distribution, with 81.5% of respondents selecting the highest category, as well as large modification indices indicating substantial relationships with multiple domains. Following its removal, the remaining two indicators of Domain A, Q5 and Q6, showed strong standardized loadings of 0.839 and 0.842, respectively.

The remaining items generally demonstrated satisfactory to very strong loadings, with the exception of Q24, which remained comparatively weak at 0.413.

A high latent correlation between Domain C and Domain F persisted (r = 0.905), indicating limited discriminant validity between these two theoretically distinct domains.

Interpretation of model 6

Confirmatory factor analysis using WLSMV estimation supported a six-factor structure with generally acceptable model fit. The scaled comparative fit index (CFI) was 0.957, the Tucker–Lewis index (TLI) was 0.946, and the scaled root mean square error of approximation (RMSEA) was 0.063 (90% CI: 0.049–0.076). The standardized root mean square residual (SRMR) was 0.110, indicating some remaining local model misfit. Standardized factor loadings were generally strong, ranging from 0.647 to 0.981 for most indicators. Q24 was the principal exception, with a comparatively weak standardized loading of 0.413. All residual variances were positive and no standardized loading exceeded 1, indicating an admissible solution without Heywood cases. Correlations among the latent factors ranged from 0.160 to 0.905. The particularly high correlation between Domains C and F (r = 0.905) suggested limited discriminant validity between these dimensions. Nevertheless, because an alternative model combining these domains produced poorer model fit and the constructs are theoretically distinct, retaining them as separate domains was considered preferable. Overall, the revised six-factor model demonstrated satisfactory factorial validity, while the elevated SRMR, weak performance of Q24, the two-item composition of Domain A, and the high correlation between Domains C and F should be acknowledged as remaining psychometric limitations.

3.8 Figure 1. CFA of the final 6- domains model

lavaanPlot(
  model = fit6,
  coefs = TRUE,
  stand = TRUE,
  covs = TRUE,
  stars = c("latent", "covs"),
  digits = 2,
  graph_options = list(
    rankdir = "LR",
    overlap = "false"
  ),
  node_options = list(
    shape = "box",
    fontname = "Helvetica"
  ),
  edge_options = list(
    color = "black",
    fontname = "Helvetica"
  )
)

4 Reliability analysis

We expect to see that cronbach’s alpha and omega measures for every domain to be at least 0.7 and the average variance extracted (AVE) for every domain to be more than 0.5

compRelSEM(fit6)
## DomainA DomainB DomainC DomainD DomainE DomainF 
##   0.741   0.860   0.789   0.922   0.731   0.699
reliability(fit6)
##             DomainA   DomainB   DomainC   DomainD   DomainE   DomainF
## alpha            NA        NA        NA 0.9075025        NA        NA
## alpha.ord 0.8275202 0.9305316 0.8099855 0.9660125 0.8327077 0.7012064
## omega     0.7413312 0.8510297 0.7465223 0.9187148 0.6982229 0.6347317
## omega2    0.7413312 0.8510297 0.7465223 0.9187148 0.6982229 0.6347317
## omega3    0.7413312 0.8595379 0.7885224 0.9220089 0.7309306 0.6992183
## avevar    0.7057914 0.8256329 0.6292729 0.9095602 0.5643116 0.5405085

Internal consistency was generally satisfactory across the six domains. Ordinal Cronbach’s alpha coefficients ranged from 0.701 to 0.966, indicating acceptable to excellent internal consistency. Composite reliability estimates were similarly satisfactory, with omega-based coefficients ranging approximately from 0.699 to 0.922 when accounting for the measurement model. Domain D demonstrated the highest reliability, whereas Domain F showed the weakest reliability and was close to the conventional threshold for acceptability. Average variance extracted (AVE) ranged from 0.541 to 0.910 and exceeded 0.50 for all domains, providing evidence of adequate convergent validity. Overall, the results support satisfactory reliability and convergent validity of the six-domain structure, although Domain F warrants some caution because of its comparatively lower reliability.

5 Split-half reliability

For each domain, the items were divided into two halves, and the correlation between the two halves was assessed. A high correlation between the two sets of items indicates that they measure the construct consistently and therefore provides evidence of the questionnaire’s internal consistency reliability.

library(psych)

# Domain A
R_A <- psych::polychoric(manag[, c("Q5", "Q6")])$rho
splitHalf(R_A, raw = FALSE, brute = TRUE)
## Split half reliabilities  
## Call: splitHalf(r = R_A, raw = FALSE, brute = TRUE)
## 
## Maximum split half reliability (lambda 4) =  0.83
## Guttman lambda 6                          =  0.71
## Average split half reliability            =  0.83
## Guttman lambda 3 (alpha)                  =  0.83
## Guttman lambda 2                          =  0.83
## Minimum split half reliability  (beta)    =  0.83
## Average interitem r =  0.71  with median =  0.71
# Domain B
R_B <- psych::polychoric(manag[, c("Q8", "Q9", "Q10")])$rho
splitHalf(R_B, raw = FALSE, brute = TRUE)
## Split half reliabilities  
## Call: splitHalf(r = R_B, raw = FALSE, brute = TRUE)
## 
## Maximum split half reliability (lambda 4) =  0.84
## Guttman lambda 6                          =  0.9
## Average split half reliability            =  0.83
## Guttman lambda 3 (alpha)                  =  0.93
## Guttman lambda 2                          =  0.93
## Minimum split half reliability  (beta)    =  0.81
## Average interitem r =  0.82  with median =  0.81
# Domain C
R_C <- psych::polychoric(manag[, c("Q11", "Q12", "Q13")])$rho
splitHalf(R_C, raw = FALSE, brute = TRUE)
## Split half reliabilities  
## Call: splitHalf(r = R_C, raw = FALSE, brute = TRUE)
## 
## Maximum split half reliability (lambda 4) =  0.8
## Guttman lambda 6                          =  0.77
## Average split half reliability            =  0.72
## Guttman lambda 3 (alpha)                  =  0.81
## Guttman lambda 2                          =  0.81
## Minimum split half reliability  (beta)    =  0.63
## Average interitem r =  0.59  with median =  0.58
# Domain D
R_D <- psych::polychoric(manag[, c("Q15", "Q16", "Q17")])$rho
splitHalf(R_D, raw = FALSE, brute = TRUE)
## Split half reliabilities  
## Call: splitHalf(r = R_D, raw = FALSE, brute = TRUE)
## 
## Maximum split half reliability (lambda 4) =  0.88
## Guttman lambda 6                          =  0.96
## Average split half reliability            =  0.86
## Guttman lambda 3 (alpha)                  =  0.97
## Guttman lambda 2                          =  0.97
## Minimum split half reliability  (beta)    =  0.85
## Average interitem r =  0.9  with median =  0.92
# Domain E
R_E <- psych::polychoric(
  manag[, c("Q19", "Q21", "Q22", "Q23", "Q24")]
)$rho
splitHalf(R_E, raw = FALSE, brute = TRUE)
## Split half reliabilities  
## Call: splitHalf(r = R_E, raw = FALSE, brute = TRUE)
## 
## Maximum split half reliability (lambda 4) =  0.92
## Guttman lambda 6                          =  0.86
## Average split half reliability            =  0.8
## Guttman lambda 3 (alpha)                  =  0.83
## Guttman lambda 2                          =  0.85
## Minimum split half reliability  (beta)    =  0.65
## Average interitem r =  0.5  with median =  0.58
# Domain F
R_F <- psych::polychoric(manag[, c("Q25", "Q26", "Q27")])$rho
splitHalf(R_F, raw = FALSE, brute = TRUE)
## Split half reliabilities  
## Call: splitHalf(r = R_F, raw = FALSE, brute = TRUE)
## 
## Maximum split half reliability (lambda 4) =  0.83
## Guttman lambda 6                          =  0.73
## Average split half reliability            =  0.62
## Guttman lambda 3 (alpha)                  =  0.7
## Guttman lambda 2                          =  0.73
## Minimum split half reliability  (beta)    =  0.44
## Average interitem r =  0.44  with median =  0.48

Split-half reliability provided additional evidence of internal consistency across the domains. Average split-half coefficients were 0.83 for Domain A, 0.83 for Domain B, 0.72 for Domain C, 0.86 for Domain D, and 0.80 for Domain E.

Reliability was highly stable across alternative splits for Domains B and D, whereas greater variability was observed for Domains C and E. Domain D showed exceptionally high inter-item correlations (average r = 0.90), suggesting substantial homogeneity and possible item redundancy. Overall, the split-half results were consistent with the ordinal alpha and composite reliability findings and supported satisfactory internal consistency of the retained domains.

6 Convegent validity

Convergent validity means that all the items (questions) included in one domain are highly correlated with each other

Average Variance Extracted (AVE) metric tells how much of the variance in the items of a domain is explained by the latent construct, on average. An AVE around 0.50 or higher is commonly taken as evidence that the construct explains at least half of the variance in its indicators (questions).

AVE(fit6,return.df = T)
## DomainA DomainB DomainC DomainD DomainE DomainF 
##   0.706   0.826   0.629   0.910   0.564   0.541

The AVE for every domain exceeded 0.5 and this demonstrate evidence of adequate convergent validity

7 Discriminant validity

Convergent validity means that we have evidence that every domain is distinct from the other domains because we suppose that every domain measures a different construct, so we expect to see low reliability between the domains.

discriminantValidity(fit6)
##        lhs op     rhs       est    ci.lower  ci.upper  Df AIC BIC    Chisq
## 1  DomainA ~~ DomainB 0.7229679  0.55579574 0.8901401 138  NA  NA 198.8454
## 2  DomainA ~~ DomainC 0.5597477  0.41779651 0.7016989 138  NA  NA 216.8033
## 3  DomainA ~~ DomainD 0.6613662  0.48842675 0.8343056 138  NA  NA 205.3352
## 4  DomainA ~~ DomainE 0.8208498  0.67479946 0.9669002 138  NA  NA 194.1217
## 5  DomainA ~~ DomainF 0.4836148  0.31183886 0.6553907 138  NA  NA 214.6615
## 6  DomainB ~~ DomainC 0.4196631  0.31041613 0.5289102 138  NA  NA 285.6658
## 7  DomainB ~~ DomainD 0.3977083  0.19604035 0.5993763 138  NA  NA 290.0279
## 8  DomainB ~~ DomainE 0.7878262  0.62113280 0.9545197 138  NA  NA 197.3800
## 9  DomainB ~~ DomainF 0.6293857  0.44529049 0.8134810 138  NA  NA 209.7944
## 10 DomainC ~~ DomainD 0.1600292 -0.01413494 0.3341933 138  NA  NA 449.0970
## 11 DomainC ~~ DomainE 0.5479917  0.40189694 0.6940864 138  NA  NA 237.5345
## 12 DomainC ~~ DomainF 0.9051793  0.79488681 1.0154718 138  NA  NA 192.9607
## 13 DomainD ~~ DomainE 0.5261440  0.37872682 0.6735612 138  NA  NA 258.3560
## 14 DomainD ~~ DomainF 0.5060387  0.33902785 0.6730496 138  NA  NA 232.2185
## 15 DomainE ~~ DomainF 0.7519407  0.63950400 0.8643774 138  NA  NA 198.1075
##       Chisq diff Df diff   Pr(>Chisq)
## 1   4.291483e+00       1 3.830375e-02
## 2   1.939298e+01       1 1.063973e-05
## 3   7.158750e+00       1 7.459917e-03
## 4   1.104717e+00       1 2.932332e-01
## 5   2.138103e+01       1 3.764778e-06
## 6   6.564601e+01       1 5.396403e-16
## 7   2.372893e+01       1 1.109030e-06
## 8   1.926025e+00       1 1.651940e-01
## 9   8.470037e+00       1 3.610441e-03
## 10  7.584588e+01       1 3.066922e-18
## 11  2.205480e+01       1 2.649757e-06
## 12 -9.631277e-10       1 1.000000e+00
## 13  2.269532e+01       1 1.898294e-06
## 14  2.289906e+01       1 1.707356e-06
## 15  6.826933e+00       1 8.979330e-03
HTMT <- htmt(
  model6,
  data     = manag,
  ordered  = items,
  missing  = "pairwise",
  absolute = TRUE,
  htmt2    = TRUE
)

round(HTMT, 3)
##         DomanA DomanB DomanC DomanD DomanE DomanF
## DomainA  1.000                                   
## DomainB  0.721  1.000                            
## DomainC  0.540  0.408  1.000                     
## DomainD  0.606  0.355  0.166  1.000              
## DomainE  0.970  0.776  0.653  0.451  1.000       
## DomainF  0.517  0.752  1.060  0.564  1.094  1.000

Discriminant validity was supported for most pairs of latent constructs based on comparisons of estimated factor correlations with the 0.90 criterion. Twelve of the 15 domain pairs demonstrated correlations significantly below 0.90. However, discriminant validity was not clearly established between Domains A and E (r = 0.821, p = .293) or between Domains B and E (r = 0.788, p = .165). The strongest concern was observed between Domains C and F, which showed a latent correlation of 0.905 and therefore failed to demonstrate discriminant validity. Overall, the findings indicate adequate differentiation among most domains, with substantial overlap particularly between Domains C and F.

8 External validation by using prespecifying external validators

This was conducted using the final measurement model (Model 6) and extending it to a structural equation model (SEM) to test prespecified relationships between the latent self-management domains and independently collected external variables. The purpose of this analysis was to provide evidence of construct validity by examining whether each domain was associated with external variables in theoretically expected directions, rather than to further modify or improve the measurement model.

The external validators were selected based on their conceptual relevance to each domain and their availability and completeness in the dataset. The following relationships were examined:

Domain A – Medicine access/continuity: association with the recency of the last ASM dose.
Domain B – Seizure monitoring: association with seizure frequency.
Domain D – Safety management: association with epilepsy knowledge measured using the EKS-R total score.
Domain E – Healthcare communication/follow-up: association with travel time to the clinic.
Domain F – Social support/peer connection: association with receiving CHW support.
The original six-factor measurement structure was retained, and latent-domain covariances were preserved while each external variable was specified as a predictor of its corresponding latent domain. Models were estimated using WLSMV, consistent with the ordinal nature of the questionnaire items.

Construct-validity hypotheses were evaluated primarily according to the direction and magnitude of the standardized regression coefficients, together with their statistical significance and 95% confidence intervals. A hypothesis was considered supported when the observed relationship was in the prespecified direction and provided sufficient evidence of an association. Non-significant relationships or associations in the opposite direction were considered unsupported.

The SEM analysis therefore provided complementary evidence to the CFA by examining whether the latent self-management constructs behaved as expected in relation to relevant external clinical, access, knowledge, and support variables.

8.1 How the total score for the knowledge domain was calculated?

The EKS-R total knowledge score was calculated by coding each of the 15 knowledge items as 1 for a correct response and 0 for an incorrect or “I don’t know” response. For items 1–7, 10–11, and 13–15, the correct response was “True”, whereas items 8, 9, and 12 were reverse-keyed because the correct response was “False”. These reverse-keyed items concern the misconceptions that the tongue may fall back during a seizure, that limb movements should be restrained, and that epilepsy is contagious. The item scores were then summed across all 15 questions to obtain a total EKS-R knowledge score ranging theoretically from 0 to 15, with higher scores indicating greater epilepsy knowledge.

Know_scored <- Know
Know_scored <- Know_scored %>%
  mutate(across(
    c(1:7, 10:11, 13:15),
    ~ case_when(
      .x == "True"         ~ 1,
      .x == "False"        ~ 0,
      .x == "I don't know" ~ 0,
      TRUE                 ~ NA_real_
    )
  ))

Know_scored <- Know_scored %>%
  mutate(across(
    c(8, 9, 12),
    ~ case_when(
      .x == "False"        ~ 1,
      .x == "True"         ~ 0,
      .x == "I don't know" ~ 0,
      TRUE                 ~ NA_real_
    )
  ))

Know_scored$Knowledge_total <- rowSums(
  Know_scored[, 1:15],
  na.rm = TRUE
)

ext_raw<- data_raw[seq(1, nrow(data_raw), by = 2), ]


manag$EKS <- Know_scored$Knowledge_total
manag$Diff.to.pay.transport<-ext_raw$transport_difficult_6mo
manag$Distance.to.clinic<-ext_raw$distance_to_clinic
manag$Time.to.clinic<-ext_raw$time_to_clinic
manag$unable.clinic.med<-ext_raw$unable_clinic_meds_3mo
manag$Seizure.freq<-ext_raw$seizure_frequency
manag$CHW.support<-ext_raw$chw_support
manag$CHW.visit<-ext_raw$chw_visit_3mo
manag$asm_last_dose<- ext_raw$asm_last_dose


manag <- manag%>%
  mutate(
    Seizure.freq = 6 - Seizure.freq,
    asm_last_dose = 6 - asm_last_dose
  )
manag <- manag %>%
  mutate(
    EKS_z     = as.numeric(scale(EKS)),
    Distance_z = as.numeric(scale(Distance.to.clinic)),
    Time_z     = as.numeric(scale(Time.to.clinic))
  )
 
manag <- manag %>%
  mutate(
    Diff.to.pay.cat    = as.factor(as.integer(Diff.to.pay.transport)),
    CHW_supp_cat = as.factor(as.integer(CHW.support)),
    CHW_visit_cat     = as.factor(as.integer(CHW.visit)),
    unable_clinic_med_cat = as.factor(as.integer(unable.clinic.med))
    )

8.2 External-validation model

model6_EKS <- '

  # Measurement model
  DomainA =~ Q5 + Q6 
  DomainB =~ Q8 + Q9 + Q10
  DomainC =~ Q11 + Q12 + Q13
  DomainD =~ Q15 + Q16 + Q17 
  DomainE =~ Q19 + Q21 + Q22 + Q23 + Q24
  DomainF =~ Q25 + Q26 + Q27 

  
  DomainA ~ asm_last_dose
  DomainB ~ Seizure.freq
  DomainD ~ EKS_z
  DomainE ~ Time_z
  DomainF ~  CHW_supp_cat
  
  # Preserve latent-factor covariance structure
  DomainA ~~ DomainB + DomainC + DomainD + DomainE + DomainF
  DomainB ~~ DomainC + DomainD + DomainE + DomainF
  DomainC ~~ DomainD + DomainE + DomainF
  DomainD ~~ DomainE + DomainF
  '
  
  fit_EKS <- sem(
  model6_EKS,
  data      = manag,
  ordered   = items,
  estimator = "WLSMV",
  std.lv    = TRUE,
  missing   = "pairwise"
)

summary(
  fit_EKS,
  fit.measures = TRUE,
  standardized = TRUE,
  rsquare = TRUE
)
## lavaan 0.6-19 ended normally after 43 iterations
## 
##   Estimator                                       DWLS
##   Optimization method                           NLMINB
##   Number of model parameters                       109
## 
##                                                   Used       Total
##   Number of observations                           181         184
##   Number of missing patterns                        26            
## 
## Model Test User Model:
##                                               Standard      Scaled
##   Test Statistic                               490.625     406.462
##   Degrees of freedom                               227         227
##   P-value (Chi-square)                           0.000       0.000
##   Scaling correction factor                                  1.746
##   Shift parameter                                          125.500
##     simple second-order correction                                
## 
## Model Test Baseline Model:
## 
##   Test statistic                              5460.506    2355.534
##   Degrees of freedom                               171         171
##   P-value                                        0.000       0.000
##   Scaling correction factor                                  2.421
## 
## User Model versus Baseline Model:
## 
##   Comparative Fit Index (CFI)                    0.950       0.918
##   Tucker-Lewis Index (TLI)                       0.962       0.938
##                                                                   
##   Robust Comparative Fit Index (CFI)                            NA
##   Robust Tucker-Lewis Index (TLI)                               NA
## 
## Root Mean Square Error of Approximation:
## 
##   RMSEA                                          0.080       0.066
##   90 Percent confidence interval - lower         0.071       0.056
##   90 Percent confidence interval - upper         0.090       0.077
##   P-value H_0: RMSEA <= 0.050                    0.000       0.006
##   P-value H_0: RMSEA >= 0.080                    0.531       0.014
##                                                                   
##   Robust RMSEA                                                  NA
##   90 Percent confidence interval - lower                        NA
##   90 Percent confidence interval - upper                        NA
##   P-value H_0: Robust RMSEA <= 0.050                            NA
##   P-value H_0: Robust RMSEA >= 0.080                            NA
## 
## Standardized Root Mean Square Residual:
## 
##   SRMR                                           0.134       0.134
## 
## 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
##   DomainA =~                                                            
##     Q5                0.805    0.053   15.266    0.000    0.919    0.840
##     Q6                0.846    0.054   15.689    0.000    0.966    0.875
##   DomainB =~                                                            
##     Q8                0.907    0.057   15.808    0.000    0.909    0.907
##     Q9                0.865    0.056   15.356    0.000    0.867    0.865
##     Q10               0.924    0.057   16.267    0.000    0.927    0.925
##   DomainC =~                                                            
##     Q11               0.771    0.050   15.510    0.000    0.771    0.771
##     Q12               0.819    0.044   18.424    0.000    0.819    0.819
##     Q13               0.820    0.045   18.270    0.000    0.820    0.820
##   DomainD =~                                                            
##     Q15               0.915    0.034   26.657    0.000    0.947    0.920
##     Q16               0.963    0.022   44.099    0.000    0.997    0.965
##     Q17               0.946    0.041   23.088    0.000    0.978    0.949
##   DomainE =~                                                            
##     Q19               0.751    0.104    7.225    0.000    0.767    0.758
##     Q21               0.629    0.069    9.136    0.000    0.643    0.637
##     Q22               0.819    0.052   15.719    0.000    0.837    0.825
##     Q23               0.628    0.088    7.114    0.000    0.641    0.636
##     Q24               0.646    0.127    5.102    0.000    0.660    0.654
##   DomainF =~                                                            
##     Q25               0.756    0.049   15.529    0.000    2.189    0.958
##     Q26               0.708    0.058   12.273    0.000    2.050    0.946
##     Q27               0.492    0.041   12.084    0.000    1.423    0.853
## 
## Regressions:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   DomainA ~                                                             
##     asm_last_dose     0.708    0.215    3.288    0.001    0.620    0.483
##   DomainB ~                                                             
##     Seizure.freq     -0.064    0.130   -0.489    0.625   -0.064   -0.069
##   DomainD ~                                                             
##     EKS_z             0.264    0.139    1.901    0.057    0.256    0.257
##   DomainE ~                                                             
##     Time_z           -0.210    0.171   -1.230    0.219   -0.206   -0.203
##   DomainF ~                                                             
##     CHW_supp_cat      7.284    0.743    9.803    0.000    2.517    0.938
## 
## Covariances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##  .DomainA ~~                                                            
##    .DomainB           0.740    0.085    8.706    0.000    0.740    0.740
##     DomainC           0.673    0.059   11.335    0.000    0.673    0.673
##    .DomainD           0.608    0.093    6.545    0.000    0.608    0.608
##    .DomainE           0.793    0.085    9.354    0.000    0.793    0.793
##    .DomainF           0.760    0.094    8.064    0.000    0.760    0.760
##  .DomainB ~~                                                            
##     DomainC           0.330    0.056    5.911    0.000    0.330    0.330
##    .DomainD           0.400    0.098    4.071    0.000    0.400    0.400
##    .DomainE           0.737    0.085    8.686    0.000    0.737    0.737
##    .DomainF           0.660    0.100    6.615    0.000    0.660    0.660
##   DomainC ~~                                                            
##    .DomainD           0.295    0.083    3.546    0.000    0.295    0.295
##    .DomainE           0.623    0.073    8.587    0.000    0.623    0.623
##    .DomainF           0.979    0.058   16.958    0.000    0.979    0.979
##  .DomainD ~~                                                            
##    .DomainE           0.548    0.091    6.018    0.000    0.548    0.548
##    .DomainF           0.556    0.095    5.874    0.000    0.556    0.556
##  .DomainE ~~                                                            
##    .DomainF           0.834    0.081   10.277    0.000    0.834    0.834
## 
## Thresholds:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##     Q5|t1             0.920    0.850    1.083    0.279    0.920    0.841
##     Q5|t2             0.976    0.847    1.152    0.249    0.976    0.892
##     Q5|t3             1.974    0.883    2.236    0.025    1.974    1.804
##     Q5|t4             2.399    0.886    2.707    0.007    2.399    2.192
##     Q6|t1            -0.807    1.562   -0.517    0.605   -0.807   -0.732
##     Q6|t2            -0.664    1.568   -0.424    0.672   -0.664   -0.602
##     Q6|t3            -0.365    1.554   -0.235    0.814   -0.365   -0.331
##     Q6|t4             0.487    1.567    0.311    0.756    0.487    0.441
##     Q8|t1            -0.437    0.778   -0.561    0.575   -0.437   -0.436
##     Q8|t2            -0.172    0.734   -0.235    0.814   -0.172   -0.172
##     Q8|t3             0.092    0.817    0.113    0.910    0.092    0.092
##     Q8|t4             0.775    0.874    0.887    0.375    0.775    0.774
##     Q9|t1            -1.050    0.945   -1.112    0.266   -1.050   -1.048
##     Q9|t2            -0.816    0.918   -0.889    0.374   -0.816   -0.814
##     Q9|t3            -0.220    0.826   -0.266    0.790   -0.220   -0.219
##     Q10|t1           -0.781    1.009   -0.774    0.439   -0.781   -0.780
##     Q10|t2           -0.639    1.072   -0.596    0.551   -0.639   -0.638
##     Q10|t3           -0.532    1.037   -0.513    0.608   -0.532   -0.531
##     Q10|t4            0.155    1.009    0.154    0.878    0.155    0.155
##     Q11|t1           -2.524    0.963   -2.622    0.009   -2.524   -2.524
##     Q11|t2           -1.536    0.899   -1.708    0.088   -1.536   -1.536
##     Q11|t3            0.302    0.893    0.339    0.735    0.302    0.302
##     Q12|t1           -1.464    1.069   -1.370    0.171   -1.464   -1.464
##     Q12|t2           -1.250    1.315   -0.951    0.342   -1.250   -1.250
##     Q12|t3            0.598    0.917    0.652    0.514    0.598    0.598
##     Q12|t4            0.896    0.939    0.954    0.340    0.896    0.896
##     Q13|t1           -1.934    0.604   -3.202    0.001   -1.934   -1.934
##     Q13|t2           -1.355    0.536   -2.530    0.011   -1.355   -1.355
##     Q13|t3           -0.364    0.533   -0.683    0.495   -0.364   -0.364
##     Q15|t1            0.689    0.756    0.910    0.363    0.689    0.669
##     Q15|t2            0.739    0.743    0.994    0.320    0.739    0.718
##     Q15|t3            0.927    0.748    1.239    0.215    0.927    0.901
##     Q15|t4            1.471    0.741    1.983    0.047    1.471    1.429
##     Q16|t1            0.774    0.811    0.954    0.340    0.774    0.750
##     Q16|t2            0.827    0.798    1.035    0.301    0.827    0.801
##     Q16|t3            1.008    0.794    1.268    0.205    1.008    0.976
##     Q16|t4            1.461    0.795    1.838    0.066    1.461    1.415
##     Q17|t1            1.309    5.966    0.219    0.826    1.309    1.270
##     Q17|t2            1.508    5.971    0.253    0.801    1.508    1.462
##     Q17|t3            2.053    6.012    0.341    0.733    2.053    1.991
##     Q19|t1            0.239    0.932    0.256    0.798    0.239    0.236
##     Q19|t2            0.801    0.924    0.867    0.386    0.801    0.791
##     Q19|t3            1.028    1.143    0.899    0.369    1.028    1.015
##     Q19|t4            1.381    1.084    1.274    0.203    1.381    1.365
##     Q21|t1           -0.790    1.644   -0.481    0.631   -0.790   -0.784
##     Q21|t2           -0.539    1.482   -0.364    0.716   -0.539   -0.534
##     Q21|t3           -0.475    1.486   -0.320    0.749   -0.475   -0.471
##     Q21|t4            0.170    1.463    0.116    0.908    0.170    0.168
##     Q22|t1           -0.837    1.172   -0.714    0.475   -0.837   -0.825
##     Q22|t2           -0.464    1.033   -0.449    0.654   -0.464   -0.457
##     Q22|t3            0.215    1.085    0.198    0.843    0.215    0.212
##     Q22|t4            0.554    1.112    0.498    0.619    0.554    0.546
##     Q23|t1           -0.691    1.806   -0.382    0.702   -0.691   -0.685
##     Q23|t2           -0.181    1.562   -0.116    0.908   -0.181   -0.180
##     Q23|t3            0.006    1.456    0.004    0.997    0.006    0.006
##     Q23|t4            0.144    1.430    0.101    0.920    0.144    0.143
##     Q24|t1            1.743   12.202    0.143    0.886    1.743    1.727
##     Q24|t2            2.134   12.294    0.174    0.862    2.134    2.115
##     Q25|t1            5.441    0.226   24.089    0.000    5.441    2.382
##     Q25|t2            5.629    0.190   29.621    0.000    5.629    2.464
##     Q25|t3            6.444    0.194   33.223    0.000    6.444    2.821
##     Q25|t4            7.144    0.231   30.880    0.000    7.144    3.127
##     Q26|t1            4.329    0.234   18.519    0.000    4.329    1.997
##     Q26|t2            4.412    0.306   14.428    0.000    4.412    2.035
##     Q26|t3            5.062    0.198   25.596    0.000    5.062    2.335
##     Q26|t4            5.565    0.191   29.111    0.000    5.565    2.566
##     Q27|t1           -0.543    1.148   -0.474    0.636   -0.543   -0.326
##     Q27|t2           -0.320    1.367   -0.234    0.815   -0.320   -0.192
##     Q27|t3            1.100    1.092    1.007    0.314    1.100    0.659
##     Q27|t4            1.372    1.073    1.279    0.201    1.372    0.822
## 
## Variances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .Q5                0.352                               0.352    0.294
##    .Q6                0.285                               0.285    0.234
##    .Q8                0.177                               0.177    0.177
##    .Q9                0.252                               0.252    0.252
##    .Q10               0.146                               0.146    0.145
##    .Q11               0.405                               0.405    0.405
##    .Q12               0.330                               0.330    0.330
##    .Q13               0.328                               0.328    0.328
##    .Q15               0.162                               0.162    0.153
##    .Q16               0.072                               0.072    0.068
##    .Q17               0.106                               0.106    0.100
##    .Q19               0.436                               0.436    0.426
##    .Q21               0.604                               0.604    0.594
##    .Q22               0.328                               0.328    0.319
##    .Q23               0.606                               0.606    0.596
##    .Q24               0.583                               0.583    0.572
##    .Q25               0.428                               0.428    0.082
##    .Q26               0.498                               0.498    0.106
##    .Q27               0.758                               0.758    0.272
##    .DomainA           1.000                               0.766    0.766
##    .DomainB           1.000                               0.995    0.995
##     DomainC           1.000                               1.000    1.000
##    .DomainD           1.000                               0.934    0.934
##    .DomainE           1.000                               0.959    0.959
##    .DomainF           1.000                               0.119    0.119
## 
## R-Square:
##                    Estimate
##     Q5                0.706
##     Q6                0.766
##     Q8                0.823
##     Q9                0.748
##     Q10               0.855
##     Q11               0.595
##     Q12               0.670
##     Q13               0.672
##     Q15               0.847
##     Q16               0.932
##     Q17               0.900
##     Q19               0.574
##     Q21               0.406
##     Q22               0.681
##     Q23               0.404
##     Q24               0.428
##     Q25               0.918
##     Q26               0.894
##     Q27               0.728
##     DomainA           0.234
##     DomainB           0.005
##     DomainD           0.066
##     DomainE           0.041
##     DomainF           0.881

The SEM showed mixed but generally coherent external-validity evidence. More recent ASM intake was moderately and positively associated with medicine supply/access continuity (standardized β = 0.483, p = .001), supporting that hypothesis. Seizure frequency was not associated with seizure monitoring (β = −0.069, p = .625), consistent with its exploratory status. Higher EKS-R knowledge showed a positive association with safety management (β = 0.257), although this narrowly missed conventional statistical significance (p = .057). Longer travel time showed the expected negative association with healthcare communication/follow-up, but this relationship was not statistically significant (β = −0.203, p = .219). CHW support was very strongly associated with social support/peer connection (β = 0.938, p < .001), although the unusually large effect suggests possible conceptual overlap and should therefore be interpreted cautiously.