Updated with newly derived variables

# environment setup to run ordered logit properly
options(contrasts = rep("contr.treatment", 2))

This chunk loads all the packages to use

#packages for ordered logit
library(tidyverse) # package for data cleaning and plotting
library(readxl) # package for reading excel file
library(broom) # extracting model summary as data frame
library(modelsummary) # deriving model tables
library(scales) # label percent
library(lubridate) # working with dates
library(marginaleffects) #to calculate marginal effects
library(ordinal) # package for ordinal logit regression
library(here) # specifying directory 

Data Preparation

First, import the sampled and coded data set

#import the raw data file
cqc_skills <- read_rds(here("data","cleaned_sfc_ipw.rds")) 
cqc_skills %>% 
  mutate(overall = ifelse(domain == "Overall", 1, 0)) %>% 
  group_by(form) %>% 
  summarize(count_rating_unit = sum(overall),
            count_rating = n())
## # A tibble: 6 × 3
##   form  count_rating_unit count_rating
##   <fct>             <dbl>        <int>
## 1 FPO                5122        30732
## 2 CIC                  51          306
## 3 GOV                 378         2268
## 4 IND                 298         1788
## 5 NPO                1405         8430
## 6 <NA>                  4           24
nrow(cqc_skills)
## [1] 43548
summary(cqc_skills[, c("turnover", "turnover0", "staff_level", "staff_level0")])
##     turnover          turnover0        staff_level      staff_level0   
##  Min.   :   0.000   Min.   :  0.000   Min.   : 0.000   Min.   : 0.000  
##  1st Qu.:   7.143   1st Qu.:  6.885   1st Qu.: 0.500   1st Qu.: 0.794  
##  Median :  18.868   Median : 18.182   Median : 0.808   Median : 1.273  
##  Mean   :  31.132   Mean   : 29.171   Mean   : 1.204   Mean   : 1.647  
##  3rd Qu.:  38.298   3rd Qu.: 38.095   3rd Qu.: 1.357   3rd Qu.: 1.917  
##  Max.   :4500.000   Max.   :704.348   Max.   :55.333   Max.   :67.333  
##  NA's   :10656      NA's   :10644     NA's   :5004     NA's   :5004

Modeling on rating with new staffing variables

model_order_weighted <- clm(rating ~ form + service_type_selected + region + during_covid,
                data = filter(cqc_skills, domain == "Overall"),
                link = "logit",
                weights = ipw)

model_staff_weighted <- lm(staff_level ~ form + service_type_selected + region + during_covid,
                data = filter(cqc_skills, domain == "Overall"),
                weights = ipw)

staff_direct_order_weighted <- clm(rating ~ form + staff_level + service_type_selected + region + during_covid,
                data = filter(cqc_skills, domain == "Overall"),
                link = "logit",
                weights = ipw)

model_turnover_weighted <- lm(turnover ~ form + service_type_selected+ region + during_covid,
                data = filter(cqc_skills, domain == "Overall"),
                weights = ipw)

turnover_direct_order_weighted <- clm(rating ~ form + turnover + service_type_selected + region + during_covid,
                data = filter(cqc_skills, domain == "Overall"),
                link = "logit",
                weights = ipw)

Modeling on rating with old staffing variables

model_staff_weighted0 <- lm(staff_level0 ~ form + service_type_selected + region + during_covid,
                data = filter(cqc_skills, domain == "Overall"),
                weights = ipw)

staff_direct_order_weighted0 <- clm(rating ~ form + staff_level0 + service_type_selected + region + during_covid,
                data = filter(cqc_skills, domain == "Overall"),
                link = "logit",
                weights = ipw)

model_turnover_weighted0 <- lm(turnover0 ~ form + service_type_selected+ region + during_covid,
                data = filter(cqc_skills, domain == "Overall"),
                weights = ipw)

turnover_direct_order_weighted0 <- clm(rating ~ form + turnover0 + service_type_selected + region + during_covid,
                data = filter(cqc_skills, domain == "Overall"),
                link = "logit",
                weights = ipw)

drive result tables

results table for new staffing variables

