Data Import

Identify Columns per Checklist

Composite mean scores per respondent

# 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

Correlations between the three checklist composites

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
cor_pearson
##             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.

  1. 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.

  2. 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.

  3. 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.

Correlation tests (pairwise)

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
cor_tests$collab_vision
## 
##  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
cor_tests$mot_vision
## 
##  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.

Descriptive Statistics overall

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

Descriptives statistics by agency

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)
  )

Item level descriptive counts

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"
)