# 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
First, import the sampled and coded data set
#import the raw data file
socialcare_sk <- read_csv("data/cqc_sfc_cleaned.csv")
socialcare <- socialcare_sk %>%
# recode legal form types to be more readable / easier to present
mutate(inherited = ifelse(inherited == "Y", TRUE, FALSE),
rating = recode(rating,
"Insufficient evidence to rate" = "NA",
"Requires improvement" = "Req improv")) %>%
# set the order of the values in the factors
mutate(form = ordered(form, levels = c("FPO", "NPO", "GOV", "CIC", "IND")),
# assume the order of the ratings as follows but need to double check with the source
rating = ordered(rating, levels = c("Inadequate","Req improv", "Good", "Outstanding"))) %>%
# adding the rating data coded as numerical
mutate(rating_num = case_when(rating == "Inadequate" ~ 1,
rating == "Req improv" ~ 2,
rating == "Good" ~ 3,
rating == "Outstanding" ~ 4)) %>%
mutate(category = case_when(primary_cat == "Community based adult social care services" ~ "community",
primary_cat == "Residential social care" ~ "residential",
TRUE ~ as.character(NA)),
# deriving year column and dummy variable for before_covid
year = year(publication_date),
after_covid = ifelse(year >= 2020, TRUE, FALSE),
before_covid = ifelse(year <= 2019, TRUE, FALSE)) %>%
# converting the ordinal variable to numerical
mutate(rating_num = case_when(rating == "Inadequate" ~ 1,
rating == "Req improv" ~ 2,
rating == "Good" ~ 3,
rating == "Outstanding" ~ 4)) %>%
# derive the rating dummy
mutate(rating_higher = ifelse(rating_num > 2, 1, 0))
The OLS models and the ordered logit models can be written as follows
\(rating_{numerical} = \beta_0 + \beta_1form + \beta_2category+ \beta_3region + \beta_4inherited + u\)
\(log-odds(rating_{ordinal} \leq j) = \beta_{j0} + \beta_1form + \beta_2category+ \beta_3region + \beta_4inherited + u\)
In this section, we first run the OLS models. In the OLS models, we kind of “cheat” R by treating the four rating levels with orders as if they are numbers 1-4. There are the flowing reasons that we report the results from OLS models, even though the more suitable methods should be ordered logit models, about which we will discuss in a while.
# run the model loops with nest() method
models_ols <- socialcare %>%
group_by(domain) %>%
nest()%>%
mutate(ols_models = map(data,
~lm(rating_num ~ form + age + capacity +
category + region + inherited ,
data = .x))) %>%
mutate(results = map(ols_models, ~tidy(.x, conf.int = TRUE))) %>%
pull(ols_models, name = domain)
# run the model loops with nest() method
# add before_covid as control
# add also interaction term
table_ols <- modelsummary(models_ols, statistic = "({p.value}) {stars}")
## Warning in !is.null(rmarkdown::metadata$output) && rmarkdown::metadata$output
## %in% : 'length(x) = 3 > 1' in coercion to 'logical(1)'
table_ols
| Safe | Effective | Caring | Responsive | Well-led | Overall | |
|---|---|---|---|---|---|---|
| (Intercept) | 2.813*** | 2.903*** | 3.009*** | 2.950*** | 2.826*** | 2.891*** |
| (0.000) *** | (0.000) *** | (0.000) *** | (0.000) *** | (0.000) *** | (0.000) *** | |
| formNPO | 0.071*** | 0.029** | 0.021* | 0.047*** | 0.073*** | 0.055*** |
| (0.000) *** | (0.003) ** | (0.024) * | (0.000) *** | (0.000) *** | (0.000) *** | |
| formGOV | 0.072*** | 0.030+ | 0.008 | 0.026 | 0.044 | 0.039 |
| (0.001) *** | (0.085) + | (0.613) | (0.195) | (0.105) | (0.112) | |
| formCIC | 0.053 | −0.005 | 0.075+ | −0.008 | 0.141* | 0.084 |
| (0.340) | (0.906) | (0.074) + | (0.884) | (0.044) * | (0.182) | |
| formIND | 0.002 | −0.018 | 0.021 | 0.031 | −0.027 | −0.007 |
| (0.945) | (0.348) | (0.259) | (0.172) | (0.378) | (0.815) | |
| age | 0.006*** | 0.003*** | 0.004*** | 0.006*** | 0.010*** | 0.008*** |
| (0.000) *** | (0.001) *** | (0.000) *** | (0.000) *** | (0.000) *** | (0.000) *** | |
| capacity | −0.001*** | −0.001*** | 0.000+ | −0.001*** | −0.001*** | −0.001*** |
| (0.000) *** | (0.000) *** | (0.066) + | (0.000) *** | (0.000) *** | (0.000) *** | |
| categoryresidential | −0.048*** | −0.025** | −0.054*** | −0.028* | −0.081*** | −0.070*** |
| (0.000) *** | (0.008) ** | (0.000) *** | (0.010) * | (0.000) *** | (0.000) *** | |
| regionEast of England | −0.008 | 0.018 | 0.000 | 0.014 | −0.037 | −0.023 |
| (0.714) | (0.307) | (0.992) | (0.483) | (0.173) | (0.348) | |
| regionLondon | −0.002 | 0.024 | −0.016 | −0.024 | −0.030 | −0.026 |
| (0.915) | (0.192) | (0.374) | (0.276) | (0.309) | (0.328) | |
| regionNorth East | 0.073** | 0.085*** | 0.072*** | 0.064* | 0.141*** | 0.109*** |
| (0.009) ** | (0.000) *** | (0.001) *** | (0.013) * | (0.000) *** | (0.001) *** | |
| regionNorth West | 0.022 | 0.053** | 0.023 | 0.032 | 0.035 | 0.023 |
| (0.295) | (0.002) ** | (0.157) | (0.102) | (0.184) | (0.351) | |
| regionSouth East | 0.043* | 0.024 | 0.019 | 0.023 | 0.006 | 0.000 |
| (0.030) * | (0.123) | (0.204) | (0.211) | (0.804) | (0.992) | |
| regionSouth West | 0.068** | 0.056*** | 0.084*** | 0.076*** | 0.094*** | 0.087*** |
| (0.001) ** | (0.001) *** | (0.000) *** | (0.000) *** | (0.000) *** | (0.000) *** | |
| regionWest Midlands | −0.011 | 0.018 | −0.015 | 0.001 | −0.077** | −0.045+ |
| (0.627) | (0.294) | (0.353) | (0.979) | (0.005) ** | (0.068) + | |
| regionYorkshire and The Humber | −0.032 | 0.023 | 0.024 | 0.000 | −0.065* | −0.052* |
| (0.152) | (0.199) | (0.157) | (0.988) | (0.021) * | (0.043) * | |
| Num.Obs. | 6513 | 6516 | 6507 | 6523 | 6510 | 6504 |
| R2 | 0.034 | 0.014 | 0.024 | 0.019 | 0.038 | 0.033 |
| R2 Adj. | 0.031 | 0.012 | 0.022 | 0.017 | 0.036 | 0.031 |
| AIC | 6388.7 | 3428.8 | 2583.8 | 5474.0 | 9302.1 | 8015.0 |
| BIC | 6503.9 | 3544.1 | 2699.1 | 5589.3 | 9417.4 | 8130.2 |
| Log.Lik. | −3177.325 | −1697.416 | −1274.897 | −2719.994 | −4634.039 | −3990.492 |
| RMSE | 0.39 | 0.31 | 0.29 | 0.37 | 0.49 | 0.45 |
# run the model loops with nest() method
# add after_covid as control
models_ols_covid <- socialcare %>%
group_by(domain) %>%
nest()%>%
mutate(ols_models = map(data,
~lm(rating_num ~ form + after_covid + age + capacity +
category + region + inherited,
data = .x))) %>%
mutate(results = map(ols_models, ~tidy(.x, conf.int = TRUE))) %>%
pull(ols_models, name = domain)
table_ols_covid <- modelsummary(models_ols_covid, statistic = "({p.value}) {stars}")
table_ols_covid
| Safe | Effective | Caring | Responsive | Well-led | Overall | |
|---|---|---|---|---|---|---|
| (Intercept) | 2.894*** | 2.933*** | 3.027*** | 2.972*** | 2.932*** | 2.993*** |
| (0.000) *** | (0.000) *** | (0.000) *** | (0.000) *** | (0.000) *** | (0.000) *** | |
| formNPO | 0.055*** | 0.024* | 0.018+ | 0.043*** | 0.051*** | 0.033* |
| (0.000) *** | (0.017) * | (0.051) + | (0.000) *** | (0.001) *** | (0.015) * | |
| formGOV | 0.055** | 0.026 | 0.006 | 0.024 | 0.022 | 0.019 |
| (0.009) ** | (0.133) | (0.704) | (0.242) | (0.405) | (0.426) | |
| formCIC | 0.036 | −0.006 | 0.075+ | −0.008 | 0.118+ | 0.062 |
| (0.507) | (0.891) | (0.070) + | (0.883) | (0.081) + | (0.305) | |
| formIND | −0.022 | −0.029 | 0.015 | 0.024 | −0.058+ | −0.036 |
| (0.351) | (0.135) | (0.410) | (0.294) | (0.052) + | (0.185) | |
| after_covidTRUE | −0.224*** | −0.113*** | −0.071*** | −0.082*** | −0.297*** | −0.289*** |
| (0.000) *** | (0.000) *** | (0.000) *** | (0.000) *** | (0.000) *** | (0.000) *** | |
| age | 0.004*** | 0.002** | 0.004*** | 0.005*** | 0.008*** | 0.006*** |
| (0.000) *** | (0.008) ** | (0.000) *** | (0.000) *** | (0.000) *** | (0.000) *** | |
| capacity | −0.001*** | −0.001*** | 0.000+ | −0.001*** | −0.001*** | −0.001*** |
| (0.000) *** | (0.000) *** | (0.098) + | (0.000) *** | (0.000) *** | (0.000) *** | |
| categoryresidential | −0.047*** | −0.024** | −0.054*** | −0.028* | −0.080*** | −0.067*** |
| (0.000) *** | (0.009) ** | (0.000) *** | (0.011) * | (0.000) *** | (0.000) *** | |
| regionEast of England | −0.009 | 0.018 | 0.000 | 0.015 | −0.038 | −0.023 |
| (0.674) | (0.286) | (0.988) | (0.454) | (0.150) | (0.319) | |
| regionLondon | −0.007 | 0.023 | −0.017 | −0.024 | −0.035 | −0.031 |
| (0.750) | (0.216) | (0.326) | (0.263) | (0.222) | (0.229) | |
| regionNorth East | 0.085** | 0.093*** | 0.076*** | 0.070** | 0.157*** | 0.127*** |
| (0.002) ** | (0.000) *** | (0.000) *** | (0.007) ** | (0.000) *** | (0.000) *** | |
| regionNorth West | 0.019 | 0.052** | 0.021 | 0.031 | 0.031 | 0.018 |
| (0.363) | (0.002) ** | (0.192) | (0.121) | (0.225) | (0.436) | |
| regionSouth East | 0.039* | 0.025 | 0.019 | 0.024 | 0.002 | −0.004 |
| (0.042) * | (0.104) | (0.197) | (0.189) | (0.934) | (0.866) | |
| regionSouth West | 0.062** | 0.057*** | 0.083*** | 0.076*** | 0.088*** | 0.081*** |
| (0.002) ** | (0.001) *** | (0.000) *** | (0.000) *** | (0.001) *** | (0.000) *** | |
| regionWest Midlands | −0.017 | 0.018 | −0.015 | 0.000 | −0.085** | −0.053* |
| (0.416) | (0.294) | (0.341) | (0.987) | (0.001) ** | (0.025) * | |
| regionYorkshire and The Humber | −0.035 | 0.024 | 0.024 | 0.000 | −0.068* | −0.055* |
| (0.108) | (0.180) | (0.159) | (0.989) | (0.012) * | (0.026) * | |
| Num.Obs. | 6513 | 6516 | 6507 | 6523 | 6510 | 6504 |
| R2 | 0.094 | 0.035 | 0.033 | 0.027 | 0.106 | 0.112 |
| R2 Adj. | 0.092 | 0.032 | 0.030 | 0.025 | 0.104 | 0.110 |
| AIC | 5970.1 | 3291.3 | 2526.6 | 5424.3 | 8828.5 | 7463.7 |
| BIC | 6092.2 | 3413.4 | 2648.6 | 5546.4 | 8950.5 | 7585.7 |
| Log.Lik. | −2967.074 | −1627.666 | −1245.281 | −2694.140 | −4396.231 | −3713.826 |
| RMSE | 0.38 | 0.31 | 0.29 | 0.37 | 0.48 | 0.43 |
model_order_overall <- clm(rating ~ form + category + region + inherited + age + capacity,
data = filter(socialcare, domain == "Overall"),
link = "logit")
model_order_safe <- clm(rating ~ form + category + region + inherited + age + capacity,
data = filter(socialcare, domain == "Safe"),
link = "logit")
model_order_effective <- clm(rating ~ form + category + region + inherited + age + capacity,
data = filter(socialcare, domain == "Effective"),
link = "logit")
model_order_caring <- clm(rating ~ form + category + region + inherited + age + capacity,
data = filter(socialcare, domain == "Caring"),
link = "logit")
model_order_well_led <- clm(rating ~ form + category + region + inherited + age + capacity,
data = filter(socialcare, domain == "Well-led"),
link = "logit")
model_order_responsive <- clm(rating ~ form + category + region + inherited + age + capacity,
data = filter(socialcare, domain == "Responsive"),
link = "logit")
ordinal_models <- modelsummary(list("overall" = model_order_overall, "safe" = model_order_safe,
"effective" = model_order_effective, "caring"= model_order_caring,
"well-led" = model_order_well_led, "responsive" = model_order_responsive),
coef_omit = "region", exponentiate = F,
statistic = "({p.value}) {stars}")
ordinal_models
| overall | safe | effective | caring | well-led | responsive | |
|---|---|---|---|---|---|---|
| Inadequate|Req improv | −4.706*** | −4.501*** | −6.362*** | −7.936*** | −4.289*** | −6.803*** |
| (0.000) *** | (0.000) *** | (0.000) *** | (0.000) *** | (0.000) *** | (0.000) *** | |
| Req improv|Good | −1.845*** | −1.612*** | −2.190*** | −3.372*** | −1.422*** | −2.296*** |
| (0.000) *** | (0.000) *** | (0.000) *** | (0.000) *** | (0.000) *** | (0.000) *** | |
| Good|Outstanding | 3.051*** | 5.721*** | 4.338*** | 3.161*** | 3.135*** | 3.099*** |
| (0.000) *** | (0.000) *** | (0.000) *** | (0.000) *** | (0.000) *** | (0.000) *** | |
| formNPO | 0.315*** | 0.576*** | 0.339** | 0.241* | 0.363*** | 0.371*** |
| (0.000) *** | (0.000) *** | (0.002) ** | (0.029) * | (0.000) *** | (0.000) *** | |
| formGOV | 0.187 | 0.516** | 0.317 | 0.096 | 0.191 | 0.209 |
| (0.194) | (0.004) ** | (0.109) | (0.619) | (0.154) | (0.195) | |
| formCIC | 0.491 | 0.376 | −0.065 | 0.738+ | 0.712* | −0.059 |
| (0.189) | (0.409) | (0.891) | (0.076) + | (0.049) * | (0.888) | |
| formIND | −0.061 | −0.018 | −0.195 | 0.248 | −0.147 | 0.249 |
| (0.702) | (0.912) | (0.321) | (0.254) | (0.304) | (0.172) | |
| categoryresidential | −0.416*** | −0.409*** | −0.313** | −0.636*** | −0.408*** | −0.218* |
| (0.000) *** | (0.000) *** | (0.002) ** | (0.000) *** | (0.000) *** | (0.012) * | |
| age | 0.048*** | 0.038*** | 0.027** | 0.048*** | 0.047*** | 0.047*** |
| (0.000) *** | (0.000) *** | (0.002) ** | (0.000) *** | (0.000) *** | (0.000) *** | |
| capacity | −0.007*** | −0.009*** | −0.007*** | −0.003+ | −0.005*** | −0.006*** |
| (0.000) *** | (0.000) *** | (0.000) *** | (0.092) + | (0.000) *** | (0.000) *** | |
| Num.Obs. | 6504 | 6513 | 6516 | 6507 | 6510 | 6523 |
| AIC | 7987.7 | 6171.2 | 4896.4 | 4532.1 | 9094.0 | 6351.7 |
| BIC | 8109.7 | 6293.3 | 5018.5 | 4654.2 | 9216.1 | 6473.8 |
| RMSE | 2.28 | 2.11 | 2.13 | 2.24 | 2.28 | 2.30 |
ordinal_models_exp <- modelsummary(list("overall" = model_order_overall, "safe" = model_order_safe,
"effective" = model_order_effective, "caring"= model_order_caring,
"well-led" = model_order_well_led, "responsive" = model_order_responsive),
coef_omit = "region", exponentiate = T,
statistic = "({p.value}) {stars}")
ordinal_models_exp
| overall | safe | effective | caring | well-led | responsive | |
|---|---|---|---|---|---|---|
| Inadequate|Req improv | 0.009*** | 0.011*** | 0.002*** | 0.000*** | 0.014*** | 0.001*** |
| (0.000) *** | (0.000) *** | (0.000) *** | (0.000) *** | (0.000) *** | (0.000) *** | |
| Req improv|Good | 0.158*** | 0.200*** | 0.112*** | 0.034*** | 0.241*** | 0.101*** |
| (0.000) *** | (0.000) *** | (0.000) *** | (0.000) *** | (0.000) *** | (0.000) *** | |
| Good|Outstanding | 21.131*** | 305.345*** | 76.534*** | 23.589*** | 22.989*** | 22.168*** |
| (0.000) *** | (0.000) *** | (0.000) *** | (0.000) *** | (0.000) *** | (0.000) *** | |
| formNPO | 1.371*** | 1.779*** | 1.404** | 1.272* | 1.438*** | 1.450*** |
| (0.000) *** | (0.000) *** | (0.002) ** | (0.029) * | (0.000) *** | (0.000) *** | |
| formGOV | 1.206 | 1.675** | 1.373 | 1.101 | 1.211 | 1.233 |
| (0.194) | (0.004) ** | (0.109) | (0.619) | (0.154) | (0.195) | |
| formCIC | 1.634 | 1.457 | 0.937 | 2.093+ | 2.038* | 0.943 |
| (0.189) | (0.409) | (0.891) | (0.076) + | (0.049) * | (0.888) | |
| formIND | 0.941 | 0.982 | 0.823 | 1.282 | 0.863 | 1.283 |
| (0.702) | (0.912) | (0.321) | (0.254) | (0.304) | (0.172) | |
| categoryresidential | 0.660*** | 0.664*** | 0.731** | 0.530*** | 0.665*** | 0.804* |
| (0.000) *** | (0.000) *** | (0.002) ** | (0.000) *** | (0.000) *** | (0.012) * | |
| age | 1.049*** | 1.039*** | 1.027** | 1.049*** | 1.048*** | 1.048*** |
| (0.000) *** | (0.000) *** | (0.002) ** | (0.000) *** | (0.000) *** | (0.000) *** | |
| capacity | 0.993*** | 0.991*** | 0.993*** | 0.997+ | 0.995*** | 0.994*** |
| (0.000) *** | (0.000) *** | (0.000) *** | (0.092) + | (0.000) *** | (0.000) *** | |
| Num.Obs. | 6504 | 6513 | 6516 | 6507 | 6510 | 6523 |
| AIC | 7987.7 | 6171.2 | 4896.4 | 4532.1 | 9094.0 | 6351.7 |
| BIC | 8109.7 | 6293.3 | 5018.5 | 4654.2 | 9216.1 | 6473.8 |
| RMSE | 2.28 | 2.11 | 2.13 | 2.24 | 2.28 | 2.30 |
model_order_overall_covid <- clm(rating ~ form + after_covid + age + capacity +
category + region + inherited,
data = filter(socialcare, domain == "Overall"),
link = "logit")
## Warning: Using formula(x) is deprecated when x is a character vector of length > 1.
## Consider formula(paste(x, collapse = " ")) instead.
model_order_safe_covid <- clm(rating ~ form + after_covid + age + capacity +
category + region + inherited,
data = filter(socialcare, domain == "Safe"),
link = "logit")
## Warning: Using formula(x) is deprecated when x is a character vector of length > 1.
## Consider formula(paste(x, collapse = " ")) instead.
model_order_effective_covid <- clm(rating ~ form + after_covid + age + capacity +
category + region + inherited,
data = filter(socialcare, domain == "Effective"),
link = "logit")
## Warning: Using formula(x) is deprecated when x is a character vector of length > 1.
## Consider formula(paste(x, collapse = " ")) instead.
model_order_caring_covid <- clm(rating ~ form + after_covid + age + capacity +
category + region + inherited,
data = filter(socialcare, domain == "Caring"),
link = "logit")
## Warning: Using formula(x) is deprecated when x is a character vector of length > 1.
## Consider formula(paste(x, collapse = " ")) instead.
model_order_well_led_covid <- clm(rating ~ form + after_covid + age + capacity +
category + region + inherited,
data = filter(socialcare, domain == "Well-led"),
link = "logit")
## Warning: Using formula(x) is deprecated when x is a character vector of length > 1.
## Consider formula(paste(x, collapse = " ")) instead.
model_order_responsive_covid <- clm(rating ~ form + after_covid + age + capacity +
category + region + inherited,
data = filter(socialcare, domain == "Responsive"),
link = "logit")
## Warning: Using formula(x) is deprecated when x is a character vector of length > 1.
## Consider formula(paste(x, collapse = " ")) instead.
ordinal_models_covid <- modelsummary(list("overall" = model_order_overall_covid, "safe" = model_order_safe_covid,
"effective" = model_order_effective_covid, "caring"= model_order_caring_covid,
"well-led" = model_order_well_led_covid, "responsive" = model_order_responsive_covid),
coef_omit = "region", exponentiate = F,
statistic = "({p.value}) {stars}")
ordinal_models_covid
| overall | safe | effective | caring | well-led | responsive | |
|---|---|---|---|---|---|---|
| Inadequate|Req improv | −5.580*** | −5.179*** | −6.739*** | −8.239*** | −4.965*** | −7.015*** |
| (0.000) *** | (0.000) *** | (0.000) *** | (0.000) *** | (0.000) *** | (0.000) *** | |
| Req improv|Good | −2.599*** | −2.207*** | −2.537*** | −3.661*** | −1.993*** | −2.494*** |
| (0.000) *** | (0.000) *** | (0.000) *** | (0.000) *** | (0.000) *** | (0.000) *** | |
| Good|Outstanding | 2.675*** | 5.385*** | 4.147*** | 2.988*** | 2.800*** | 2.959*** |
| (0.000) *** | (0.000) *** | (0.000) *** | (0.000) *** | (0.000) *** | (0.000) *** | |
| formNPO | 0.210* | 0.485*** | 0.283* | 0.211+ | 0.281*** | 0.345*** |
| (0.014) * | (0.000) *** | (0.012) * | (0.057) + | (0.000) *** | (0.000) *** | |
| formGOV | 0.077 | 0.424* | 0.275 | 0.076 | 0.085 | 0.188 |
| (0.602) | (0.019) * | (0.168) | (0.697) | (0.534) | (0.245) | |
| formCIC | 0.360 | 0.251 | −0.060 | 0.730+ | 0.625+ | −0.064 |
| (0.347) | (0.587) | (0.899) | (0.082) + | (0.087) + | (0.877) | |
| formIND | −0.238 | −0.193 | −0.316 | 0.187 | −0.303* | 0.192 |
| (0.147) | (0.262) | (0.113) | (0.391) | (0.040) * | (0.294) | |
| after_covidTRUE | −1.642*** | −1.339*** | −1.055*** | −0.909*** | −1.350*** | −0.660*** |
| (0.000) *** | (0.000) *** | (0.000) *** | (0.000) *** | (0.000) *** | (0.000) *** | |
| age | 0.036*** | 0.028*** | 0.021* | 0.043*** | 0.037*** | 0.043*** |
| (0.000) *** | (0.000) *** | (0.017) * | (0.000) *** | (0.000) *** | (0.000) *** | |
| capacity | −0.005*** | −0.007*** | −0.006*** | −0.003 | −0.004*** | −0.006*** |
| (0.000) *** | (0.000) *** | (0.000) *** | (0.133) | (0.001) *** | (0.000) *** | |
| categoryresidential | −0.428*** | −0.415*** | −0.306** | −0.636*** | −0.423*** | −0.216* |
| (0.000) *** | (0.000) *** | (0.003) ** | (0.000) *** | (0.000) *** | (0.013) * | |
| Num.Obs. | 6504 | 6513 | 6516 | 6507 | 6510 | 6523 |
| AIC | 7483.0 | 5842.0 | 4775.8 | 4474.8 | 8677.5 | 6302.2 |
| BIC | 7611.9 | 5970.9 | 4904.7 | 4603.6 | 8806.4 | 6431.0 |
| RMSE | 2.27 | 2.10 | 2.13 | 2.24 | 2.27 | 2.30 |
ordinal_models_covid_exp <- modelsummary(list("overall" = model_order_overall_covid, "safe" = model_order_safe_covid,
"effective" = model_order_effective_covid, "caring"= model_order_caring_covid,
"well-led" = model_order_well_led_covid, "responsive" = model_order_responsive_covid),
coef_omit = "region", exponentiate = T,
statistic = "({p.value}) {stars}")
ordinal_models_covid_exp
| overall | safe | effective | caring | well-led | responsive | |
|---|---|---|---|---|---|---|
| Inadequate|Req improv | 0.004*** | 0.006*** | 0.001*** | 0.000*** | 0.007*** | 0.001*** |
| (0.000) *** | (0.000) *** | (0.000) *** | (0.000) *** | (0.000) *** | (0.000) *** | |
| Req improv|Good | 0.074*** | 0.110*** | 0.079*** | 0.026*** | 0.136*** | 0.083*** |
| (0.000) *** | (0.000) *** | (0.000) *** | (0.000) *** | (0.000) *** | (0.000) *** | |
| Good|Outstanding | 14.518*** | 218.189*** | 63.253*** | 19.843*** | 16.437*** | 19.279*** |
| (0.000) *** | (0.000) *** | (0.000) *** | (0.000) *** | (0.000) *** | (0.000) *** | |
| formNPO | 1.233* | 1.624*** | 1.328* | 1.235+ | 1.325*** | 1.412*** |
| (0.014) * | (0.000) *** | (0.012) * | (0.057) + | (0.000) *** | (0.000) *** | |
| formGOV | 1.080 | 1.528* | 1.317 | 1.079 | 1.089 | 1.207 |
| (0.602) | (0.019) * | (0.168) | (0.697) | (0.534) | (0.245) | |
| formCIC | 1.433 | 1.286 | 0.941 | 2.076+ | 1.869+ | 0.938 |
| (0.347) | (0.587) | (0.899) | (0.082) + | (0.087) + | (0.877) | |
| formIND | 0.788 | 0.824 | 0.729 | 1.206 | 0.739* | 1.212 |
| (0.147) | (0.262) | (0.113) | (0.391) | (0.040) * | (0.294) | |
| after_covidTRUE | 0.194*** | 0.262*** | 0.348*** | 0.403*** | 0.259*** | 0.517*** |
| (0.000) *** | (0.000) *** | (0.000) *** | (0.000) *** | (0.000) *** | (0.000) *** | |
| age | 1.037*** | 1.029*** | 1.021* | 1.044*** | 1.038*** | 1.044*** |
| (0.000) *** | (0.000) *** | (0.017) * | (0.000) *** | (0.000) *** | (0.000) *** | |
| capacity | 0.995*** | 0.993*** | 0.994*** | 0.997 | 0.996*** | 0.994*** |
| (0.000) *** | (0.000) *** | (0.000) *** | (0.133) | (0.001) *** | (0.000) *** | |
| categoryresidential | 0.652*** | 0.661*** | 0.736** | 0.530*** | 0.655*** | 0.806* |
| (0.000) *** | (0.000) *** | (0.003) ** | (0.000) *** | (0.000) *** | (0.013) * | |
| Num.Obs. | 6504 | 6513 | 6516 | 6507 | 6510 | 6523 |
| AIC | 7483.0 | 5842.0 | 4775.8 | 4474.8 | 8677.5 | 6302.2 |
| BIC | 7611.9 | 5970.9 | 4904.7 | 4603.6 | 8806.4 | 6431.0 |
| RMSE | 2.27 | 2.10 | 2.13 | 2.24 | 2.27 | 2.30 |