new_models <- modelsummary(list("full weighted" = model_order_weighted,  
                                "staffing weighted"= model_staff_weighted,
                                "staff direct weighted" = staff_direct_order_weighted,
                                "turnover weighted"= model_turnover_weighted, 
                                "turnover direct weighted" = turnover_direct_order_weighted),
                               coef_omit = "region", exponentiate = F,
                               statistic = "({p.value}) {stars}")
new_models
full weighted staffing weighted staff direct weighted turnover weighted turnover direct weighted
Inadequate|Req improv -5.019 -4.910 -5.050
(<0.001) *** (<0.001) *** (<0.001) ***
Req improv|Good -2.167 -2.065 -2.127
(<0.001) *** (<0.001) *** (<0.001) ***
Good|Outstanding 3.076 3.187 3.150
(<0.001) *** (<0.001) *** (<0.001) ***
formCIC 0.257 0.492 0.127 -12.767 0.172
(0.393) (0.049) * (0.687) (0.537) (0.680)
formGOV 0.197 0.708 0.076 -22.312 0.166
(0.182) (<0.001) *** (0.616) (0.003) ** (0.270)
formIND -0.277 -0.222 -0.205 -14.033 -0.269
(0.003) ** (0.007) ** (0.044) * (0.011) * (0.013) *
formNPO 0.315 0.418 0.237 -9.565 0.310
(<0.001) *** (<0.001) *** (0.001) ** (0.018) * (<0.001) ***
service_type_selectedcare home w/o nursing 0.134 0.316 0.145 -8.578 0.120
(0.027) * (<0.001) *** (0.024) * (0.019) * (0.089) +
service_type_selectedDomicilary Care 0.504 -0.166 0.582 4.902 0.582
(<0.001) *** (0.005) ** (<0.001) *** (0.230) (<0.001) ***
service_type_selectedSupported Living 0.513 1.390 0.511 -8.269 0.527
(<0.001) *** (<0.001) *** (<0.001) *** (0.245) (<0.001) ***
during_covidTRUE -1.787 -0.119 -1.758 5.839 -1.737
(<0.001) *** (0.006) ** (<0.001) *** (0.057) + (<0.001) ***
(Intercept) 1.006 43.991
(<0.001) *** (<0.001) ***
staff_level 0.082
(<0.001) ***
turnover 0.000
(0.509)
Num.Obs. 12521 5984 11143 5085 9500
R2 0.075 0.011
R2 Adj. 0.073 0.008
AIC 15037.6 22009.7 13275.9 61048.2 11151.6
BIC 15178.9 22130.3 13422.2 61165.9 11294.7
Log.Lik. -10986.858 -30506.119
RMSE 2.27 1.58 2.27 93.27 2.27

results table for oldstaffing variables

old_models <- modelsummary(list("full weighted" = model_order_weighted,  
                                "staffing weighted"= model_staff_weighted0,
                                "staff direct weighted" = staff_direct_order_weighted0,
                                "turnover weighted"= model_turnover_weighted0, 
                                "turnover direct weighted" = turnover_direct_order_weighted0),
                               coef_omit = "region", exponentiate = F,
                               statistic = "({p.value}) {stars}")
