library(tidyverse)
library(gtsummary)
library(psych)
library(multilevel)
library(performance)
library(sjPlot)
library(patchwork)
library(lavaan)
library(lavaanPlot)
library(semPlot)
library(semTools)
library(lubridate)
Desc <- read.csv("C:/Users/msaleeb/Downloads/Redcap Projects other than pregmpox/Self-management/Analysis-self management/Descreptive_raw.csv",
na.strings = "", stringsAsFactors = T)
In this section, the unique values of every variable are shown and the number below every value shows how many people picked this value
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
summary(Desc$Age.in.years)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 3 17 23 22 26 71
table(Desc$Gender)
##
## Female Male
## 81 103
table(Desc$Education)
##
## No education Primary Secondary University
## 162 19 2 1
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
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
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
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
table(Desc$Type.of.seizures)
##
## Both Generalized Nodding Unknown
## 7 157 17 3
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 |
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 |
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
table(Desc$Seizure.frequency)
##
## Daily Less than monthly
## 11 41
## Monthly No seizure for over 2 years
## 67 23
## Weekly
## 41
table(Desc$Name.of.the.antiseizure.medication.)
##
## Carbamazepine Phenobarbital Phenytoin Valproate
## 161 13 8 2
table(Desc$Dosage.and.frequency.of.the.anti.seizure.medication)
##
## 100 mg 3 times Once Twice
## 1 2 100 80
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
table(Desc$Year.antiseizure.medicine.stopped..if.not.applicable..leave.it.blank.)
##
## 2022 2024 2025
## 1 1 2
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
table(Desc$Side.effects.of.antiseizure.medicine)
##
## Dizziness Fever No side effects
## 8 1 120
## Sleepiness sleepy or dizziness
## 4 1
table(Desc$Support.from.community.health.worker)
##
## No Yes
## 152 30
table(Desc$Attending.school.normally)
##
## No Yes
## 175 8
table(Desc$Able.to.help.in.the.household.normally)
##
## No Not Applicable (adult) Yes
## 50 1 132
table(Desc$Diagnosed.with.onchocerciasis)
##
## No Yes
## 37 146
table(Desc$Diagnosed.with.nodding.syndrome)
##
## No Yes
## 154 30
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
table(Desc$The.PWE.is.slow.to.understand...respond..)
##
## No Yes
## 68 116
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 |
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
table(Desc$Education.of.the.caregiver.)
##
## No education Primary secondary
## 127 28 25
## University or higher
## 4
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
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
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
table(Desc$In.the.last.6.months..was.it.difficult.to.pay.for.transport)
##
## No Yes
## 88 96
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
table(Desc$In.the.last.3.months..did.a.community.health.worker.visit.you.)
##
## No Yes
## 114 70
table(Desc$How.often.)
##
## Less often than once every 2 months Once every 2 months
## 1 7
## Once per month
## 62
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).
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 |
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
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))
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?
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 (%) | |
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 (%) | |
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)
#--------------------------------------------------
# Variables common to both questionnaires
#--------------------------------------------------
management_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"
)
#--------------------------------------------------
# PWE-only descriptive table
#--------------------------------------------------
tbl_pwe <- PWE %>%
gtsummary::select(all_of(management_items)) %>%
tbl_summary(
digits = list(all_categorical() ~ 1),
missing_text = "Missing"
) %>%
bold_labels() %>%
italicize_levels()
#--------------------------------------------------
# PWE + caregiver descriptive table
#--------------------------------------------------
tbl_manag <- manag %>%
gtsummary::select(all_of(management_items)) %>%
tbl_summary(
digits = list(all_categorical() ~ 1),
missing_text = "Missing"
) %>%
bold_labels() %>%
italicize_levels()
#--------------------------------------------------
# Put tables side by side
#--------------------------------------------------
tbl_combined <- tbl_merge(
tbls = list(tbl_pwe, tbl_manag),
tab_spanner = c(
"**PWE**",
"**PWE + Caregiver**"
)
)
tbl_combined
| Characteristic |
PWE
|
PWE + Caregiver
|
|---|---|---|
| N = 381 | N = 1841 | |
| Q1 | ||
| 1 | 1.0 (2.6%) | 7.0 (3.8%) |
| 4 | 1.0 (2.6%) | 2.0 (1.1%) |
| 5 | 36.0 (94.7%) | 175.0 (95.1%) |
| Q2 | ||
| 1 | 1.0 (2.6%) | 7.0 (3.8%) |
| 4 | 1.0 (2.6%) | 3.0 (1.6%) |
| 5 | 36.0 (94.7%) | 174.0 (94.6%) |
| Q4 | ||
| 1 | 4.0 (10.5%) | 12.0 (6.5%) |
| 3 | 2.0 (5.3%) | 6.0 (3.3%) |
| 4 | 3.0 (7.9%) | 15.0 (8.2%) |
| 5 | 29.0 (76.3%) | 150.0 (81.5%) |
| 2 | 1.0 (0.5%) | |
| Q5 | ||
| 1 | 8.0 (21.1%) | 25.0 (13.6%) |
| 3 | 6.0 (15.8%) | 54.0 (29.3%) |
| 4 | 3.0 (7.9%) | 29.0 (15.8%) |
| 5 | 21.0 (55.3%) | 73.0 (39.7%) |
| 2 | 3.0 (1.6%) | |
| Q6 | ||
| 1 | 2.0 (6.9%) | 9.0 (8.0%) |
| 3 | 2.0 (6.9%) | 5.0 (4.4%) |
| 4 | 6.0 (20.7%) | 23.0 (20.4%) |
| 5 | 19.0 (65.5%) | 74.0 (65.5%) |
| Missing | 9 | 71 |
| 2 | 2.0 (1.8%) | |
| Q7 | ||
| 5 | 38.0 (100.0%) | 178.0 (96.7%) |
| 1 | 4.0 (2.2%) | |
| 2 | 2.0 (1.1%) | |
| Q8 | ||
| 3 | 1.0 (2.6%) | 3.0 (1.6%) |
| 4 | 1.0 (2.6%) | 17.0 (9.2%) |
| 5 | 36.0 (94.7%) | 159.0 (86.4%) |
| 1 | 3.0 (1.6%) | |
| 2 | 2.0 (1.1%) | |
| Q9 | ||
| 4 | 4.0 (12.1%) | 16.0 (9.4%) |
| 5 | 29.0 (87.9%) | 147.0 (86.0%) |
| Missing | 5 | 13 |
| 1 | 5.0 (2.9%) | |
| 3 | 3.0 (1.8%) | |
| Q10 | ||
| 3 | 1.0 (3.0%) | 1.0 (0.6%) |
| 4 | 3.0 (9.1%) | 15.0 (8.7%) |
| 5 | 29.0 (87.9%) | 152.0 (88.4%) |
| Missing | 5 | 12 |
| 1 | 3.0 (1.7%) | |
| 2 | 1.0 (0.6%) | |
| Q11 | ||
| 3 | 4.0 (10.5%) | 11.0 (6.0%) |
| 4 | 12.0 (31.6%) | 92.0 (50.3%) |
| 5 | 22.0 (57.9%) | 79.0 (43.2%) |
| 1 | 1.0 (0.5%) | |
| Missing | 1 | |
| Q12 | ||
| 2 | 1.0 (2.6%) | 1.0 (0.5%) |
| 3 | 8.0 (21.1%) | 56.0 (30.6%) |
| 4 | 1.0 (2.6%) | 18.0 (9.8%) |
| 5 | 28.0 (73.7%) | 107.0 (58.5%) |
| 1 | 1.0 (0.5%) | |
| Missing | 1 | |
| Q13 | ||
| 3 | 4.0 (10.5%) | 13.0 (7.1%) |
| 4 | 9.0 (23.7%) | 49.0 (26.8%) |
| 5 | 25.0 (65.8%) | 115.0 (62.8%) |
| 1 | 6.0 (3.3%) | |
| Missing | 1 | |
| Q15 | ||
| 1 | 1.0 (2.6%) | 10.0 (5.4%) |
| 3 | 3.0 (7.9%) | 4.0 (2.2%) |
| 4 | 3.0 (7.9%) | 19.0 (10.3%) |
| 5 | 31.0 (81.6%) | 150.0 (81.5%) |
| 2 | 1.0 (0.5%) | |
| Q16 | ||
| 1 | 2.0 (5.3%) | 11.0 (6.0%) |
| 3 | 1.0 (2.6%) | 4.0 (2.2%) |
| 4 | 4.0 (10.5%) | 15.0 (8.2%) |
| 5 | 31.0 (81.6%) | 153.0 (83.2%) |
| 2 | 1.0 (0.5%) | |
| Q17 | ||
| 1 | 2.0 (5.3%) | 9.0 (4.9%) |
| 3 | 1.0 (2.6%) | 3.0 (1.6%) |
| 4 | 1.0 (2.6%) | 14.0 (7.6%) |
| 5 | 34.0 (89.5%) | 158.0 (85.9%) |
| Q18 | ||
| 1 | 2.0 (5.3%) | 4.0 (2.2%) |
| 4 | 4.0 (10.5%) | 28.0 (15.2%) |
| 5 | 32.0 (84.2%) | 146.0 (79.3%) |
| 2 | 1.0 (0.5%) | |
| 3 | 5.0 (2.7%) | |
| Q19 | ||
| 4 | 2.0 (5.3%) | 5.0 (2.7%) |
| 5 | 36.0 (94.7%) | 171.0 (92.9%) |
| 1 | 3.0 (1.6%) | |
| 2 | 3.0 (1.6%) | |
| 3 | 2.0 (1.1%) | |
| Q21 | ||
| 1 | 1.0 (2.9%) | 4.0 (2.4%) |
| 3 | 1.0 (2.9%) | 1.0 (0.6%) |
| 4 | 3.0 (8.8%) | 16.0 (9.4%) |
| 5 | 29.0 (85.3%) | 145.0 (85.3%) |
| Missing | 4 | 14 |
| 2 | 4.0 (2.4%) | |
| Q22 | ||
| 1 | 1.0 (3.2%) | 2.0 (1.2%) |
| 3 | 2.0 (6.5%) | 10.0 (6.1%) |
| 4 | 2.0 (6.5%) | 10.0 (6.1%) |
| 5 | 26.0 (83.9%) | 139.0 (85.3%) |
| Missing | 7 | 21 |
| 2 | 2.0 (1.2%) | |
| Q23 | ||
| 1 | 1.0 (2.9%) | 2.0 (1.3%) |
| 4 | 1.0 (2.9%) | 2.0 (1.3%) |
| 5 | 33.0 (94.3%) | 145.0 (94.2%) |
| Missing | 3 | 30 |
| 2 | 3.0 (1.9%) | |
| 3 | 2.0 (1.3%) | |
| Q24 | ||
| 1 | 1.0 (25.0%) | 8.0 (30.8%) |
| 5 | 3.0 (75.0%) | 15.0 (57.7%) |
| Missing | 34 | 158 |
| 4 | 3.0 (11.5%) | |
| Q25 | ||
| 3 | 1.0 (2.6%) | 10.0 (5.4%) |
| 4 | 4.0 (10.5%) | 21.0 (11.4%) |
| 5 | 33.0 (86.8%) | 150.0 (81.5%) |
| 1 | 2.0 (1.1%) | |
| 2 | 1.0 (0.5%) | |
| Q26 | ||
| 1 | 1.0 (2.9%) | 5.0 (3.0%) |
| 2 | 1.0 (2.9%) | 1.0 (0.6%) |
| 3 | 2.0 (5.7%) | 14.0 (8.3%) |
| 4 | 4.0 (11.4%) | 19.0 (11.2%) |
| 5 | 27.0 (77.1%) | 130.0 (76.9%) |
| Missing | 3 | 15 |
| Q27 | ||
| 3 | 1.0 (2.7%) | 32.0 (17.5%) |
| 4 | 4.0 (10.8%) | 14.0 (7.7%) |
| 5 | 32.0 (86.5%) | 135.0 (73.8%) |
| Missing | 1 | 1 |
| 1 | 1.0 (0.5%) | |
| 2 | 1.0 (0.5%) | |
| 1 n (%) | ||
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.
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.
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
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
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
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
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
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.
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"
)
)
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.
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.
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
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.
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.
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))
)
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.