library(tidyverse)
library(gtsummary)
library(psych)
library(multilevel)
library(performance)
library(sjPlot)
library(patchwork)
library(lavaan)
library(lavaanPlot)
library(semPlot)
library(semTools)
data<- 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 |> 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)]
# 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)
The Self-management questions: 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?
#--------------------------------------------------
# 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 (%) | ||
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, Q1 was removed and Q2 was reassigned to Domain B in Model 2. This modification is therefore based on both statistical evidence and the observed response distributions rather than solely on model-fit indices.
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.
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.
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.
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
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.