old_models
full weighted staffing weighted staff direct weighted turnover weighted turnover direct weighted
Inadequate|Req improv -5.019 -4.891 -5.084
(<0.001) *** (<0.001) *** (<0.001) ***
Req improv|Good -2.167 -2.047 -2.159
(<0.001) *** (<0.001) *** (<0.001) ***
Good|Outstanding 3.076 3.201 3.119
(<0.001) *** (<0.001) *** (<0.001) ***
formCIC 0.257 0.499 0.137 -7.604 0.168
(0.393) (0.095) + (0.664) (0.382) (0.688)
formGOV 0.197 0.882 0.083 -18.707 0.147
(0.182) (<0.001) *** (0.582) (<0.001) *** (0.329)
formIND -0.277 -0.152 -0.215 -11.676 -0.280
(0.003) ** (0.121) (0.035) * (<0.001) *** (0.010) **
formNPO 0.315 0.499 0.242 -6.739 0.305
(<0.001) *** (<0.001) *** (<0.001) *** (<0.001) *** (<0.001) ***
service_type_selectedcare home w/o nursing 0.134 0.098 0.165 -5.770 0.115
(0.027) * (0.116) (0.010) * (<0.001) *** (0.103)
service_type_selectedDomicilary Care 0.504 -0.589 0.604 3.380 0.584
(<0.001) *** (<0.001) *** (<0.001) *** (0.050) * (<0.001) ***
service_type_selectedSupported Living 0.513 1.237 0.550 -3.891 0.519
(<0.001) *** (<0.001) *** (<0.001) *** (0.194) (<0.001) ***
during_covidTRUE -1.787 -0.111 -1.760 2.134 -1.738
(<0.001) *** (0.034) * (<0.001) *** (0.098) + (<0.001) ***
(Intercept) 1.687 33.743
(<0.001) *** (<0.001) ***
staff_level0 0.059
(<0.001) ***
turnover0 -0.001
(0.174)
Num.Obs. 12521 5984 11143 5087 9503
R2 0.073 0.029
R2 Adj. 0.071 0.026
AIC 15037.6 24161.1 13282.2 52275.9 11154.4
BIC 15178.9 24281.6 13428.6 52393.5 11297.6
Log.Lik. -12062.547 -26119.933
RMSE 2.27 1.87 2.27 39.64 2.27

Models for other domains

“Overall”,“Safe”,“Effective”, “Caring”, “Well-led”, “Responsive”

“Safe” domain

model_order_weighted_safe <- clm(rating ~ form + service_type_selected + region + during_covid,
                data = filter(cqc_skills, domain == "Safe"),
                link = "logit",
                weights = ipw)

model_staff_weighted_safe <- lm(staff_level ~ form + service_type_selected + region + during_covid,
                data = filter(cqc_skills, domain == "Safe"),
                weights = ipw)

staff_direct_order_weighted_safe <- clm(rating ~ form + staff_level + service_type_selected + region + during_covid,
                data = filter(cqc_skills, domain == "Safe"),
                link = "logit",
                weights = ipw)

model_turnover_weighted_safe <- lm(turnover ~ form + service_type_selected+ region + during_covid,
                data = filter(cqc_skills, domain == "Safe"),
                weights = ipw)

turnover_direct_order_weighted_safe <- clm(rating ~ form + turnover + service_type_selected + region + during_covid,
                data = filter(cqc_skills, domain == "Safe"),
                link = "logit",
                weights = ipw)
safe_models <- modelsummary(list("full weighted" = model_order_weighted_safe,  
                                "staffing weighted"= model_staff_weighted_safe,
                                "staff direct weighted" = staff_direct_order_weighted_safe,
                                "turnover weighted"= model_turnover_weighted_safe, 
                                "turnover direct weighted" = turnover_direct_order_weighted_safe),
                               coef_omit = "region", exponentiate = F,
                               statistic = "({p.value}) {stars}")
