Reducing Stigma Toward People with Opioid Use Disorder Among Primary Care Clinicians
- Prepared by:
- J M Maxwell, Center for Translational Data Science (CTDS), University of Chicago
Attribution
This notebook uses data collected by Hooker et al. (2023) as part of their study entitled Reducing Stigma Toward People with Opioid Use Disorder Among Primary Care Clinicians. The data have been archived by the authors at NIDA Data Share and are accessible via the HEAL Data Platform.
The purpose of this notebook is to demonstrate how the data may be accessed and used for analysis, and is intended to be used as a jumping off point for researchers who may wish to use these data for their own secondary analyses. While some of the analyses below may recreate analyses presented in the original publication, they are not intended to replicate the original results and differences in analytic methods and software, selection/filtering of observations, and handling of missing data may yield results that differ from the original.
The work here was conducted without direct involvement of the original authors and therefore does not necessarily reflect the views or opinions of the authors, of the NIH HEAL Initiative®, or of the Center for Translational Data Science (CTDS) at the University of Chicago.
Introduction¶
There is an ongoing, dramatic rise in the number of opioid related overdose deaths in the United States; however, only a small portion of patients who are diagnosed with Opioid Use Disorders (OUD) seek treatment and recieve medications for OUD (MOUD). MOUDs, like buprenorphine, can be effective forms of treatment for OUD patients, but only a portion of clinicians are waivered to, and in actuality do, prescribe buprenophine. A potential barrier to care for OUD patients may be the stigma held by primary care clinicians (PCCs) towards people with OUD. There are a limited number of interventions available for reducing OUD stigma among PCCs and a need for analytical support for the efficacy of these interventions. This study examines whether PCCs’ stigma towards people with OUD may be reduced and PCCs’ intentions to treat OUD patients increased through online training interventions.
Import Python Libraries¶
import shutil
import os
import zipfile
import pandas as pd
import numpy as np
import scipy
import matplotlib.pyplot as plt
import sklearn
from sklearn import metrics
from IPython.display import Markdown, Image, display
# folder_path = 'img/PCC_OUD_Stigma'
# if os.path.exists(folder_path) and os.path.isdir(folder_path):
# shutil.rmtree(folder_path)
# os.makedirs(folder_path)
# print(f"A new folder - '{folder_path}' - has been created.")
# else:
# os.makedirs(folder_path)
# print(f"A new folder - '{folder_path}' - has been created.")Ingest And Prepare Data¶
In this section, we ingest and prepare the data. We’re particularly interested in the data fields related to the PCCs’ attitude towards people with OUD, their attitudes towards treating people with OUD, and their demographic information.
!gen3 drs-pull object dg.H34L/a6c7fc23-3534-401c-88ca-9fbbb495dcf4{"succeeded": ["dg.H34L/a6c7fc23-3534-401c-88ca-9fbbb495dcf4"], "failed": []}
with zipfile.ZipFile('ascii-crf-data-files_nida-ctn-0095a2 v1-1.zip', 'r') as zip_ref:
zip_ref.extractall('.')df = pd.read_csv('stigma_supp.csv')
col_names = {'DDBS': 'Overall Stigma', 'DDBS_DIFF': 'Difference', 'DDBS_DISDAIN': 'Disdain', 'DDBS_BLAME2': 'Blame',
'INTEND_WAIVER': 'Intentions to get waivered', 'INTEND_PRESCRIBE': 'Intentions to prescribe buprenorphine',
'WILLWORK': 'Willingness to work with OUD', 'TX_EFFECTIVE': 'Perceived OUD treatment effectiveness',
'TX_ADHERENCE': 'Perceived OUD treatment adherence', 'PCC_AGE': 'Age', 'PCC_GENDER': 'Gender', 'PCC_RACE': 'Race',
'PCC_HISPANIC': 'Ethnicity', 'STIGMA_GROUP': 'Stigma Group', 'PCC_WAIVERED': 'Waivered to prescribe buprenorphine', 'PCC_MD': 'Degree'}
df.rename(columns=col_names, inplace=True)
df.drop(['STIG_CLIN_ID', 'HLTH_SYS_ID', 'PCC_ID', 'COMPLETE_TRAINING', 'COMPLETE_SURVEY'], axis=1, inplace=True)
df.Gender = df.Gender.fillna(7.0)
df.Ethnicity = df.Ethnicity.fillna(7.0)
df['Race'] = df.Race.map({'5 White': 'White', '9 Prefer not to answer': 'Prefer not to answer', '2 Asian': 'Asian', '3 Black or African American': 'Black or African American',
'7 Multiple selected': 'Multiple selected', '6 Some other race': 'Some other race'})
df['Gender'] = df.Gender.map({2.0: 'Female', 1.0: 'Male', 6.0: 'Not Listed', 7.0: 'Prefer not to answer'})
df['Ethnicity'] = df.Ethnicity.map({0.0: 'Not Hispanic or Latino', 1.0: 'Hispanic or Latino', 7.0: 'Missing'})
df['Waivered to prescribe buprenorphine'] = df['Waivered to prescribe buprenorphine'].map({0: 'False', 1: 'True'})
df['Degree'] = df.Degree.map({1: 'MD/DO', 0: 'PA/NP'})
df = df[['Stigma Group', 'Overall Stigma', 'Difference', 'Disdain', 'Blame', 'Intentions to get waivered', 'Intentions to prescribe buprenorphine', 'Willingness to work with OUD',
'Perceived OUD treatment effectiveness', 'Perceived OUD treatment adherence', 'Waivered to prescribe buprenorphine', 'Gender', 'Ethnicity', 'Race', 'Degree']]About The Study¶
The study used by Hooker et. al. for their research was conducted by a nonprofit healthcare organization, HealthPartners, servicing Minnesota and Wisconsin. PCCs who are part of the 15 HealPartners clinics that have access to a CDS tool for identifying and treating people with OUD were invited to participate in the study. The study was a randomized, controlled trial where PCCs recieved one of two trainings: a stigma reduction training; or, an attention-control training. Following training, the PCCs were assessed at 6 months, 3 months and immediately following completion of the training for their stigma against people with OUD, their intention to get waivered, and their intention to prescribe buprenorphine. Of the 162 PCCs who were eligible, 85 completed both the training and the immediate post training survey (n=46 stigma training and n=39 attention-control training).
The stigma reduction training was a series of videos recounting OUD patient narratives, examples of using non-stigmatizing language, and explanations on how to use a Clinical Decision Support (CDS) tool designed to enable PCCs to screen, diagnose, and treat patients with OUD. The attention-control training controlled for contact, attention, and extra CDS tool training, but did not include the OUD patient narratives or examples of non-stigmatized language.
The outcome measures which were used in this analysis were assessed through a survey immediately following training. The relevant primary and secondary outcome measurements were:
OUD Stigma - measured using the Blame, Disdain, and Difference scales and the composite Overall Stigma scale.
Intentions to get waivered or prescribe buprenorphine - measured on a 1-5 scale the likelihood to get waivered to prescribe buprenorphine or to prescribe buprenorphine should a waiver no longer be required.
Willingness to work with people with OUD - measured as the average of 3 questionnaire items (each scaled 1-5) from the Drug Problems Perceptions Questionnaire, where a higher score indicates a greater overall willingness to work with patients with OUD.
Opioid treatment outcome expectations - measured on a scale 1-4 on PCCs expecations for the effectiveness and likelihood of patient adherence to OUD treatment.
Demographic Summary Statistics of PCCs who completed stigma or attention control training¶
features = ['Gender', 'Ethnicity', 'Race', 'Waivered to prescribe buprenorphine', 'Degree']
all_subj = []
print_df = pd.DataFrame()
for feat in features:
print_df1 = pd.DataFrame({'Category': f'{feat} - ' + df[feat].value_counts().index, 'All N=85': (100*df[feat].value_counts()/len(df)).values.round(2)} )
print_df2 = pd.DataFrame({'Category': f'{feat} - ' + (100*df[df['Stigma Group'] == 'STIG_INT'][feat].value_counts()/len(df[df['Stigma Group'] == 'STIG_INT'])).index, 'Stigma reduction n = 46': (100*df[df['Stigma Group'] == 'STIG_INT'][feat].value_counts()/len(df[df['Stigma Group'] == 'STIG_INT'])).values.round(2)} )
print_df3 = pd.DataFrame({'Category': f'{feat} - ' + (100*df[df['Stigma Group'] == 'STIG_CTRL'][feat].value_counts()/len(df[df['Stigma Group'] == 'STIG_CTRL'])).index, 'Attention-control n = 39': (100*df[df['Stigma Group'] == 'STIG_CTRL'][feat].value_counts()/len(df[df['Stigma Group'] == 'STIG_CTRL'])).values.round(2)} )
print_df1 = print_df1.merge(print_df2, how='left', on='Category')
print_df1 = print_df1.merge(print_df3, how='left', on='Category')
print_df1.fillna(0, inplace=True)
print_df1[['All N=85', 'Stigma reduction n = 46', 'Attention-control n = 39']] = print_df1[['All N=85', 'Stigma reduction n = 46', 'Attention-control n = 39']].astype(str)
print_df1['All N=85'] = print_df1['All N=85'].apply( lambda x : str(x) + '%')
print_df1['Stigma reduction n = 46'] = print_df1['Stigma reduction n = 46'].apply( lambda x : str(x) + '%')
print_df1['Attention-control n = 39'] = print_df1['Attention-control n = 39'].apply( lambda x : str(x) + '%')
print_df = pd.concat([print_df, print_df1])
if feat != 'Degree':
print_df = pd.concat([print_df, pd.DataFrame({'Category': ['-'], 'All N=85': ['-'], 'Stigma reduction n = 46': ['-'], 'Attention-control n = 39': ['-'] })])
Markdown(print_df.to_markdown())In this first table, we have a breakdown of the demographic characteristics of the participating PCCs split amongst the two training formats. There are no significant differences between the stigma and attention-control training groups in their demographics, their medical degree type, or their pre-existing waiver to prescribe burprenorphine.
Stigma Reduction and Attention-Control Training on Self-Reported Stigma and Intentions to Treat People¶
stig_int = []
stig_ctrl = []
t_vals = []
p_vals = []
d_vals = []
features = ['Overall Stigma', 'Difference', 'Disdain', 'Blame', 'Intentions to get waivered',
'Intentions to prescribe buprenorphine', 'Willingness to work with OUD', 'Perceived OUD treatment effectiveness', 'Perceived OUD treatment adherence']
def cohen_d(x,y):
nx = len(x)
ny = len(y)
dof = nx + ny - 2
return (np.mean(x) - np.mean(y)) / np.sqrt(((nx-1)*np.std(x, ddof=1) ** 2 + (ny-1)*np.std(y, ddof=1) ** 2) / dof)
for feat in features:
x = df[df['Stigma Group'] == 'STIG_INT'][feat].dropna()
y = df[df['Stigma Group'] == 'STIG_CTRL'][feat].dropna()
# Perform the t-test
t_statistic, p_value = scipy.stats.ttest_ind(x, y)
d = round(cohen_d(x, y), 2)
stig_int.append(f'{round(x.mean())} ({round(x.std())})')
stig_ctrl.append(f'{round(y.mean())} ({round(y.std())})')
t_vals.append(t_statistic)
p_vals.append(p_value)
d_vals.append(d)
df1 = pd.DataFrame({"Feature": features,
"Stigma Reduction Mean (SD)": stig_int,
"Attention Control Mean (SD)": stig_ctrl,
"t-statistic": np.round(t_vals, 3),
"p-value": np.round(p_vals, 3),
"Cohen's d-value": d_vals})
Markdown(df1.to_markdown())In the second table, we show a number of descriptive statistics for measuring the difference amongst the two training groups in self-reported stigma (Overall Stigma, Difference, Disdain, and Blame), intentions for getting waivered or to prescribe buprenophine if waivered, and perceptions of people with OUD and OUD treatment. The mean and standard deviations for both training groups, as well as, the t-statistic, corresponding p-value, and Cohen’s d-value all demonstrate that there are minimal or no significant differences between the two training groups across all measured training outcomes.
Correlations among Self-Reported Stigma and Intentions to Treat People¶
corr_matrix = df[features].corr().round(2)
mask = np.triu(np.ones_like(corr_matrix, dtype=bool))
corr_matrix.columns = ['1', '2', '3', '4', '5', '6', '7', '8', '9']
Markdown(corr_matrix.mask(mask).to_markdown())In the final table above, we can see how self-reported stigma, intentions for getting waivered or to prescribe buprenophine if waivered, and perceptions of people with OUD and OUD treatment are related. We use Pearson’s correlation coefficients to measure the relation between the measured training outcomes.
Unsurprisingly, the components for measuring stigma are strongly, positively correlated. We can also see moderate or high positive correlations between Perceived OUD treatment adherence and treatment effectiveness, between PCCs’ intentions to get waivered and to prescribe buprenorphine, and between PCCs’ willingness to work with OUD patients and the PCCs intentions to prescribe buprenorphine and their perceived OUD treatment effectiveness/adherence.
There is also a slight or moderate negative correlation between PCCs’ self-reported stigma and their intensions to work with OUD patients, their perceived OUD treatment effectiveness/adherence, and their intention to get waivered and prescribe buprenorphine.
Conclusions¶
The study demonstrated there was little relation between the provided stigma reduction training and PCCs’ stigma, future intentions, willingness to work with OUD patients, or PCCs’ perception of treatment effectiveness or patient treatment adherence. As was expected, there was a relation amongst PCCs’ established stigma and their willingness to work with OUD patients and their perceptions of OUD treatment effectiveness and adherence.
Since greater established PCC stigma is shown to inversely relate to PCCs’ willingness to treat people with OUD, intentions to prescribe buprenophine, and perceptions regarding treatment effectiveness and patient adherence to treatment, it is important to find more effective intervention methods for reducing stigma.
References¶
Paper¶
Hooker, Stephanie A et al. “A randomized controlled trial of an intervention to reduce stigma toward people with opioid use disorder among primary care clinicians.” Addiction science & clinical practice vol. 18,1 10. 11 Feb. 2023, doi:10.1186/s13722-023-00366-1
Study¶
Hooker, S., Rossum, R., Crain, L., Bart, G. “Reducing Stigma toward People with Opioid Use Disorder among Primary Care Clinicians.” NIDA Data Share. May 2024, NIDA-CTN-0095A2
HEAL Data Platform¶
Hooker, Stephanie A.& Bart, Gavin & Rossom, Rebecca (2025). Reducing Stigma Toward People with Opioid Use Disorder Among Primary Care Clinicians 2. HEAL Data Platform. Study Record. 10.60490/HDP01287
- Hooker, S. A., Crain, A. L., LaFrance, A. B., Kane, S., Fokuo, J. K., Bart, G., & Rossom, R. C. (2023). A randomized controlled trial of an intervention to reduce stigma toward people with opioid use disorder among primary care clinicians. Addiction Science & Clinical Practice, 18(1). 10.1186/s13722-023-00366-1
- Hooker, S. A., Bart, G., & Rossom, R. (2025). Reducing Stigma Toward People with Opioid Use Disorder Among Primary Care Clinicians. HEAL Data Platform. 10.60490/HDP01287