library(readr)
library(expss)
Dissertation_Dataset <- read_csv("Dissertation_Dataset.csv",
col_types = cols(FED_STATE = col_factor(levels = c("Indian Affairs", "Federal", "Local", "State", "Private", "Regional")), HEALTH_CJ = col_factor(levels = c("Law Enforcement", "Health", "Generalist", "Other")), SENATE = col_factor(levels = c("0", "1", "2"))))
Dissertation_Dataset = apply_labels(Dissertation_Dataset,
HEALTH_CJ = "Health vs. Criminal Justice Groups",
FED_STATE = "Private, Public, & Level of Gov't")
The folllowing is a summary of descriptive statistics for the variables of interest. Please see the chart below it for a definition of each variable.
library(kableExtra)
library(psych)
options(knitr.table.format = "html")
Count_Data <- Dissertation_Dataset[7:49]
sum_table <- describe(Count_Data)
kable(cbind(sum_table), caption = "Summary Stats Count Variables", booktabs = T) %>%
kable_styling(font_size=12,latex_options = c("striped","scale_down")) %>%
row_spec(0, bold=T, color = "white", background = "black") %>%
column_spec(1, bold=T)
vars | n | mean | sd | median | trimmed | mad | min | max | range | skew | kurtosis | se | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
HEALTH_CJ* | 1 | 144 | 1.972222 | 0.8924269 | 2.0 | 1.844828 | 0.0000 | 1 | 4 | 3 | 0.9916517 | 0.4678727 | 0.0743689 |
FED_STATE* | 2 | 144 | 3.395833 | 1.2858496 | 3.0 | 3.396552 | 1.4826 | 1 | 6 | 5 | 0.0042446 | -1.4272499 | 0.1071541 |
ps_OPR | 3 | 144 | 34.076389 | 110.6041312 | 0.0 | 6.939655 | 0.0000 | 0 | 705 | 705 | 4.5262394 | 21.9248207 | 9.2170109 |
ps_OPRS_H | 4 | 144 | 57.243056 | 140.0133483 | 0.0 | 18.655172 | 0.0000 | 0 | 648 | 648 | 2.9813662 | 8.2867048 | 11.6677790 |
ps_prescrip | 5 | 144 | 12.826389 | 44.3629862 | 0.0 | 1.215517 | 0.0000 | 0 | 276 | 276 | 4.4182595 | 20.7450086 | 3.6969155 |
ps_Prescribers | 6 | 144 | 23.597222 | 63.6338213 | 0.0 | 7.000000 | 0.0000 | 0 | 389 | 389 | 3.5454209 | 13.6041732 | 5.3028184 |
ps_Prescrib_Ed | 7 | 144 | 4.472222 | 21.1600443 | 0.0 | 0.000000 | 0.0000 | 0 | 169 | 169 | 5.6656580 | 34.4148461 | 1.7633370 |
ps_vital | 8 | 144 | 17.694444 | 128.0398363 | 0.0 | 0.000000 | 0.0000 | 0 | 1443 | 1443 | 9.9286633 | 104.8480298 | 10.6699864 |
ps_Manuf | 9 | 144 | 12.395833 | 78.6083697 | 0.0 | 0.000000 | 0.0000 | 0 | 878 | 878 | 9.5397241 | 99.7276241 | 6.5506975 |
ps_FDA | 10 | 144 | 6.333333 | 57.4216401 | 0.0 | 0.000000 | 0.0000 | 0 | 667 | 667 | 10.7209997 | 119.0504687 | 4.7851367 |
ps_Left | 11 | 144 | 7.826389 | 47.7619871 | 0.0 | 0.000000 | 0.0000 | 0 | 506 | 506 | 8.6277872 | 82.2819784 | 3.9801656 |
ps_BadApp | 12 | 144 | 72.131944 | 174.1233887 | 0.0 | 27.120690 | 0.0000 | 0 | 1203 | 1203 | 3.6030090 | 15.2237202 | 14.5102824 |
ps_Foreign | 13 | 144 | 96.937500 | 290.9585129 | 0.0 | 14.698276 | 0.0000 | 0 | 1951 | 1951 | 3.7315216 | 15.4344554 | 24.2465427 |
pd_Disease | 14 | 144 | 38.340278 | 98.7730437 | 0.0 | 14.594828 | 0.0000 | 0 | 851 | 851 | 4.8186381 | 31.5997937 | 8.2310870 |
pd_Quality | 15 | 144 | 10.687500 | 61.4633291 | 0.0 | 0.000000 | 0.0000 | 0 | 630 | 630 | 7.9383697 | 71.4752903 | 5.1219441 |
pd_PSE | 16 | 144 | 19.791667 | 122.7181588 | 0.0 | 0.000000 | 0.0000 | 0 | 1384 | 1384 | 9.7738479 | 103.6113885 | 10.2265132 |
pd_CJ | 17 | 144 | 41.680556 | 217.9217044 | 0.0 | 4.853448 | 0.0000 | 0 | 2444 | 2444 | 9.5353772 | 100.0991385 | 18.1601420 |
pd_MAT | 18 | 144 | 22.118056 | 69.9126825 | 0.0 | 4.275862 | 0.0000 | 0 | 581 | 581 | 4.8128317 | 29.3526491 | 5.8260569 |
pd_Access | 19 | 144 | 38.770833 | 141.5748940 | 0.0 | 9.051724 | 0.0000 | 0 | 1464 | 1464 | 7.5913989 | 69.7376950 | 11.7979078 |
ds_PSE | 20 | 144 | 31.493056 | 89.2544094 | 0.0 | 7.241379 | 0.0000 | 0 | 518 | 518 | 3.5578856 | 13.1018563 | 7.4378675 |
ds_Prevent | 21 | 144 | 154.145833 | 361.9478185 | 36.0 | 78.120690 | 53.3736 | 0 | 2718 | 2718 | 5.1494407 | 31.1674924 | 30.1623182 |
ds_Stigma | 22 | 144 | 17.743056 | 65.6199853 | 0.0 | 1.172414 | 0.0000 | 0 | 459 | 459 | 4.6235712 | 22.7786603 | 5.4683321 |
ds_MAT | 23 | 144 | 122.805556 | 263.4593765 | 0.0 | 54.008621 | 0.0000 | 0 | 1320 | 1320 | 2.7309331 | 7.5306121 | 21.9549480 |
ds_Access | 24 | 144 | 134.881944 | 206.5048636 | 54.5 | 89.931034 | 80.8017 | 0 | 1236 | 1236 | 2.6928503 | 9.1255366 | 17.2087386 |
ds_Quality | 25 | 144 | 35.326389 | 138.9626820 | 0.0 | 8.931035 | 0.0000 | 0 | 1479 | 1479 | 8.2980834 | 79.6697730 | 11.5802235 |
ds_ODR | 26 | 144 | 98.326389 | 190.6399539 | 0.0 | 53.879310 | 0.0000 | 0 | 1222 | 1222 | 3.1220471 | 12.3221127 | 15.8866628 |
ds_Samari | 27 | 144 | 5.916667 | 29.2910402 | 0.0 | 0.000000 | 0.0000 | 0 | 244 | 244 | 6.3417633 | 42.4056401 | 2.4409200 |
ds_Coordinate | 28 | 144 | 31.159722 | 73.6317299 | 0.0 | 13.905172 | 0.0000 | 0 | 501 | 501 | 4.0834581 | 21.0974342 | 6.1359775 |
ds_Divert2PH | 29 | 144 | 41.868056 | 124.1610868 | 0.0 | 8.672414 | 0.0000 | 0 | 926 | 926 | 4.2100316 | 21.0434041 | 10.3467572 |
ss_Take | 30 | 144 | 24.784722 | 65.0401880 | 0.0 | 7.008621 | 0.0000 | 0 | 308 | 308 | 3.0990896 | 9.2591265 | 5.4200157 |
ss_PDMP | 31 | 144 | 144.812500 | 263.5796603 | 1.5 | 85.637931 | 2.2239 | 0 | 1438 | 1438 | 2.6789505 | 8.1230675 | 21.9649717 |
ss_Reg | 32 | 144 | 10.312500 | 51.4106556 | 0.0 | 0.000000 | 0.0000 | 0 | 488 | 488 | 6.7109009 | 52.6919868 | 4.2842213 |
ss_New | 33 | 144 | 16.416667 | 89.3887166 | 0.0 | 0.000000 | 0.0000 | 0 | 611 | 611 | 5.5551223 | 30.1890068 | 7.4490597 |
ss_Guide | 34 | 144 | 32.229167 | 81.2566269 | 0.0 | 8.741379 | 0.0000 | 0 | 454 | 454 | 2.9105477 | 8.3120832 | 6.7713856 |
ss_Cautious | 35 | 144 | 28.770833 | 108.7894431 | 0.0 | 3.956897 | 0.0000 | 0 | 952 | 952 | 5.9681218 | 41.0786119 | 9.0657869 |
ss_Prescrib_Ed | 36 | 144 | 85.965278 | 182.0856024 | 0.0 | 39.413793 | 0.0000 | 0 | 929 | 929 | 2.9086055 | 8.7521426 | 15.1738002 |
ss_Crim_Enforce | 37 | 144 | 249.472222 | 613.4331219 | 0.0 | 100.431034 | 0.0000 | 0 | 4113 | 4113 | 4.1663114 | 20.6558597 | 51.1194268 |
ss_Penalt | 38 | 144 | 4.236111 | 17.0006113 | 0.0 | 0.000000 | 0.0000 | 0 | 106 | 106 | 4.2486691 | 18.0373984 | 1.4167176 |
Problem_Supply | 39 | 144 | 295.930556 | 461.8098730 | 80.5 | 194.198276 | 119.3493 | 0 | 2367 | 2367 | 1.9541657 | 3.5299150 | 38.4841561 |
Problem_Demand | 40 | 144 | 159.715278 | 329.0143293 | 30.0 | 80.172414 | 44.4780 | 0 | 2444 | 2444 | 3.7703214 | 18.1663251 | 27.4178608 |
Solutions_Demand | 41 | 144 | 557.534722 | 713.6461574 | 301.0 | 409.879310 | 365.4609 | 0 | 3885 | 3885 | 2.1642430 | 5.0281759 | 59.4705131 |
Solutions_Supply | 42 | 144 | 548.722222 | 724.0372768 | 332.5 | 403.913793 | 433.6605 | 0 | 4113 | 4113 | 2.3823470 | 7.1560209 | 60.3364397 |
TOTAL WORDS | 43 | 144 | 2444.604167 | 1379.3977059 | 2235.0 | 2285.965517 | 1238.7123 | 561 | 8342 | 7781 | 1.2483781 | 1.9935355 | 114.9498088 |
text_tbl <- data.frame(
Variables = c("HEALTH_CJ","FED_STATE","ps_OPR","ps_OPRS_H","ps_prescrip","ps_Prescribers",
"ps_Prescrib_Ed","ps_vital","ps_Manuf","ps_FDA","ps_Left","ps_BadApp","ps_Foreign","pd_Disease",
"pd_Quality","pd_PSE","pd_CJ","pd_MAT","pd_Access","ds_PSE","ds_Prevent","ds_Stigma","ds_MAT",
"ds_Access","ds_Quality","ds_ODR","ds_Samari","ds_Coordinate","ds_Divert2PH","ss_Take","ss_PDMP",
"ss_Reg","ss_New","ss_Guide","ss_Cautious","ss_Prescrib_Ed","ss_Crim_Enforce","ss_Penalt",
"Problem_Supply","Problem_Demand","Solutions_Demand","Solutions_Supply","TOTAL WORDS"),
Description = c(
"Categorical Variable, which groups speaker orgs based on either health focus, criminal justice (CJ) focus, or other",
"Categorical Variable, which groups speaker orgs based on either federal gov agency, state agency, local agency, regional group of agencies, or private entities",
"Word count of problem definition (WCPD) blaming the characteristics of opioid prescriptions",
"WCPD blaming opioid prescriptions for heroin use",
"WCPD generally blaming overprescription of opioids",
"WCPD blaming prescribers for overprescribing",
"WCPD blaming lack of prescriber education",
"WCPD blaming 5th vital sign of pain",
"WCPD blaming drug manufacturers",
"WCPD blaming FDA",
"WCPD blaming diversion of left-over prescriptions",
"WCPD blaming bad apples for increasing drug supply",
"WCPD blaming foreign actors for increasing drug supply",
"WCPD acknowleding addiction as a disease",
"WCPD blaming poor quality of addiction treatment",
"WCPD blaming psychological, sociological, environmental or economical (PSEE) factors",
"WCPD blaming the mischaracterization of the problem as a CJ problem rather than a health problem",
"WCPD blaming poor access to Medication Assisted Treatment (MAT)",
"WCPD blaming poor access to Treatment Generally",
"Word count of solutions (WCS) addressing PSEE factors",
"WCS addressing demand side prevention (excluse preventioon of supply tactics)",
"WCS addressing stigma",
"WCS increasing access to MAT",
"WCS increasing access to Treatment Generally",
"WCS increasing quality of Treatment",
"WCS increasing access to Overdose Reversal Medications",
"WCS passage or strengthening of Good Samaritan Laws",
"WCS coordinating between CJ and Health actors",
"WCS that are alterntives to incarceration, like drug courts or treatment",
"WCS involving drug take back programs",
"WCS regarding Prescription Drug Monitoring Programs (PDMP)",
"WCS involving rescheduling, adding black box labels, or regulation of opioids",
"WCS funding new drugs to address pain, with the intent of decreasing the prescribing of opioids",
"WCS promoting prescriber guidelines",
"WCS calling for more cautious prescribing practices generally",
"WCS of prescriber or distributor education",
"WCS commitment to criminal enforcement",
"WCS increasing or creating new criminal penalities",
"Total WC of all subcategories that define the problem as an issue of drug supply",
"Total WC of all subcategories that define the problem as the demand for drugs",
"Total WC of all subcategories that propose soltions aimed at decreasing the demand",
"Total WC of all subcategories that propose solutions aimed at decreasing the supply of drugs",
"Total WC of all words in each case"
)
)
kable(text_tbl, booktabs = T)%>%
kable_styling(font_size=10,latex_options = c("striped","scale_down")) %>%
group_rows("Interest Group Type", 1, 2) %>%
group_rows("Problem Definition - Supply", 3, 13) %>%
group_rows("Problem Definition - Demand", 14, 19) %>%
group_rows("Solutions - Demand", 20, 28) %>%
group_rows("Problem Definition - Supply", 29, 37) %>%
group_rows("Theme Definitions", 38, 42) %>%
group_rows("Other", 43, 43) %>%
column_spec(2, width = "40em") %>%
row_spec(0, bold=T, color = "white", background = "black")
Variables | Description |
---|---|
Interest Group Type | |
HEALTH_CJ | Categorical Variable, which groups speaker orgs based on either health focus, criminal justice (CJ) focus, or other |
FED_STATE | Categorical Variable, which groups speaker orgs based on either federal gov agency, state agency, local agency, regional group of agencies, or private entities |
Problem Definition - Supply | |
ps_OPR | Word count of problem definition (WCPD) blaming the characteristics of opioid prescriptions |
ps_OPRS_H | WCPD blaming opioid prescriptions for heroin use |
ps_prescrip | WCPD generally blaming overprescription of opioids |
ps_Prescribers | WCPD blaming prescribers for overprescribing |
ps_Prescrib_Ed | WCPD blaming lack of prescriber education |
ps_vital | WCPD blaming 5th vital sign of pain |
ps_Manuf | WCPD blaming drug manufacturers |
ps_FDA | WCPD blaming FDA |
ps_Left | WCPD blaming diversion of left-over prescriptions |
ps_BadApp | WCPD blaming bad apples for increasing drug supply |
ps_Foreign | WCPD blaming foreign actors for increasing drug supply |
Problem Definition - Demand | |
pd_Disease | WCPD acknowleding addiction as a disease |
pd_Quality | WCPD blaming poor quality of addiction treatment |
pd_PSE | WCPD blaming psychological, sociological, environmental or economical (PSEE) factors |
pd_CJ | WCPD blaming the mischaracterization of the problem as a CJ problem rather than a health problem |
pd_MAT | WCPD blaming poor access to Medication Assisted Treatment (MAT) |
pd_Access | WCPD blaming poor access to Treatment Generally |
Solutions - Demand | |
ds_PSE | Word count of solutions (WCS) addressing PSEE factors |
ds_Prevent | WCS addressing demand side prevention (excluse preventioon of supply tactics) |
ds_Stigma | WCS addressing stigma |
ds_MAT | WCS increasing access to MAT |
ds_Access | WCS increasing access to Treatment Generally |
ds_Quality | WCS increasing quality of Treatment |
ds_ODR | WCS increasing access to Overdose Reversal Medications |
ds_Samari | WCS passage or strengthening of Good Samaritan Laws |
ds_Coordinate | WCS coordinating between CJ and Health actors |
Problem Definition - Supply | |
ds_Divert2PH | WCS that are alterntives to incarceration, like drug courts or treatment |
ss_Take | WCS involving drug take back programs |
ss_PDMP | WCS regarding Prescription Drug Monitoring Programs (PDMP) |
ss_Reg | WCS involving rescheduling, adding black box labels, or regulation of opioids |
ss_New | WCS funding new drugs to address pain, with the intent of decreasing the prescribing of opioids |
ss_Guide | WCS promoting prescriber guidelines |
ss_Cautious | WCS calling for more cautious prescribing practices generally |
ss_Prescrib_Ed | WCS of prescriber or distributor education |
ss_Crim_Enforce | WCS commitment to criminal enforcement |
Theme Definitions | |
ss_Penalt | WCS increasing or creating new criminal penalities |
Problem_Supply | Total WC of all subcategories that define the problem as an issue of drug supply |
Problem_Demand | Total WC of all subcategories that define the problem as the demand for drugs |
Solutions_Demand | Total WC of all subcategories that propose soltions aimed at decreasing the demand |
Solutions_Supply | Total WC of all subcategories that propose solutions aimed at decreasing the supply of drugs |
Other | |
TOTAL WORDS | Total WC of all words in each case |
The chart below shows the breakdown of the number of cases (testimonies) for categories of health vs. criminal justice organizations.
library(ggplot2)
##
## Attaching package: 'ggplot2'
## The following objects are masked from 'package:psych':
##
## %+%, alpha
## The following object is masked from 'package:expss':
##
## vars
library(tidyverse)
## ── Attaching packages ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── tidyverse 1.2.1 ──
## ✔ tibble 1.4.2 ✔ dplyr 0.7.8
## ✔ tidyr 0.8.2 ✔ stringr 1.3.1
## ✔ purrr 0.2.5 ✔ forcats 0.3.0
## ── Conflicts ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ ggplot2::%+%() masks psych::%+%()
## ✖ ggplot2::alpha() masks psych::alpha()
## ✖ dplyr::between() masks expss::between()
## ✖ dplyr::compute() masks expss::compute()
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::first() masks expss::first()
## ✖ stringr::fixed() masks expss::fixed()
## ✖ purrr::keep() masks expss::keep()
## ✖ dplyr::lag() masks stats::lag()
## ✖ dplyr::last() masks expss::last()
## ✖ purrr::modify() masks expss::modify()
## ✖ purrr::modify_if() masks expss::modify_if()
## ✖ dplyr::na_if() masks expss::na_if()
## ✖ tidyr::nest() masks expss::nest()
## ✖ dplyr::recode() masks expss::recode()
## ✖ stringr::regex() masks expss::regex()
## ✖ purrr::transpose() masks expss::transpose()
## ✖ dplyr::vars() masks ggplot2::vars(), expss::vars()
library(forcats)
q <- ggplot(Dissertation_Dataset, aes(HEALTH_CJ)) +
geom_bar(width = 0.8, fill = "green") +
geom_text(stat='count', aes(label=..count..), vjust=-0.75)
q + scale_x_discrete(limits=c("Generalist", "Other", "Law Enforcement", "Health"))
The amount of testimony offerred by health actors was almost double that of law enforcement actors (78 cases vs. 43). Comparatively, both law enforcement and health groups far outweighed the amount of testimony offerred by generalists (n=7) or other advocacy groups (n=16).
Aside from categorizing groups as law enforcement or health groups, the groups could be categorized based on public or private groups.
d <- ggplot(data = Dissertation_Dataset, aes(x = FED_STATE)) +
geom_bar(fill="steelblue") +
geom_text(stat='count', aes(label=..count..), vjust=-0.75)
d + scale_x_discrete(limits=c("Regional", "Indian Affairs", "Local", "State", "Private", "Federal"))
The amount of testimony provided by public actors greatly exceed that offerred by private actors (105 v. 39), with state, local and regional group testimony exceeding federal government testimony, but not by a great deal (54 v. 47).
If we combine the two ways of categorizing the groups testifying, Health v. Crimina Justice and Public vs. Private, we get the following: Federal Law Enforcement testimony = 29 Private Health group testimony = 27 Federal Health agency testimony = 17 State Law Enforcement testimony = 14 + Local Law Enforcement testimony = 13 + Regional Law Enforcement testimony=1 (Total = 28) State Health Agency testimony = 11 + Local Health Agency testimony = 7 (Total= 18)
z <- ggplot(Dissertation_Dataset, aes(FED_STATE, fill = HEALTH_CJ)) +
geom_bar()
z + scale_x_discrete(limits=c("Regional", "Indian Affairs", "Local", "State", "Private", "Federal"))
Another way to display the information would be to look at the composition of groups as a proportion of each. See below.
ggplot(data = Dissertation_Dataset,aes(x = FED_STATE, fill = HEALTH_CJ)) + geom_bar(position = "fill")
The Senate received almost double the amount of testimony as the house (n=89 vs. n=49). There was also 6 testimonies that were given to both the House and the Senate. This would be good to mention when describing the dataset. 0=House 1=Senate 2=Both
senate_tab <-table(Dissertation_Dataset$SENATE)
senate_tab
##
## 0 1 2
## 49 89 6
kable(cbind(senate_tab), caption = "Count of Senate Testimony", booktabs = T) %>%
kable_styling(font_size=12)
senate_tab | |
---|---|
0 | 49 |
1 | 89 |
2 | 6 |
It seems from the graph below that the proprtion of law enforcement to health testimony varied by the House and the Senate. Since each body hears a separate set of testimony, it may be useful in the future to disaggregate and analyze separately the House vs. Senate testimony. Although, in this case, both the House and Senate voted near unanimously to CARA, so the different composition of testimony may not have been influential. Then again, CARA was introduced in the Senate and the House had produced a flurry of opioid bills at the same time. I believe they were later combined in reconciliation. Therefore, future analysis could compare the House vs. Senate testimony and the proposals that were supported by each house.
ggplot(Dissertation_Dataset, aes(SENATE, fill = HEALTH_CJ)) +
geom_bar(position = "dodge")
#Proportion of FED_STATE that were HEALTH_CJ
ggplot(data = Dissertation_Dataset,aes(x = FED_STATE, fill = HEALTH_CJ)) + geom_bar(position = "fill")
#Findings of Overall Saliency of Themes: Supply vs. Demand; Problem vs. Solutions
ggplot(data=Dissertation_Dataset, aes(x = HEALTH_CJ, y = Problem_Demand, fill = FED_STATE)) +
geom_bar(stat = "identity", position = "dodge") +
labs(
title = "Number of Words Describing the Problem as Demand",
subtitle = "Comparing Types of Actors Problem Definition",
caption = "Measured in word counts",
x = "Health vs. Criminal Justice",
y = "Word Count",
fill = "Level"
)
p <- ggplot(data=Dissertation_Dataset, aes(x = FED_STATE, y = Problem_Demand)) +
geom_bar(stat = "identity", fill="Blue")
p + scale_x_discrete(limits=c("Regional", "Indian Affairs", "Federal", "State", "Local"))
## Warning: Removed 39 rows containing missing values (position_stack).
ggplot(Dissertation_Dataset, aes(x=Problem_Supply, y=Solutions_Supply)) +
geom_point(shape=1) # Use hollow circles
#geom_smooth() # Add a loess smoothed fit curve with confidence region
#geom_smooth(method=lm, se=FALSE) #Add linear regression line,Don't add shaded confidence region
ggplot(Dissertation_Dataset, aes(x=Problem_Demand, y=Solutions_Demand)) +
geom_point(shape=1) # Use hollow circles
#geom_smooth() # Add a loess smoothed fit curve with confidence region
#geom_smooth(method=lm, se=FALSE) #Add linear regression line,Don't add shaded confidence region
```