safe_models
full weighted staffing weighted staff direct weighted turnover weighted turnover direct weighted
Inadequate|Req improv -4.416 -4.264 -4.486
(<0.001) *** (<0.001) *** (<0.001) ***
Req improv|Good -1.604 -1.413 -1.540
(<0.001) *** (<0.001) *** (<0.001) ***
Good|Outstanding 6.117 6.393 6.063
(<0.001) *** (<0.001) *** (<0.001) ***
formCIC 0.158 0.492 -0.059 -12.767 -0.237
(0.644) (0.049) * (0.865) (0.537) (0.585)
formGOV 0.369 0.708 0.222 -22.312 0.321
(0.034) * (<0.001) *** (0.210) (0.003) ** (0.066) +
formIND -0.250 -0.222 -0.147 -14.033 -0.310
(0.010) ** (0.007) ** (0.166) (0.011) * (0.005) **
formNPO 0.523 0.418 0.437 -9.565 0.463
(<0.001) *** (<0.001) *** (<0.001) *** (0.018) * (<0.001) ***
service_type_selectedcare home w/o nursing 0.286 0.316 0.288 -8.578 0.328
(<0.001) *** (<0.001) *** (<0.001) *** (0.019) * (<0.001) ***
service_type_selectedDomicilary Care 0.628 -0.166 0.700 4.902 0.662
(<0.001) *** (0.005) ** (<0.001) *** (0.230) (<0.001) ***
service_type_selectedSupported Living 0.933 1.390 0.816 -8.269 0.923
(<0.001) *** (<0.001) *** (<0.001) *** (0.245) (<0.001) ***
during_covidTRUE -1.463 -0.119 -1.438 5.839 -1.429
(<0.001) *** (0.006) ** (<0.001) *** (0.057) + (<0.001) ***
(Intercept) 1.006 43.991
(<0.001) *** (<0.001) ***
staff_level 0.161
(<0.001) ***
turnover 0.000
(0.428)
Num.Obs. 12491 5984 11116 5085 9474
R2 0.075 0.011
R2 Adj. 0.073 0.008
AIC 12260.6 22009.7 10690.1 61048.2 9126.3
BIC 12401.9 22130.3 10836.4 61165.9 9269.4
Log.Lik. -10986.858 -30506.119
RMSE 2.11 1.58 2.11 93.27 2.11

“Effective domain”

model_order_weighted_effective <- clm(rating ~ form + service_type_selected + region + during_covid,
                data = filter(cqc_skills, domain == "Effective"),
                link = "logit",
                weights = ipw)

model_staff_weighted_effective <- lm(staff_level ~ form + service_type_selected + region + during_covid,
                data = filter(cqc_skills, domain == "Effective"),
                weights = ipw)

staff_direct_order_weighted_effective <- clm(rating ~ form + staff_level + service_type_selected + region + during_covid,
                data = filter(cqc_skills, domain == "Effective"),
                link = "logit",
                weights = ipw)

model_turnover_weighted_effective <- lm(turnover ~ form + service_type_selected+ region + during_covid,
                data = filter(cqc_skills, domain == "Effective"),
                weights = ipw)

turnover_direct_order_weighted_effective <- clm(rating ~ form + turnover + service_type_selected + region + during_covid,
                data = filter(cqc_skills, domain == "Effective"),
                link = "logit",
                weights = ipw)
effective_models <- modelsummary(list("full weighted" = model_order_weighted_effective,  
                                "staffing weighted"= model_staff_weighted_effective,
                                "staff direct weighted" = staff_direct_order_weighted_effective,
                                "turnover weighted"= model_turnover_weighted_effective, 
                                "turnover direct weighted" = turnover_direct_order_weighted_effective),
                               coef_omit = "region", exponentiate = F,
                               statistic = "({p.value}) {stars}")
effective_models
full weighted staffing weighted staff direct weighted turnover weighted turnover direct weighted
Inadequate|Req improv -5.989 -6.048 -6.151
(<0.001) *** (<0.001) *** (<0.001) ***
Req improv|Good -2.094 -2.003 -2.116
(<0.001) *** (<0.001) *** (<0.001) ***
Good|Outstanding 4.657 4.754 4.615
(<0.001) *** (<0.001) *** (<0.001) ***
formCIC -0.045 0.492 -0.218 -12.767 0.042
(0.905) (0.049) * (0.574) (0.537) (0.937)
formGOV 0.230 0.708 0.068 -22.312 0.158
(0.255) (<0.001) *** (0.737) (0.003) ** (0.437)
formIND -0.393 -0.222 -0.186 -14.033 -0.206
(<0.001) *** (0.007) ** (0.156) (0.011) * (0.135)
formNPO 0.256 0.418 0.153 -9.565 0.205
(0.005) ** (<0.001) *** (0.115) (0.018) * (0.056) +
service_type_selectedcare home w/o nursing 0.335 0.316 0.310 -8.578 0.245
(<0.001) *** (<0.001) *** (<0.001) *** (0.019) * (0.007) **
service_type_selectedDomicilary Care 0.565 -0.166 0.620 4.902 0.582
(<0.001) *** (0.005) ** (<0.001) *** (0.230) (<0.001) ***
service_type_selectedSupported Living 0.687 1.390 0.736 -8.269 0.702
(<0.001) *** (<0.001) *** (<0.001) *** (0.245) (<0.001) ***
during_covidTRUE -1.194 -0.119 -1.237 5.839 -1.173
(<0.001) *** (0.006) ** (<0.001) *** (0.057) + (<0.001) ***
(Intercept) 1.006 43.991
(<0.001) *** (<0.001) ***
staff_level 0.077
(<0.001) ***
turnover -0.001
(0.001) **
Num.Obs. 12047 5984 10733 5085 9135
R2 0.075 0.011
R2 Adj. 0.073 0.008
AIC 9032.9 22009.7 7943.5 61048.2 6748.6
BIC 9173.4 22130.3 8089.1 61165.9 6891.0
Log.Lik. -10986.858 -30506.119
RMSE 2.13 1.58 2.14 93.27 2.14

