# Safety: ensure item cols are numeric
df <- df %>%
mutate(across(all_of(c(collab_items, mot_items, vision_items)), ~ parse_number(as.character(.x))))
df_scores <- df %>%
mutate(
collab_mean = rowMeans(across(all_of(collab_items)), na.rm = TRUE),
mot_mean = rowMeans(across(all_of(mot_items)), na.rm = TRUE),
vision_mean = rowMeans(across(all_of(vision_items)), na.rm = TRUE),
# # Optional: proportion of items rated 4 for each checklist (top-box intensity)
# collab_topbox = rowMeans(across(all_of(collab_items), ~ .x == 4), na.rm = TRUE),
# mot_topbox = rowMeans(across(all_of(mot_items), ~ .x == 4), na.rm = TRUE),
# vision_topbox = rowMeans(across(all_of(vision_items), ~ .x == 4), na.rm = TRUE)
)
df_scores %>% select(collab_mean, mot_mean, vision_mean) %>%
summary() ## collab_mean mot_mean vision_mean
## Min. :1.571 Min. :2.750 Min. :1.000
## 1st Qu.:2.893 1st Qu.:3.625 1st Qu.:3.125
## Median :3.429 Median :3.750 Median :3.500
## Mean :3.332 Mean :3.728 Mean :3.296
## 3rd Qu.:3.821 3rd Qu.:4.000 3rd Qu.:3.750
## Max. :4.000 Max. :4.000 Max. :4.000
## NA's :1 NA's :1
comp <- df_scores %>% select(collab_mean, mot_mean, vision_mean)
# Spearman
cor_spearman <- cor(comp, use = "pairwise.complete.obs", method = "spearman")
# Pearson
cor_pearson <- cor(comp, use = "pairwise.complete.obs", method = "pearson")
cor_spearman## collab_mean mot_mean vision_mean
## collab_mean 1.0000000 0.6783971 0.6391721
## mot_mean 0.6783971 1.0000000 0.7213459
## vision_mean 0.6391721 0.7213459 1.0000000
## collab_mean mot_mean vision_mean
## collab_mean 1.0000000 0.7275893 0.5725500
## mot_mean 0.7275893 1.0000000 0.6168301
## vision_mean 0.5725500 0.6168301 1.0000000
Summary of results:
All three checklist composite scores were moderately to strongly and statistically significantly correlated, indicating that leadership practices across these domains tend to co-occur rather than operate independently.
Collaboration and Motivation & Guidance There was a strong positive association between Collaboration and Motivation & Guidance (ρ = 0.68, p < .001). Leaders who reported more frequent use of collaborative leadership practices also tended to report higher levels of practices related to motivating, guiding, and supporting staff.
Collaboration and Vision & Direction Collaboration was also positively associated with Vision & Direction (ρ = 0.64, p < .001). This finding suggests that leaders who engage more frequently in collaborative practices are also more likely to articulate and use a clear vision and direction, although this relationship was somewhat weaker than the association with motivation and guidance.
Motivation & Guidance and Vision & Direction The strongest association was observed between Motivation & Guidance and Vision & Direction (ρ = 0.72, p < .001). This result suggests that leaders who clearly communicate purpose, priorities, and direction are also more likely to motivate, guide, and support staff effectively.
cor_tests <- list(
collab_mot = cor.test(df_scores$collab_mean, df_scores$mot_mean, method = "spearman"),
collab_vision = cor.test(df_scores$collab_mean, df_scores$vision_mean, method = "spearman"),
mot_vision = cor.test(df_scores$mot_mean, df_scores$vision_mean, method = "spearman")
)
cor_tests$collab_mot##
## Spearman's rank correlation rho
##
## data: df_scores$collab_mean and df_scores$mot_mean
## S = 2104.9, p-value = 1.038e-05
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
## rho
## 0.6783971
##
## Spearman's rank correlation rho
##
## data: df_scores$collab_mean and df_scores$vision_mean
## S = 2361.6, p-value = 4.723e-05
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
## rho
## 0.6391721
##
## Spearman's rank correlation rho
##
## data: df_scores$mot_mean and df_scores$vision_mean
## S = 1823.8, p-value = 1.485e-06
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
## rho
## 0.7213459
Overall interpretation
Taken together, these results indicate that leadership practices related to collaboration, motivation, and vision are closely interconnected. Higher implementation in one domain tends to be accompanied by higher implementation in the others, consistent with the DEC/ECTA framework’s emphasis on leadership as a coherent set of mutually reinforcing practices.
Importantly, while these associations are strong and statistically significant, they reflect patterns of co-occurrence rather than causal relationships.
desc_comp <- df_scores %>%
summarise(
n = sum(!is.na(collab_mean) | !is.na(mot_mean) | !is.na(vision_mean)),
collab_mean = mean(collab_mean, na.rm = TRUE),
mot_mean = mean(mot_mean, na.rm = TRUE),
vision_mean = mean(vision_mean, na.rm = TRUE),
)
desc_comp## # A tibble: 1 × 4
## n collab_mean mot_mean vision_mean
## <int> <dbl> <dbl> <dbl>
## 1 35 3.33 3.73 3.30
reactable(
desc_by_agency_disp,
searchable = TRUE,
highlight = TRUE,
striped = TRUE,
compact = TRUE,
defaultPageSize = 10,
showPageSizeOptions = TRUE,
columns = list(
Agency = colDef(minWidth = 180),
n = colDef(
name = "Number of Respondents",
align = "center"
),
collab_mean = colDef(
name = "Collaboration (Mean)",
align = "right",
format = colFormat(digits = 2)
),
mot_mean = colDef(
name = "Motivation & Guidance (Mean)",
align = "right",
format = colFormat(digits = 2)
),
vision_mean = colDef(
name = "Vision & Direction (Mean)",
align = "right",
format = colFormat(digits = 2)
)
)
# defaultSorted = list(
# list(id = "n", desc = TRUE)
)reactable(
item_dist_wide,
searchable = TRUE,
highlight = TRUE,
striped = TRUE,
compact = TRUE,
defaultPageSize = 25,
showPageSizeOptions = TRUE,
columns = list(
checklist = colDef(name = "Checklist"),
item_label = colDef(name = "Item"),
item_qid = colDef(name = "QID", minWidth = 90),
item = colDef(name = "Var", show = FALSE), # hide the raw variable name
`1 Seldom/Never` = colDef(
name = "1 - Seldom or never",
align = "right",
format = colFormat(digits = 0, suffix = "%")
),
`2 Some of the time` = colDef(
name = "2 - Some of the time",
align = "right",
format = colFormat(digits = 0, suffix = "%")
),
`3 As often as I can` = colDef(
name = "3 - As often as I can",
align = "right",
format = colFormat(digits = 0, suffix = "%")
),
`4 Most of the time` = colDef(
name = "4 - Most of the time",
align = "right",
format = colFormat(digits = 0, suffix = "%")
)
),
defaultSorted = "checklist"
)