This file holds the output for the logistic regression model of psychology today mental health providers insurance acceptance:
I chose to change the reference category to masters level providers since it is the largest group
data_acs_inc$provs <- contr_code_treatment(data_acs_inc$provs,
base = "masters")
uni_prov <- glm(insurance_flag ~ provs, data = data_acs_inc,
family = "binomial")
summary(uni_prov) ##
## Call:
## glm(formula = insurance_flag ~ provs, family = "binomial", data = data_acs_inc)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 0.50325 0.00727 69.222 <2e-16 ***
## provs.advanced-masters -0.38909 0.04038 -9.635 <2e-16 ***
## provs.counselors-masters 0.44135 0.01134 38.917 <2e-16 ***
## provs.psych-masters -0.24335 0.01437 -16.938 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 226890 on 175082 degrees of freedom
## Residual deviance: 224196 on 175079 degrees of freedom
## AIC: 224204
##
## Number of Fisher Scoring iterations: 4
## Waiting for profiling to be done...
## OR 2.5 % 97.5 %
## (Intercept) 1.65 1.63 1.68
## provs.advanced-masters 0.68 0.63 0.73
## provs.counselors-masters 1.55 1.52 1.59
## provs.psych-masters 0.78 0.76 0.81
model1 <- glm(insurance_flag ~ provs + c_provider_1k + rurality + any_child
+ income_med + group_pr + frac_white_med + telehealth, data = data_acs_inc,
family = "binomial")
summary(model1)##
## Call:
## glm(formula = insurance_flag ~ provs + c_provider_1k + rurality +
## any_child + income_med + group_pr + frac_white_med + telehealth,
## family = "binomial", data = data_acs_inc)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 0.233783 0.013126 17.811 < 2e-16 ***
## provs.advanced-masters -0.402757 0.040745 -9.885 < 2e-16 ***
## provs.counselors-masters 0.471490 0.011467 41.116 < 2e-16 ***
## provs.psych-masters -0.194728 0.014580 -13.356 < 2e-16 ***
## c_provider_1k -0.134196 0.008298 -16.173 < 2e-16 ***
## ruralityRural 0.167428 0.028521 5.870 4.35e-09 ***
## any_child 0.127924 0.010715 11.939 < 2e-16 ***
## income_med -0.226293 0.011024 -20.528 < 2e-16 ***
## group_pr 0.228906 0.010577 21.641 < 2e-16 ***
## frac_white_med 0.305216 0.010405 29.334 < 2e-16 ***
## telehealth 0.134975 0.011875 11.366 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 226890 on 175082 degrees of freedom
## Residual deviance: 221376 on 175072 degrees of freedom
## AIC: 221398
##
## Number of Fisher Scoring iterations: 4
## Waiting for profiling to be done...
## OR 2.5 % 97.5 %
## (Intercept) 1.26 1.23 1.30
## provs.advanced-masters 0.67 0.62 0.72
## provs.counselors-masters 1.60 1.57 1.64
## provs.psych-masters 0.82 0.80 0.85
## c_provider_1k 0.87 0.86 0.89
## ruralityRural 1.18 1.12 1.25
## any_child 1.14 1.11 1.16
## income_med 0.80 0.78 0.81
## group_pr 1.26 1.23 1.28
## frac_white_med 1.36 1.33 1.38
## telehealth 1.14 1.12 1.17
model1int <- glm(insurance_flag ~ provs + c_provider_1k*rurality + any_child
+ income_med + group_pr + frac_white_med + telehealth, data = data_acs_inc, family = "binomial")
summary(model1int)##
## Call:
## glm(formula = insurance_flag ~ provs + c_provider_1k * rurality +
## any_child + income_med + group_pr + frac_white_med + telehealth,
## family = "binomial", data = data_acs_inc)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 0.233103 0.013129 17.755 < 2e-16 ***
## provs.advanced-masters -0.400604 0.040744 -9.832 < 2e-16 ***
## provs.counselors-masters 0.472605 0.011471 41.202 < 2e-16 ***
## provs.psych-masters -0.193717 0.014582 -13.284 < 2e-16 ***
## c_provider_1k -0.139869 0.008406 -16.640 < 2e-16 ***
## ruralityRural 0.252909 0.034798 7.268 3.65e-13 ***
## any_child 0.128140 0.010716 11.958 < 2e-16 ***
## income_med -0.224733 0.011034 -20.367 < 2e-16 ***
## group_pr 0.228176 0.010580 21.567 < 2e-16 ***
## frac_white_med 0.304475 0.010405 29.262 < 2e-16 ***
## telehealth 0.134899 0.011876 11.359 < 2e-16 ***
## c_provider_1k:ruralityRural 0.240498 0.053839 4.467 7.93e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 226890 on 175082 degrees of freedom
## Residual deviance: 221356 on 175071 degrees of freedom
## AIC: 221380
##
## Number of Fisher Scoring iterations: 4
## Waiting for profiling to be done...
## OR 2.5 % 97.5 %
## (Intercept) 1.26 1.23 1.30
## provs.advanced-masters 0.67 0.62 0.73
## provs.counselors-masters 1.60 1.57 1.64
## provs.psych-masters 0.82 0.80 0.85
## c_provider_1k 0.87 0.86 0.88
## ruralityRural 1.29 1.20 1.38
## any_child 1.14 1.11 1.16
## income_med 0.80 0.78 0.82
## group_pr 1.26 1.23 1.28
## frac_white_med 1.36 1.33 1.38
## telehealth 1.14 1.12 1.17
## c_provider_1k:ruralityRural 1.27 1.15 1.41
est.rural <- gmodels::estimable(model1int,
c("c_provider_1k" = 1,
"c_provider_1k:ruralityRural" = 1),
conf.int = 0.95)## Registered S3 method overwritten by 'gdata':
## method from
## reorder.factor DescTools
est.nonrural <- gmodels::estimable(model1int,
c("c_provider_1k" = 1),
conf.int = 0.95)
rbind(exp(est.rural[c("Estimate", "Lower.CI", "Upper.CI")]),
exp(est.nonrural[c("Estimate", "Lower.CI", "Upper.CI")]))| Estimate | Lower.CI | Upper.CI | |
|---|---|---|---|
| (0 0 0 0 1 0 0 0 0 0 0 1) | 1.105866 | 0.9949508 | 1.2291460 |
| (0 0 0 0 1 0 0 0 0 0 0 0) | 0.869472 | 0.8550921 | 0.8840936 |
For Rural: For every unit increase from the mean of provider supply
per 1000 county population, providers in rural areas have an 11%
increase in odds of accepting insurance (95% CI: 1.00,
1.23).
- The mean of providers per 1000 county population is 0.94 providers per
1000 county population
For non-rural: For every unit increase from the mean of provider supply per 1000 county population, providers in non-rural areas have an 13% decrease in odds of accepting insurance (95% CI: 0.86, 0.88).
#non-interaction
plot_model(model1,
type = "eff",
terms = c("c_provider_1k", "rurality"),
title = "No interaction",
axis.title = c("Provider Supply (per 1000 county population)",
"P(Insurance Acceptance)"),
legend.title = "Rurality")# Effect of c_provider_1k at each level of rurality
plot_model(model1int,
type = "eff",
terms = c("c_provider_1k", "rurality"),
title = "Interaction between provider supply and rurality",
axis.title = c("Provider Supply (per 1000 county population)",
"P(Insurance Acceptance)"),
legend.title = "Rurality")| Dependent variable: | |||
| Insurance Acceptance | |||
| (1) | (2) | (3) | |
| provs.advanced-masters | 0.68*** | 0.67*** | 0.67*** |
| (1.82, 2.13) | (1.80, 2.11) | (1.80, 2.12) | |
| provs.counselors-masters | 1.55*** | 1.60*** | 1.60*** |
| (4.63, 4.84) | (4.85, 5.08) | (4.86, 5.09) | |
| provs.psych-masters | 0.78*** | 0.82*** | 0.82*** |
| (2.13, 2.25) | (2.21, 2.34) | (2.22, 2.35) | |
| c_provider_1k | 0.87*** | 0.87*** | |
| (2.36, 2.44) | (2.35, 2.43) | ||
| ruralityRural | 1.18*** | 1.29*** | |
| (3.08, 3.45) | (3.39, 3.88) | ||
| any_child | 1.14*** | 1.14*** | |
| (3.05, 3.18) | (3.05, 3.18) | ||
| income_med | 0.80*** | 0.80*** | |
| (2.17, 2.27) | (2.18, 2.27) | ||
| group_pr | 1.26*** | 1.26*** | |
| (3.44, 3.59) | (3.44, 3.59) | ||
| frac_white_med | 1.36*** | 1.36*** | |
| (3.81, 3.96) | (3.80, 3.96) | ||
| telehealth | 1.14*** | 1.14*** | |
| (3.07, 3.21) | (3.07, 3.21) | ||
| c_provider_1k:ruralityRural | 1.27*** | ||
| (3.21, 3.96) | |||
| Constant | 1.65*** | 1.26*** | 1.26*** |
| (5.15, 5.30) | (3.45, 3.63) | (3.44, 3.63) | |
| Observations | 175,083 | 175,083 | 175,083 |
| Akaike Inf. Crit. | 224,203.80 | 221,398.10 | 221,379.70 |
| Note: | p<0.1; p<0.05; p<0.01 | ||