“Caring” domain

model_order_weighted_caring <- clm(rating ~ form + service_type_selected + region + during_covid,
                data = filter(cqc_skills, domain == "Caring"),
                link = "logit",
                weights = ipw)

model_staff_weighted_caring <- lm(staff_level ~ form + service_type_selected + region + during_covid,
                data = filter(cqc_skills, domain == "Caring"),
                weights = ipw)

staff_direct_order_weighted_caring <- clm(rating ~ form + staff_level + service_type_selected + region + during_covid,
                data = filter(cqc_skills, domain == "Caring"),
                link = "logit",
                weights = ipw)

model_turnover_weighted_caring <- lm(turnover ~ form + service_type_selected+ region + during_covid,
                data = filter(cqc_skills, domain == "Caring"),
                weights = ipw)

turnover_direct_order_weighted_caring <- clm(rating ~ form + turnover + service_type_selected + region + during_covid,
                data = filter(cqc_skills, domain == "Caring"),
                link = "logit",
                weights = ipw)
caring_models <- modelsummary(list("full weighted" = model_order_weighted_caring,  
                                "staffing weighted"= model_staff_weighted_caring,
                                "staff direct weighted" = staff_direct_order_weighted_caring,
                                "turnover weighted"= model_turnover_weighted_caring, 
                                "turnover direct weighted" = turnover_direct_order_weighted_caring),
                               coef_omit = "region", exponentiate = F,
                               statistic = "({p.value}) {stars}")
caring_models
full weighted staffing weighted staff direct weighted turnover weighted turnover direct weighted
Inadequate|Req improv -7.439 -7.244 -7.240
(<0.001) *** (<0.001) *** (<0.001) ***
Req improv|Good -3.174 -3.157 -3.398
(<0.001) *** (<0.001) *** (<0.001) ***
Good|Outstanding 3.486 3.498 3.410
(<0.001) *** (<0.001) *** (<0.001) ***
formCIC 0.692 0.492 0.668 -12.767 -0.058
(0.044) * (0.049) * (0.058) + (0.537) (0.912)
formGOV 0.060 0.708 -0.065 -22.312 0.035
(0.766) (<0.001) *** (0.756) (0.003) ** (0.867)
formIND 0.081 -0.222 0.145 -14.033 0.269
(0.550) (0.007) ** (0.310) (0.011) * (0.074) +
formNPO 0.241 0.418 0.245 -9.565 0.374
(0.009) ** (<0.001) *** (0.012) * (0.018) * (<0.001) ***
service_type_selectedcare home w/o nursing 0.334 0.316 0.271 -8.578 0.152
(<0.001) *** (<0.001) *** (0.006) ** (0.019) * (0.164)
service_type_selectedDomicilary Care 0.813 -0.166 0.819 4.902 0.798
(<0.001) *** (0.005) ** (<0.001) *** (0.230) (<0.001) ***
service_type_selectedSupported Living 0.775 1.390 0.729 -8.269 0.668
(<0.001) *** (<0.001) *** (<0.001) *** (0.245) (<0.001) ***
during_covidTRUE -1.107 -0.119 -1.076 5.839 -1.146
(<0.001) *** (0.006) ** (<0.001) *** (0.057) + (<0.001) ***
(Intercept) 1.006 43.991
(<0.001) *** (<0.001) ***
staff_level 0.019
(0.305)
turnover 0.000
(0.400)
Num.Obs. 11961 5984 10666 5085 9084
R2 0.075 0.011
R2 Adj. 0.073 0.008
AIC 8092.8 22009.7 7260.4 61048.2 5979.6
BIC 8233.2 22130.3 7405.9 61165.9 6121.9
Log.Lik. -10986.858 -30506.119
RMSE 2.24 1.58 2.25 93.27 2.24

