# Collapse levels of q06 for not sure and prefer not to answer
simplified_data <- lapply(list_data, function(country_data) {
country_data$q06simplified <- fct_collapse(
country_data$q06,
"Not sure / prefer not to answer" = c("not sure", "prefer not to answer"))
country_data$q06simplified <- fct_recode(
country_data$q06simplified,
"Yes, it matters" = "yes, it matters what my religious leaders believe about the covid-19 vaccine and if they support it",
"No, it doesn't matter" = "no, it does not matter to me what my religious leaders believe about the covid-19 vaccine")
country_data$q06simplified <- fct_relevel(
country_data$q06simplified,
"No, it doesn't matter",
"Not sure / prefer not to answer",
"Yes, it matters")
# Collapse levels of q07
# country_data$q07 <- fct_collapse(
# country_data$q07,
# "No/not sure" = c("not sure", "no"))
country_data$q04simplified <- fct_collapse(
country_data$q04,
"Member of a religious community" = c("religious leader",
"member of religious community"))
# country_data$q05simplified <- fct_collapse(
# country_data$q05,
# "Other religions" = c(
# "sikh",
# "other",
# "jewish",
# "baha'i",
# "hindu",
# "traditional religions",
# "not religious",
# "buddhist"))
# country_data$q05simplified <- fct_relevel(
# country_data$q05simplified,
# c(
# "muslim",
# "christian",
# "Other religions"))
# country_data$q14simplified <- fct_collapse(
# country_data$q14,
# "Somehow important / not sure" = c("somehow important", "not sure")
# )
country_data$q14binary <- fct_collapse(
country_data$q14,
"Very / somehow important" = c("very important", "somehow important"),
"Not at all important / not sure" = c("not sure", "not at all important")
)
country_data$q15simplified <- fct_collapse(
country_data$q15,
"Family/friends/other" = c("family member", "peer/friend", "other"),
)
country_data$q15simplified <- fct_relevel(
country_data$q15simplified,
c("religious leader", "health worker"), after = Inf
)
country_data$q16simplified <- fct_collapse(
country_data$q16,
"No/not sure" = c("no", "not sure")
)
country_data$q17simplified <- fct_collapse(
country_data$q17,
"No/not sure" = c("no", "not sure"),
"Only some leaders" = c("only some religious leaders support vaccination for children")
)
# country_data$q17simplified <- fct_rev(
# country_data$q17simplified
# )
country_data$q18simplified <- fct_collapse(
country_data$q18,
"does not affect/not sure" = c("does not affect decision for child vaccination",
"not sure")
)
return(country_data)
})
# Wrap levels
wrapped_data <- lapply(simplified_data, function(country_data) {
levels(country_data$q04) <- str_wrap(levels(country_data$q04), width = 26)
levels(country_data$q06) <- str_wrap(levels(country_data$q06), width = 20)
return(country_data)
})
#bind rows in wrapped data adding a column for country using each df name
all_data <- bind_rows(wrapped_data) %>%
mutate(country = rep(names(wrapped_data), sapply(wrapped_data, nrow))) |>
mutate(country = factor(country))Factor Analysis
Faith survey
1 Data preparation
1.0.0.1 Simplification of levels
Data subset for analysis
Selecting the variables to be used in the regression analysis, and encoding them as numeric. Country not included.
# Factor Analysis data
fa_data <- tibble(
# Outcome vars
has_covidVax = case_when( # q08
all_data$q08 == "yes" ~ 1,
all_data$q08 == "no" ~ 0,
TRUE ~ NA_integer_
),
continued_regVax = case_when( # q16
all_data$q16simplified == "yes" ~ 1,
all_data$q16simplified == "No/not sure" ~ 0,
TRUE ~ NA_integer_
),
is_rfp = case_when( # contact_type
all_data$contact_type == "Religions For Peace" ~ 1,
all_data$contact_type == "RDD / 3-2-1" ~ 0,
TRUE ~ NA_integer_
),
is_member_or_leader = case_when( # q04
all_data$q04 == "member of religious\ncommunity" ~ 1,
all_data$q04 == "religious leader" ~ 1,
all_data$q04 == "not part of any religious\ncommunity" ~0,
TRUE ~ NA_integer_
),
# Indep vars
age_group = as.integer(all_data$q01), # q01
is_female = case_when( # q02
all_data$q02 == "female" ~ 1,
all_data$q02 == "male" ~ 0,
TRUE ~ NA_integer_ # Dropping gender = "prefer not to answer"
),
is_rural = case_when( # q03
all_data$q03 == "rural" ~ 1,
all_data$q03 == "urban" ~ 0,
TRUE ~ NA_integer_
),
leaders_endorse_covidVax = case_when( # q07
all_data$q07 == "yes" ~ 2,
all_data$q07 == "not sure" ~ 1,
all_data$q07 == "no" ~ 0,
TRUE ~ NA_integer_
),
would_receive_covidVax = case_when( # q09
all_data$q09 == "yes" ~ 2,
all_data$q09 == "not sure" ~ 1,
all_data$q09 == "no" ~ 0,
TRUE ~ NA_integer_
),
top_reason_noVax_religious = case_when( # q10
all_data$q10 %in% c(
"i believe god/allah/adonai/gods and goddesses/higher power will protect me from covid-19",
"goes against my religious belief") ~ 1,
is.na(all_data$q10) ~ NA_integer_,
TRUE ~ 0
),
top_reason_noVax_riskIsLow = case_when( # q10
all_data$q10 %in% c(
"i do not feel at risk of catching covid-19",
"it's not that serious. if i catch covid-19 i can recover without vaccine") ~ 1,
is.na(all_data$q10) ~ NA_integer_,
TRUE ~ 0
),
top_reason_noVax_vaxIsBad = case_when( # q10
all_data$q10 %in% c(
"i am afraid of the potential side effects of the covid-19 vaccine",
"i am not confident that the vaccine will protect me") ~ 1,
is.na(all_data$q10) ~ NA_integer_,
TRUE ~ 0
),
covidVaxInfluencer_religiousLeader = case_when( # q11
all_data$q11 == "religious leader" ~ 1,
is.na(all_data$q11) ~ NA_integer_,
TRUE ~ 0
),
covidVaxInfluencer_healthWorker = case_when( # q11
all_data$q11 == "health worker" ~ 1,
is.na(all_data$q11) ~ NA_integer_,
TRUE ~ 0
),
covidFactorInDecision_religious = case_when( # q12
all_data$q12 %in% c(
"seeing religious leaders lead by example through taking the vaccine publicly",
"public statements by influential persons") ~ 1,
is.na(all_data$q12) ~ NA_integer_,
TRUE ~ 0
),
has_children_under_5 = case_when( # q13
all_data$q13 == "yes" ~ 1,
all_data$q13 == "no" ~ 0,
TRUE ~ NA_integer_
),
regVax_importance = as.integer( # q14
fct_relevel(all_data$q14, "not at all important", "not sure", "somehow important", "very important")
),
regVaxInfluencer_religiousLeader = case_when( # q15
all_data$q15simplified == "religious leader" ~ 1,
is.na(all_data$q15simplified) ~ NA_integer_,
TRUE ~ 0
),
regVaxInfluencer_healthWorker = case_when( # q15
all_data$q15simplified == "health worker" ~ 1,
is.na(all_data$q15simplified) ~ NA_integer_,
TRUE ~ 0
),
leaders_endorse_regVax = as.integer( # q17
all_data$q17
),
religious_belief_encourages_regVax = case_when( # q18
all_data$q18 == "encourages child vaccination" ~ 1,
is.na(all_data$q18) ~ NA_integer_,
TRUE ~ 0
)
)
head(fa_data)# A tibble: 6 × 21
has_covidVax continued_regVax is_rfp is_member_or_leader age_group is_female
<dbl> <dbl> <dbl> <dbl> <int> <dbl>
1 1 NA 0 0 4 1
2 1 1 0 1 3 1
3 1 NA 0 0 4 0
4 1 1 0 1 4 0
5 1 NA 0 1 4 0
6 1 1 0 1 4 0
# ℹ 15 more variables: is_rural <dbl>, leaders_endorse_covidVax <dbl>,
# would_receive_covidVax <dbl>, top_reason_noVax_religious <dbl>,
# top_reason_noVax_riskIsLow <dbl>, top_reason_noVax_vaxIsBad <dbl>,
# covidVaxInfluencer_religiousLeader <dbl>,
# covidVaxInfluencer_healthWorker <dbl>,
# covidFactorInDecision_religious <dbl>, has_children_under_5 <dbl>,
# regVax_importance <int>, regVaxInfluencer_religiousLeader <dbl>, …
1.1 Summarize data
# Use describe() function from the psych package
summary_df <- psych::describe(fa_data)
# Selecting only mean, sd, range, and missing
summary_df[, c("n", "mean", "sd", "min", "max","range")] n mean sd min max range
has_covidVax 19846 0.76 0.43 0 1 1
continued_regVax 9677 0.76 0.43 0 1 1
is_rfp 19847 0.28 0.45 0 1 1
is_member_or_leader 19846 0.64 0.48 0 1 1
age_group 19846 2.32 1.10 1 4 3
is_female 18929 0.41 0.49 0 1 1
is_rural 19846 0.46 0.50 0 1 1
leaders_endorse_covidVax 19846 1.50 0.73 0 2 2
would_receive_covidVax 4822 1.01 0.86 0 2 2
top_reason_noVax_religious 4816 0.14 0.35 0 1 1
top_reason_noVax_riskIsLow 4816 0.40 0.49 0 1 1
top_reason_noVax_vaxIsBad 4816 0.34 0.47 0 1 1
covidVaxInfluencer_religiousLeader 19846 0.08 0.27 0 1 1
covidVaxInfluencer_healthWorker 19846 0.38 0.49 0 1 1
covidFactorInDecision_religious 19846 0.27 0.45 0 1 1
has_children_under_5 19846 0.49 0.50 0 1 1
regVax_importance 9684 3.26 1.05 1 4 3
regVaxInfluencer_religiousLeader 9679 0.07 0.25 0 1 1
regVaxInfluencer_healthWorker 9679 0.46 0.50 0 1 1
leaders_endorse_regVax 9642 3.19 1.04 1 4 3
religious_belief_encourages_regVax 9671 0.62 0.49 0 1 1
1.2 Creating candidate datasets for factor analysis
regVax_only_df <- fa_data %>%
select(
-(would_receive_covidVax:top_reason_noVax_vaxIsBad),
-has_children_under_5,
) %>%
filter(!is.na(regVax_importance))
covidVax_df <- fa_data %>%
select(
-continued_regVax,
-(regVax_importance:religious_belief_encourages_regVax),
-(top_reason_noVax_religious:top_reason_noVax_vaxIsBad)
)
# fa_data_no_outcomes <- fa_data %>%
# select(
# # -(1:4), # remove outcome vars
# # -(age_group, ) # remove demographic vars
# -has_children_under_5 # removea has_children_under_5 due to std_dev=0
# )
#
# fa_data_no_demog <- fa_data_no_outcomes %>% # remove demographic vars
# select(
# -age_group,
# -is_rural
# )
#
# fa_data_no_outcomes_complete <- fa_data_no_outcomes %>%
# filter(complete.cases(.))
#
# fa_data_no_demog_complete <- fa_data_no_demog %>%
# filter(complete.cases(.))
possible_datasets <- list(
regVax_only_df = regVax_only_df,
covidVax_df = covidVax_df
)1.3 Is data suitable for factor analysis?
Suitability seems low for covid vaccination (all of the above datasets were tested)
kmos <- lapply(possible_datasets, function(df) {
KMO_vals <- KMO(df)$MSA
})
set_names(kmos, names(possible_datasets))$regVax_only_df
[1] 0.7166562
$covidVax_df
[1] 0.5688766
Choosing regVax_only_df and covidVax_df, as there are no considerable differences among models for covid vaccination (using the whole sample)
regVax <- regVax_only_df
covidVax <- covidVax_df1.4 Split datastes
Long datasets should be splitted in halves to test consistency
n_regvax <- nrow(regVax)
indices_r <- seq(1:n_regvax)
indices_regvax_A <- sample(indices_r, floor((.5*n_regvax)))
indices_regvax_B <- indices_r[!(indices_r %in% indices_regvax_A)]
regvax_A <- regVax[indices_regvax_A,]
regvax_B <- regVax[indices_regvax_B,]
n_covidvax <- nrow(covidVax)
indices_c <- seq(1:n_covidvax)
indices_covidvax_A <- sample(indices_c, floor((.5*n_covidvax)))
indices_covidvax_B <- indices_c[!(indices_c %in% indices_covidvax_A)]
covidvax_A <- covidVax[indices_covidvax_A,]
covidvax_B <- covidVax[indices_covidvax_B,]2 Exploratory factor analysis
2.1 Correlation analysis
regVax_cor <- cor(regVax, use = "pairwise.complete.obs")
regvax_A_cor <- cor(regvax_A, use = "pairwise.complete.obs")
regvax_B_cor <- cor(regvax_B, use = "pairwise.complete.obs")
covidVax_cor <- cor(covidVax, use = "pairwise.complete.obs")
covidvax_A_cor <- cor(covidvax_A, use = "pairwise.complete.obs")
covidvax_B_cor <- cor(covidvax_B, use = "pairwise.complete.obs")2.2 Eigenvalues
scree(regVax_cor, factors = FALSE)scree(regvax_A_cor, factors = FALSE)scree(regvax_B_cor, factors = FALSE)scree(covidVax_cor, factors = FALSE)scree(covidvax_A_cor, factors = FALSE)scree(covidvax_B_cor, factors = FALSE)2.3 Run EFA
2.3.1 Regular vaccination
Factor analysis for all respondents with children under 5, with 6 loading factors and varimax rotation shows that:
Factor ML3 seems to be related to the role of leadership and religion (perhaps the role of the religious community) on regular vaccination, as
leaders_endorse_regVaxandreligious_belief_encourages_regVaxload into it.ML1 seems to be related to the influence of religious leader on covid vaccination, apparently capturing a specific Covid vaccination factor.
Factor ML2 seems to represent the influence of health workers in regular vaccination.
The vaccination status loads into ML4.
ML5 seems to be formed by the belief in religion as a factor to decide on Covid vaccination, and the importance given to regular vaccination.
ML6 is loaded by the membership to a religious community and age group.
Splitting the data is somehwat consistent with these patterns except for ML6 in the second half of the data.
2.3.1.1 regVax model
regVax_model <- fa(regVax, nfactors = 6, rotate = "varimax", fm = "ml")
regVax_modelFactor Analysis using method = ml
Call: fa(r = regVax, nfactors = 6, rotate = "varimax", fm = "ml")
Standardized loadings (pattern matrix) based upon correlation matrix
ML3 ML1 ML2 ML4 ML5 ML6 h2
has_covidVax 0.19 0.06 -0.02 0.69 -0.03 0.07 0.520
continued_regVax 0.35 0.09 0.00 0.31 -0.07 0.00 0.235
is_rfp 0.24 0.04 0.10 0.05 0.03 0.38 0.221
is_member_or_leader 0.30 0.04 0.08 -0.05 0.23 0.15 0.176
age_group -0.06 -0.03 0.01 0.00 -0.13 0.35 0.143
is_female -0.10 -0.05 -0.02 0.00 -0.01 -0.22 0.060
is_rural 0.00 0.01 0.01 -0.02 -0.01 -0.25 0.064
leaders_endorse_covidVax 0.37 0.08 0.00 0.25 0.02 0.11 0.218
covidVaxInfluencer_religiousLeader 0.06 -0.14 0.98 -0.01 -0.01 0.08 0.995
covidVaxInfluencer_healthWorker 0.21 0.36 -0.21 0.18 0.15 0.06 0.279
covidFactorInDecision_religious 0.31 0.03 0.06 0.13 0.42 0.06 0.297
regVax_importance 0.06 0.00 0.04 0.08 -0.43 0.12 0.208
regVaxInfluencer_religiousLeader 0.01 -0.29 0.20 -0.01 0.06 0.07 0.132
regVaxInfluencer_healthWorker 0.15 0.98 0.07 0.05 0.06 0.11 0.995
leaders_endorse_regVax 0.64 0.03 0.00 0.11 0.06 0.03 0.434
religious_belief_encourages_regVax 0.66 0.08 0.00 0.11 0.01 0.06 0.452
u2 com
has_covidVax 0.480 1.2
continued_regVax 0.765 2.2
is_rfp 0.779 1.9
is_member_or_leader 0.824 2.7
age_group 0.857 1.4
is_female 0.940 1.6
is_rural 0.936 1.0
leaders_endorse_covidVax 0.782 2.1
covidVaxInfluencer_religiousLeader 0.005 1.1
covidVaxInfluencer_healthWorker 0.721 3.4
covidFactorInDecision_religious 0.703 2.2
regVax_importance 0.792 1.3
regVaxInfluencer_religiousLeader 0.868 2.1
regVaxInfluencer_healthWorker 0.005 1.1
leaders_endorse_regVax 0.566 1.1
religious_belief_encourages_regVax 0.548 1.1
ML3 ML1 ML2 ML4 ML5 ML6
SS loadings 1.48 1.22 1.08 0.72 0.47 0.46
Proportion Var 0.09 0.08 0.07 0.05 0.03 0.03
Cumulative Var 0.09 0.17 0.24 0.28 0.31 0.34
Proportion Explained 0.27 0.22 0.20 0.13 0.09 0.09
Cumulative Proportion 0.27 0.50 0.70 0.83 0.91 1.00
Mean item complexity = 1.7
Test of the hypothesis that 6 factors are sufficient.
df null model = 120 with the objective function = 1.54 with Chi Square = 14949.27
df of the model are 39 and the objective function was 0.05
The root mean square of the residuals (RMSR) is 0.02
The df corrected root mean square of the residuals is 0.03
The harmonic n.obs is 9596 with the empirical chi square 678.6 with prob < 1.1e-117
The total n.obs was 9684 with Likelihood Chi Square = 515.24 with prob < 2e-84
Tucker Lewis Index of factoring reliability = 0.901
RMSEA index = 0.036 and the 90 % confidence intervals are 0.033 0.038
BIC = 157.29
Fit based upon off diagonal values = 0.98
Measures of factor score adequacy
ML3 ML1 ML2 ML4 ML5
Correlation of (regression) scores with factors 0.80 0.99 0.99 0.72 0.60
Multiple R square of scores with factors 0.64 0.98 0.99 0.52 0.36
Minimum correlation of possible factor scores 0.29 0.96 0.98 0.03 -0.27
ML6
Correlation of (regression) scores with factors 0.57
Multiple R square of scores with factors 0.33
Minimum correlation of possible factor scores -0.35
regVax_model$loadings
Loadings:
ML3 ML1 ML2 ML4 ML5 ML6
has_covidVax 0.192 0.689
continued_regVax 0.353 0.313
is_rfp 0.242 0.101 0.383
is_member_or_leader 0.301 0.228 0.149
age_group -0.134 0.347
is_female -0.105 -0.216
is_rural -0.251
leaders_endorse_covidVax 0.370 0.248 0.113
covidVaxInfluencer_religiousLeader -0.137 0.983
covidVaxInfluencer_healthWorker 0.210 0.362 -0.209 0.184 0.149
covidFactorInDecision_religious 0.314 0.131 0.416
regVax_importance -0.428 0.117
regVaxInfluencer_religiousLeader -0.287 0.202
regVaxInfluencer_healthWorker 0.147 0.975 0.106
leaders_endorse_regVax 0.645 0.112
religious_belief_encourages_regVax 0.655 0.108
ML3 ML1 ML2 ML4 ML5 ML6
SS loadings 1.480 1.216 1.079 0.725 0.467 0.463
Proportion Var 0.092 0.076 0.067 0.045 0.029 0.029
Cumulative Var 0.092 0.168 0.236 0.281 0.310 0.339
2.3.1.2 Split: regvax_A_model
regvax_A_model <- fa(regvax_A, nfactors = 6, rotate = "varimax", fm = "ml")
regvax_A_modelFactor Analysis using method = ml
Call: fa(r = regvax_A, nfactors = 6, rotate = "varimax", fm = "ml")
Standardized loadings (pattern matrix) based upon correlation matrix
ML3 ML1 ML2 ML4 ML6 ML5 h2
has_covidVax 0.22 0.06 0.00 0.72 0.04 -0.03 0.576
continued_regVax 0.38 0.08 -0.01 0.27 -0.01 -0.09 0.236
is_rfp 0.27 0.04 0.11 0.06 0.32 0.07 0.196
is_member_or_leader 0.30 0.05 0.09 -0.05 0.10 0.23 0.165
age_group -0.04 -0.04 0.01 0.02 0.42 -0.12 0.195
is_female -0.10 -0.04 -0.03 0.03 -0.26 -0.01 0.082
is_rural 0.01 0.00 0.01 -0.03 -0.27 0.00 0.072
leaders_endorse_covidVax 0.39 0.08 0.01 0.23 0.15 0.02 0.229
covidVaxInfluencer_religiousLeader 0.08 -0.14 0.98 0.02 0.08 -0.01 0.995
covidVaxInfluencer_healthWorker 0.24 0.36 -0.22 0.15 0.01 0.16 0.282
covidFactorInDecision_religious 0.32 0.02 0.06 0.12 0.02 0.44 0.312
regVax_importance 0.09 0.00 0.04 0.07 0.09 -0.40 0.182
regVaxInfluencer_religiousLeader 0.02 -0.29 0.20 -0.01 0.04 0.05 0.131
regVaxInfluencer_healthWorker 0.16 0.97 0.08 0.04 0.11 0.06 0.995
leaders_endorse_regVax 0.64 0.02 0.01 0.07 -0.01 0.04 0.412
religious_belief_encourages_regVax 0.67 0.08 0.00 0.08 0.07 0.00 0.463
u2 com
has_covidVax 0.424 1.2
continued_regVax 0.764 2.0
is_rfp 0.804 2.4
is_member_or_leader 0.835 2.5
age_group 0.805 1.2
is_female 0.918 1.4
is_rural 0.928 1.0
leaders_endorse_covidVax 0.771 2.1
covidVaxInfluencer_religiousLeader 0.005 1.1
covidVaxInfluencer_healthWorker 0.718 3.5
covidFactorInDecision_religious 0.688 2.1
regVax_importance 0.818 1.3
regVaxInfluencer_religiousLeader 0.869 1.9
regVaxInfluencer_healthWorker 0.005 1.1
leaders_endorse_regVax 0.588 1.0
religious_belief_encourages_regVax 0.537 1.1
ML3 ML1 ML2 ML4 ML6 ML5
SS loadings 1.57 1.21 1.08 0.71 0.49 0.47
Proportion Var 0.10 0.08 0.07 0.04 0.03 0.03
Cumulative Var 0.10 0.17 0.24 0.29 0.32 0.35
Proportion Explained 0.28 0.22 0.20 0.13 0.09 0.08
Cumulative Proportion 0.28 0.50 0.70 0.83 0.92 1.00
Mean item complexity = 1.7
Test of the hypothesis that 6 factors are sufficient.
df null model = 120 with the objective function = 1.57 with Chi Square = 7583.32
df of the model are 39 and the objective function was 0.06
The root mean square of the residuals (RMSR) is 0.02
The df corrected root mean square of the residuals is 0.03
The harmonic n.obs is 4799 with the empirical chi square 366.57 with prob < 7.4e-55
The total n.obs was 4842 with Likelihood Chi Square = 284.89 with prob < 3.9e-39
Tucker Lewis Index of factoring reliability = 0.899
RMSEA index = 0.036 and the 90 % confidence intervals are 0.032 0.04
BIC = -46.02
Fit based upon off diagonal values = 0.98
Measures of factor score adequacy
ML3 ML1 ML2 ML4 ML6
Correlation of (regression) scores with factors 0.81 0.99 0.99 0.74 0.59
Multiple R square of scores with factors 0.66 0.98 0.99 0.55 0.35
Minimum correlation of possible factor scores 0.33 0.96 0.97 0.11 -0.30
ML5
Correlation of (regression) scores with factors 0.61
Multiple R square of scores with factors 0.37
Minimum correlation of possible factor scores -0.27
regvax_A_model$loadings
Loadings:
ML3 ML1 ML2 ML4 ML6 ML5
has_covidVax 0.220 0.722
continued_regVax 0.385 0.272
is_rfp 0.269 0.107 0.320
is_member_or_leader 0.297 0.232
age_group 0.422 -0.116
is_female -0.264
is_rural -0.266
leaders_endorse_covidVax 0.386 0.227 0.147
covidVaxInfluencer_religiousLeader -0.140 0.981
covidVaxInfluencer_healthWorker 0.243 0.356 -0.216 0.148 0.164
covidFactorInDecision_religious 0.317 0.123 0.438
regVax_importance -0.400
regVaxInfluencer_religiousLeader -0.290 0.203
regVaxInfluencer_healthWorker 0.160 0.973 0.108
leaders_endorse_regVax 0.636
religious_belief_encourages_regVax 0.667
ML3 ML1 ML2 ML4 ML6 ML5
SS loadings 1.566 1.208 1.082 0.711 0.488 0.468
Proportion Var 0.098 0.075 0.068 0.044 0.031 0.029
Cumulative Var 0.098 0.173 0.241 0.285 0.316 0.345
2.3.1.3 Split: regvax_B_model
regvax_B_model <- fa(regvax_B, nfactors = 6, rotate = "varimax", fm = "ml")
regvax_B_modelFactor Analysis using method = ml
Call: fa(r = regvax_B, nfactors = 6, rotate = "varimax", fm = "ml")
Standardized loadings (pattern matrix) based upon correlation matrix
ML3 ML1 ML2 ML4 ML5 ML6 h2
has_covidVax 0.21 0.05 -0.03 0.65 0.07 -0.04 0.478
continued_regVax 0.34 0.08 0.00 0.32 0.01 -0.06 0.233
is_rfp 0.23 0.05 0.09 0.02 0.58 -0.06 0.405
is_member_or_leader 0.31 0.03 0.07 -0.08 0.20 0.20 0.186
age_group -0.05 -0.01 0.02 0.01 0.18 -0.16 0.062
is_female -0.14 -0.06 -0.03 -0.05 -0.06 0.00 0.029
is_rural -0.02 0.00 0.01 -0.02 -0.20 -0.01 0.043
leaders_endorse_covidVax 0.38 0.07 -0.02 0.25 0.02 0.01 0.216
covidVaxInfluencer_religiousLeader 0.07 -0.12 0.99 -0.03 0.05 -0.03 0.995
covidVaxInfluencer_healthWorker 0.20 0.37 -0.20 0.20 0.09 0.12 0.280
covidFactorInDecision_religious 0.33 0.03 0.06 0.12 0.10 0.37 0.276
regVax_importance 0.05 0.00 0.03 0.07 0.08 -0.49 0.255
regVaxInfluencer_religiousLeader 0.01 -0.27 0.21 -0.01 0.07 0.05 0.128
regVaxInfluencer_healthWorker 0.18 0.98 0.05 0.04 0.04 0.04 0.995
leaders_endorse_regVax 0.66 0.02 -0.01 0.11 0.04 0.07 0.459
religious_belief_encourages_regVax 0.65 0.07 -0.01 0.10 0.03 0.01 0.438
u2 com
has_covidVax 0.522 1.3
continued_regVax 0.767 2.2
is_rfp 0.595 1.4
is_member_or_leader 0.814 2.8
age_group 0.938 2.2
is_female 0.971 2.3
is_rural 0.957 1.1
leaders_endorse_covidVax 0.784 1.8
covidVaxInfluencer_religiousLeader 0.005 1.0
covidVaxInfluencer_healthWorker 0.720 3.3
covidFactorInDecision_religious 0.724 2.4
regVax_importance 0.745 1.1
regVaxInfluencer_religiousLeader 0.872 2.1
regVaxInfluencer_healthWorker 0.005 1.1
leaders_endorse_regVax 0.541 1.1
religious_belief_encourages_regVax 0.562 1.1
ML3 ML1 ML2 ML4 ML5 ML6
SS loadings 1.53 1.21 1.08 0.69 0.50 0.48
Proportion Var 0.10 0.08 0.07 0.04 0.03 0.03
Cumulative Var 0.10 0.17 0.24 0.28 0.31 0.34
Proportion Explained 0.28 0.22 0.20 0.13 0.09 0.09
Cumulative Proportion 0.28 0.50 0.70 0.82 0.91 1.00
Mean item complexity = 1.8
Test of the hypothesis that 6 factors are sufficient.
df null model = 120 with the objective function = 1.55 with Chi Square = 7482.88
df of the model are 39 and the objective function was 0.05
The root mean square of the residuals (RMSR) is 0.02
The df corrected root mean square of the residuals is 0.03
The harmonic n.obs is 4797 with the empirical chi square 363.94 with prob < 2.4e-54
The total n.obs was 4842 with Likelihood Chi Square = 255.9 with prob < 1.1e-33
Tucker Lewis Index of factoring reliability = 0.909
RMSEA index = 0.034 and the 90 % confidence intervals are 0.03 0.038
BIC = -75.02
Fit based upon off diagonal values = 0.98
Measures of factor score adequacy
ML3 ML1 ML2 ML4 ML5
Correlation of (regression) scores with factors 0.81 0.99 0.99 0.69 0.63
Multiple R square of scores with factors 0.65 0.98 0.99 0.48 0.40
Minimum correlation of possible factor scores 0.30 0.97 0.98 -0.04 -0.20
ML6
Correlation of (regression) scores with factors 0.61
Multiple R square of scores with factors 0.38
Minimum correlation of possible factor scores -0.25
regvax_B_model$loadings
Loadings:
ML3 ML1 ML2 ML4 ML5 ML6
has_covidVax 0.212 0.649
continued_regVax 0.342 0.325
is_rfp 0.232 0.580
is_member_or_leader 0.313 0.196 0.196
age_group 0.184 -0.158
is_female -0.136
is_rural -0.204
leaders_endorse_covidVax 0.384 0.252
covidVaxInfluencer_religiousLeader -0.120 0.986
covidVaxInfluencer_healthWorker 0.201 0.366 -0.205 0.203 0.119
covidFactorInDecision_religious 0.328 0.120 0.103 0.373
regVax_importance -0.490
regVaxInfluencer_religiousLeader -0.275 0.211
regVaxInfluencer_healthWorker 0.176 0.978
leaders_endorse_regVax 0.664 0.109
religious_belief_encourages_regVax 0.649 0.101
ML3 ML1 ML2 ML4 ML5 ML6
SS loadings 1.530 1.209 1.082 0.686 0.497 0.477
Proportion Var 0.096 0.076 0.068 0.043 0.031 0.030
Cumulative Var 0.096 0.171 0.239 0.282 0.313 0.342
2.3.2 Covid vaccination
Factor analysis for the whole sample, related to Covid vaccination, and using 6 factors, varimax rotation and maximum likelihod method, shows that: - Factor ML2 seems to represent the influence of religious leaders on Covid vaccination - Factor ML1 seems to capture a willingness to get Covid vaccination - Factor ML3 apparently captures the influence of confidence in religious leaders - Factor ML5 is apparently representing the membership to a religious community, as belonging or not to RFP, and being a member of a leader of a religious community load into it. - However ML4 is also highly associated to belonging to RFP but not to being a member of a religious community. - ML5 is loaded by the membership to a religious community and age group. - ML6 seems to capture vaccination status.
2.3.2.1 covidVax_model
covidVax_model <- fa(covidVax, nfactors = 6, rotate = "varimax", fm = "ml")
covidVax_modelFactor Analysis using method = ml
Call: fa(r = covidVax, nfactors = 6, rotate = "varimax", fm = "ml")
Standardized loadings (pattern matrix) based upon correlation matrix
ML2 ML1 ML3 ML5 ML4 ML6 h2
has_covidVax -0.06 0.00 0.10 0.04 0.22 0.45 0.264
is_rfp 0.04 0.07 0.01 0.47 0.50 -0.06 0.482
is_member_or_leader 0.03 -0.01 0.08 0.45 -0.04 -0.01 0.209
age_group 0.04 -0.03 0.01 -0.01 0.29 0.04 0.088
is_female -0.03 0.01 -0.04 0.00 0.05 -0.10 0.015
is_rural 0.01 0.02 0.00 0.00 -0.31 0.03 0.096
leaders_endorse_covidVax -0.02 0.10 0.93 0.17 0.06 0.28 0.995
would_receive_covidVax -0.03 0.99 0.08 0.09 -0.04 0.01 0.995
covidVaxInfluencer_religiousLeader 0.98 0.02 -0.02 0.19 0.04 0.07 0.995
covidVaxInfluencer_healthWorker -0.30 0.12 -0.02 0.22 -0.03 0.28 0.235
covidFactorInDecision_religious 0.04 0.09 0.01 0.36 -0.12 0.21 0.197
has_children_under_5 0.01 -0.02 0.00 0.07 -0.27 0.00 0.077
u2 com
has_covidVax 0.736 1.6
is_rfp 0.518 2.1
is_member_or_leader 0.791 1.1
age_group 0.912 1.1
is_female 0.985 2.0
is_rural 0.904 1.0
leaders_endorse_covidVax 0.005 1.3
would_receive_covidVax 0.005 1.0
covidVaxInfluencer_religiousLeader 0.005 1.1
covidVaxInfluencer_healthWorker 0.765 3.2
covidFactorInDecision_religious 0.803 2.1
has_children_under_5 0.923 1.2
ML2 ML1 ML3 ML5 ML4 ML6
SS loadings 1.05 1.02 0.90 0.68 0.57 0.43
Proportion Var 0.09 0.08 0.07 0.06 0.05 0.04
Cumulative Var 0.09 0.17 0.25 0.30 0.35 0.39
Proportion Explained 0.23 0.22 0.19 0.15 0.12 0.09
Cumulative Proportion 0.23 0.45 0.64 0.79 0.91 1.00
Mean item complexity = 1.6
Test of the hypothesis that 6 factors are sufficient.
df null model = 66 with the objective function = 0.52 with Chi Square = 10361.88
df of the model are 9 and the objective function was 0.01
The root mean square of the residuals (RMSR) is 0.01
The df corrected root mean square of the residuals is 0.03
The harmonic n.obs is 13138 with the empirical chi square 254.7 with prob < 1e-49
The total n.obs was 19847 with Likelihood Chi Square = 166.12 with prob < 4e-31
Tucker Lewis Index of factoring reliability = 0.888
RMSEA index = 0.03 and the 90 % confidence intervals are 0.026 0.034
BIC = 77.06
Fit based upon off diagonal values = 0.99
Measures of factor score adequacy
ML2 ML1 ML3 ML5 ML4
Correlation of (regression) scores with factors 0.99 0.99 0.96 0.68 0.66
Multiple R square of scores with factors 0.97 0.99 0.92 0.46 0.44
Minimum correlation of possible factor scores 0.95 0.98 0.85 -0.07 -0.12
ML6
Correlation of (regression) scores with factors 0.58
Multiple R square of scores with factors 0.34
Minimum correlation of possible factor scores -0.32
covidVax_model$loadings
Loadings:
ML2 ML1 ML3 ML5 ML4 ML6
has_covidVax 0.219 0.448
is_rfp 0.473 0.497
is_member_or_leader 0.447
age_group 0.288
is_female
is_rural -0.307
leaders_endorse_covidVax 0.101 0.934 0.166 0.284
would_receive_covidVax 0.989
covidVaxInfluencer_religiousLeader 0.976 0.191
covidVaxInfluencer_healthWorker -0.300 0.124 0.219 0.283
covidFactorInDecision_religious 0.360 -0.122 0.207
has_children_under_5 -0.267
ML2 ML1 ML3 ML5 ML4 ML6
SS loadings 1.053 1.019 0.899 0.680 0.570 0.426
Proportion Var 0.088 0.085 0.075 0.057 0.048 0.036
Cumulative Var 0.088 0.173 0.248 0.304 0.352 0.387
2.3.2.2 Split: covidvax_A_model
covidvax_A_model <- fa(covidvax_A, nfactors = 6, rotate = "varimax", fm = "ml")
covidvax_A_modelFactor Analysis using method = ml
Call: fa(r = covidvax_A, nfactors = 6, rotate = "varimax", fm = "ml")
Standardized loadings (pattern matrix) based upon correlation matrix
ML1 ML2 ML5 ML4 ML6 ML3 h2
has_covidVax -0.01 0.18 0.07 0.15 0.21 0.18 0.138
is_rfp 0.09 0.04 0.61 0.01 0.50 -0.33 0.743
is_member_or_leader -0.02 0.08 0.40 -0.01 -0.09 0.03 0.174
age_group -0.04 0.02 -0.01 -0.04 0.32 0.07 0.111
is_female 0.00 -0.03 -0.02 -0.01 0.00 -0.20 0.041
is_rural 0.02 0.00 0.00 -0.01 -0.29 0.03 0.084
leaders_endorse_covidVax 0.11 0.97 0.16 0.03 0.05 0.15 0.995
would_receive_covidVax 0.99 0.10 0.07 0.07 -0.06 0.03 0.995
covidVaxInfluencer_religiousLeader 0.01 -0.03 0.29 -0.50 0.05 0.15 0.359
covidVaxInfluencer_healthWorker 0.08 0.02 0.20 0.62 -0.02 0.18 0.467
covidFactorInDecision_religious 0.09 0.03 0.36 0.03 -0.10 0.23 0.198
has_children_under_5 -0.02 0.00 0.07 0.01 -0.26 0.03 0.073
u2 com
has_covidVax 0.862 4.1
is_rfp 0.257 2.6
is_member_or_leader 0.826 1.2
age_group 0.889 1.2
is_female 0.959 1.1
is_rural 0.916 1.0
leaders_endorse_covidVax 0.005 1.1
would_receive_covidVax 0.005 1.0
covidVaxInfluencer_religiousLeader 0.641 1.8
covidVaxInfluencer_healthWorker 0.533 1.4
covidFactorInDecision_religious 0.802 2.1
has_children_under_5 0.927 1.2
ML1 ML2 ML5 ML4 ML6 ML3
SS loadings 1.01 0.99 0.82 0.67 0.57 0.32
Proportion Var 0.08 0.08 0.07 0.06 0.05 0.03
Cumulative Var 0.08 0.17 0.23 0.29 0.34 0.36
Proportion Explained 0.23 0.23 0.19 0.15 0.13 0.07
Cumulative Proportion 0.23 0.46 0.64 0.80 0.93 1.00
Mean item complexity = 1.7
Test of the hypothesis that 6 factors are sufficient.
df null model = 66 with the objective function = 0.52 with Chi Square = 5160.81
df of the model are 9 and the objective function was 0.01
The root mean square of the residuals (RMSR) is 0.01
The df corrected root mean square of the residuals is 0.03
The harmonic n.obs is 6550 with the empirical chi square 111.54 with prob < 7.1e-20
The total n.obs was 9923 with Likelihood Chi Square = 76.48 with prob < 8e-13
Tucker Lewis Index of factoring reliability = 0.903
RMSEA index = 0.027 and the 90 % confidence intervals are 0.022 0.033
BIC = -6.34
Fit based upon off diagonal values = 0.99
Measures of factor score adequacy
ML1 ML2 ML5 ML4 ML6
Correlation of (regression) scores with factors 0.99 0.98 0.77 0.73 0.67
Multiple R square of scores with factors 0.99 0.96 0.59 0.53 0.45
Minimum correlation of possible factor scores 0.97 0.93 0.17 0.06 -0.11
ML3
Correlation of (regression) scores with factors 0.58
Multiple R square of scores with factors 0.33
Minimum correlation of possible factor scores -0.33
covidvax_A_model$loadings
Loadings:
ML1 ML2 ML5 ML4 ML6 ML3
has_covidVax 0.179 0.147 0.210 0.185
is_rfp 0.614 0.497 -0.330
is_member_or_leader 0.399
age_group 0.320
is_female -0.199
is_rural -0.287
leaders_endorse_covidVax 0.107 0.966 0.155 0.153
would_receive_covidVax 0.985
covidVaxInfluencer_religiousLeader 0.286 -0.502 0.147
covidVaxInfluencer_healthWorker 0.199 0.622 0.181
covidFactorInDecision_religious 0.357 -0.101 0.225
has_children_under_5 -0.258
ML1 ML2 ML5 ML4 ML6 ML3
SS loadings 1.009 0.986 0.824 0.669 0.569 0.320
Proportion Var 0.084 0.082 0.069 0.056 0.047 0.027
Cumulative Var 0.084 0.166 0.235 0.291 0.338 0.365
2.3.2.3 Split: covidvax_B_model
covidvax_B_model <- fa(covidvax_B, nfactors = 6, rotate = "varimax", fm = "ml")
covidvax_B_modelFactor Analysis using method = ml
Call: fa(r = covidvax_B, nfactors = 6, rotate = "varimax", fm = "ml")
Standardized loadings (pattern matrix) based upon correlation matrix
ML2 ML1 ML3 ML4 ML6 ML5 h2
has_covidVax -0.04 -0.01 0.18 0.03 0.18 0.60 0.424
is_rfp 0.04 0.06 -0.03 0.42 0.47 0.02 0.408
is_member_or_leader 0.03 0.00 0.08 0.45 0.00 -0.05 0.210
age_group 0.05 -0.02 0.00 0.00 0.29 0.05 0.090
is_female -0.02 0.02 -0.07 -0.01 0.03 -0.03 0.007
is_rural 0.01 0.02 0.02 0.01 -0.34 0.01 0.114
leaders_endorse_covidVax -0.08 0.14 0.96 0.17 0.09 0.09 0.995
would_receive_covidVax -0.03 0.99 0.02 0.10 -0.02 0.01 0.995
covidVaxInfluencer_religiousLeader 0.98 0.02 0.06 0.18 0.04 0.00 0.995
covidVaxInfluencer_healthWorker -0.28 0.12 0.04 0.23 -0.04 0.24 0.209
covidFactorInDecision_religious 0.05 0.08 0.06 0.39 -0.14 0.16 0.212
has_children_under_5 0.02 -0.01 0.02 0.07 -0.27 -0.03 0.079
u2 com
has_covidVax 0.576 1.4
is_rfp 0.592 2.0
is_member_or_leader 0.790 1.1
age_group 0.910 1.1
is_female 0.993 2.2
is_rural 0.886 1.0
leaders_endorse_covidVax 0.005 1.2
would_receive_covidVax 0.005 1.0
covidVaxInfluencer_religiousLeader 0.005 1.1
covidVaxInfluencer_healthWorker 0.791 3.4
covidFactorInDecision_religious 0.788 1.9
has_children_under_5 0.921 1.2
ML2 ML1 ML3 ML4 ML6 ML5
SS loadings 1.05 1.03 0.98 0.66 0.56 0.46
Proportion Var 0.09 0.09 0.08 0.06 0.05 0.04
Cumulative Var 0.09 0.17 0.25 0.31 0.36 0.39
Proportion Explained 0.22 0.22 0.21 0.14 0.12 0.10
Cumulative Proportion 0.22 0.44 0.65 0.79 0.90 1.00
Mean item complexity = 1.6
Test of the hypothesis that 6 factors are sufficient.
df null model = 66 with the objective function = 0.53 with Chi Square = 5272.93
df of the model are 9 and the objective function was 0.01
The root mean square of the residuals (RMSR) is 0.01
The df corrected root mean square of the residuals is 0.03
The harmonic n.obs is 6587 with the empirical chi square 125.8 with prob < 8.7e-23
The total n.obs was 9924 with Likelihood Chi Square = 82.57 with prob < 5e-14
Tucker Lewis Index of factoring reliability = 0.896
RMSEA index = 0.029 and the 90 % confidence intervals are 0.023 0.035
BIC = -0.25
Fit based upon off diagonal values = 0.99
Measures of factor score adequacy
ML2 ML1 ML3 ML4 ML6
Correlation of (regression) scores with factors 0.99 0.99 0.99 0.67 0.65
Multiple R square of scores with factors 0.98 0.99 0.97 0.45 0.42
Minimum correlation of possible factor scores 0.96 0.98 0.94 -0.11 -0.16
ML5
Correlation of (regression) scores with factors 0.64
Multiple R square of scores with factors 0.40
Minimum correlation of possible factor scores -0.19
covidvax_B_model$loadings
Loadings:
ML2 ML1 ML3 ML4 ML6 ML5
has_covidVax 0.181 0.179 0.598
is_rfp 0.421 0.473
is_member_or_leader 0.448
age_group 0.292
is_female
is_rural -0.336
leaders_endorse_covidVax 0.138 0.962 0.166
would_receive_covidVax 0.991 0.104
covidVaxInfluencer_religiousLeader 0.978 0.185
covidVaxInfluencer_healthWorker -0.283 0.124 0.231 0.239
covidFactorInDecision_religious 0.389 -0.143 0.164
has_children_under_5 -0.268
ML2 ML1 ML3 ML4 ML6 ML5
SS loadings 1.052 1.028 0.980 0.662 0.559 0.457
Proportion Var 0.088 0.086 0.082 0.055 0.047 0.038
Cumulative Var 0.088 0.173 0.255 0.310 0.357 0.395
3 Concluding remarks
3.1 Regular vaccination
- There seems to be a factor related to the role of leadership and religion (perhaps the role of the religious community) on regular vaccination, as
leaders_endorse_regVaxandreligious_belief_encourages_regVaxload into it. - Another factor seems to be related to the influence of religious leader on covid vaccination, apparently capturing a specific Covid vaccination factor.
- A third factor seems to represent the influence of health workers in regular vaccination.
To a lesser extent:
- The vaccination status loads into a fourth factor
- A fifth factor seems to be formed by the belief in religion as a factor to decide on Covid vaccination, and the importance given to regular vaccination.
- A sixth factor is loaded by the membership to a religious community and age group.
3.2 COVID-19 vaccination
- One factor seems to represent the influence of religious leaders on Covid vaccination
- A second factor seems to capture a willingness to get Covid vaccination
- A third factor apparently captures the influence of confidence in religious leaders
- A fourth factor is apparently representing the membership to a religious community, as belonging or not to RFP, and being a member of a leader of a religious community load into it.
- A fourth factor is also highly associated to belonging to RFP but not to being a member of a religious community.
- A fifth factor is loaded by the membership to a religious community and age group.
- A sisxth factor seems to capture vaccination status.
4 References
- Johnson, R. A., & Wichern, D. W. (2014). Applied multivariate statistical analysis. Pearson Education.
- Tu, Dong et al. (2010). Using Cluster Analysis in Persona Development.
- Agresti, A. (2013). Categorical data analysis. John Wiley & Sons.
- Agresti, A. (2019). An introduction to categorical data analysis. John Wiley & Sons.