“Well-led” domain

model_order_weighted_well_led <- clm(rating ~ form + service_type_selected + region + during_covid,
                data = filter(cqc_skills, domain == "Well-led"),
                link = "logit",
                weights = ipw)

model_staff_weighted_well_led <- lm(staff_level ~ form + service_type_selected + region + during_covid,
                data = filter(cqc_skills, domain == "Well-led"),
                weights = ipw)

staff_direct_order_weighted_well_led <- clm(rating ~ form + staff_level + service_type_selected + region + during_covid,
                data = filter(cqc_skills, domain == "Well-led"),
                link = "logit",
                weights = ipw)

model_turnover_weighted_well_led <- lm(turnover ~ form + service_type_selected+ region + during_covid,
                data = filter(cqc_skills, domain == "Well-led"),
                weights = ipw)

turnover_direct_order_weighted_well_led <- clm(rating ~ form + turnover + service_type_selected + region + during_covid,
                data = filter(cqc_skills, domain == "Well-led"),
                link = "logit",
                weights = ipw)
well_led_models <- modelsummary(list("full weighted" = model_order_weighted_well_led,  
                                "staffing weighted"= model_staff_weighted_well_led,
                                "staff direct weighted" = staff_direct_order_weighted_well_led,
                                "turnover weighted"= model_turnover_weighted_well_led, 
                                "turnover direct weighted" = turnover_direct_order_weighted_well_led),
                               coef_omit = "region", exponentiate = F,
                               statistic = "({p.value}) {stars}")
well_led_models
full weighted staffing weighted staff direct weighted turnover weighted turnover direct weighted
Inadequate|Req improv -4.496 -4.397 -4.458
(<0.001) *** (<0.001) *** (<0.001) ***
Req improv|Good -1.655 -1.542 -1.623
(<0.001) *** (<0.001) *** (<0.001) ***
Good|Outstanding 3.134 3.227 3.211
(<0.001) *** (<0.001) *** (<0.001) ***
formCIC 0.524 0.492 0.391 -12.767 0.143
(0.069) + (0.049) * (0.196) (0.537) (0.720)
formGOV 0.179 0.708 0.050 -22.312 0.126
(0.195) (<0.001) *** (0.722) (0.003) ** (0.370)
formIND -0.344 -0.222 -0.286 -14.033 -0.359
(<0.001) *** (0.007) ** (0.002) ** (0.011) * (<0.001) ***
formNPO 0.358 0.418 0.280 -9.565 0.362
(<0.001) *** (<0.001) *** (<0.001) *** (0.018) * (<0.001) ***
service_type_selectedcare home w/o nursing 0.173 0.316 0.163 -8.578 0.154
(0.002) ** (<0.001) *** (0.006) ** (0.019) * (0.018) *
service_type_selectedDomicilary Care 0.504 -0.166 0.559 4.902 0.597
(<0.001) *** (0.005) ** (<0.001) *** (0.230) (<0.001) ***
service_type_selectedSupported Living 0.426 1.390 0.455 -8.269 0.441
(<0.001) *** (<0.001) *** (<0.001) *** (0.245) (<0.001) ***
during_covidTRUE -1.505 -0.119 -1.462 5.839 -1.468
(<0.001) *** (0.006) ** (<0.001) *** (0.057) + (<0.001) ***
(Intercept) 1.006 43.991
(<0.001) *** (<0.001) ***
staff_level 0.083
(<0.001) ***
turnover 0.000
(0.057) +
Num.Obs. 12500 5984 11124 5085 9483
R2 0.075 0.011
R2 Adj. 0.073 0.008
AIC 17226.4 22009.7 15295.4 61048.2 12817.2
BIC 17367.6 22130.3 15441.8 61165.9 12960.3
Log.Lik. -10986.858 -30506.119
RMSE 2.27 1.58 2.28 93.27 2.28

“Responsive” domain

model_order_weighted_responsive <- clm(rating ~ form + service_type_selected + region + during_covid,
                data = filter(cqc_skills, domain == "Responsive"),
                link = "logit",
                weights = ipw)

model_staff_weighted_responsive <- lm(staff_level ~ form + service_type_selected + region + during_covid,
                data = filter(cqc_skills, domain == "Responsive"),
                weights = ipw)

staff_direct_order_weighted_responsive <- clm(rating ~ form + staff_level + service_type_selected + region + during_covid,
                data = filter(cqc_skills, domain == "Responsive"),
                link = "logit",
                weights = ipw)

model_turnover_weighted_responsive <- lm(turnover ~ form + service_type_selected+ region + during_covid,
                data = filter(cqc_skills, domain == "Responsive"),
                weights = ipw)

turnover_direct_order_weighted_responsive <- clm(rating ~ form + turnover + service_type_selected + region + during_covid,
                data = filter(cqc_skills, domain == "Responsive"),
                link = "logit",
                weights = ipw)
responsive_models <- modelsummary(list("full weighted" = model_order_weighted_responsive,  
                                "staffing weighted"= model_staff_weighted_responsive,
                                "staff direct weighted" = staff_direct_order_weighted_responsive,
                                "turnover weighted"= model_turnover_weighted_responsive, 
                                "turnover direct weighted" = turnover_direct_order_weighted_responsive),
                               coef_omit = "region", exponentiate = F,
                               statistic = "({p.value}) {stars}")
responsive_models
full weighted staffing weighted staff direct weighted turnover weighted turnover direct weighted
Inadequate|Req improv -6.781 -6.540 -6.425
(<0.001) *** (<0.001) *** (<0.001) ***
Req improv|Good -2.226 -2.149 -2.251
(<0.001) *** (<0.001) *** (<0.001) ***
Good|Outstanding 3.244 3.332 3.289
(<0.001) *** (<0.001) *** (<0.001) ***
formCIC -0.281 0.492 -0.422 -12.767 -0.335
(0.384) (0.049) * (0.214) (0.537) (0.454)
formGOV 0.149 0.708 0.011 -22.312 0.126
(0.369) (<0.001) *** (0.947) (0.003) ** (0.462)
formIND 0.065 -0.222 0.132 -14.033 0.118
(0.559) (0.007) ** (0.269) (0.011) * (0.357)
formNPO 0.315 0.418 0.296 -9.565 0.328
(<0.001) *** (<0.001) *** (<0.001) *** (0.018) * (<0.001) ***
service_type_selectedcare home w/o nursing 0.603 0.316 0.615 -8.578 0.525
(<0.001) *** (<0.001) *** (<0.001) *** (0.019) * (<0.001) ***
service_type_selectedDomicilary Care 0.571 -0.166 0.672 4.902 0.669
(<0.001) *** (0.005) ** (<0.001) *** (0.230) (<0.001) ***
service_type_selectedSupported Living 0.931 1.390 0.955 -8.269 0.871
(<0.001) *** (<0.001) *** (<0.001) *** (0.245) (<0.001) ***
during_covidTRUE -0.811 -0.119 -0.758 5.839 -0.687
(<0.001) *** (0.006) ** (<0.001) *** (0.057) + (<0.001) ***
(Intercept) 1.006 43.991
(<0.001) *** (<0.001) ***
staff_level 0.062
(<0.001) ***
turnover 0.000
(0.946)
Num.Obs. 12026 5984 10718 5085 9123
R2 0.075 0.011
R2 Adj. 0.073 0.008
AIC 11565.1 22009.7 10279.6 61048.2 8558.2
BIC 11705.6 22130.3 10425.2 61165.9 8700.6
Log.Lik. -10986.858 -30506.119
RMSE 2.30 1.58 2.30 93.27 2.29