How the HIV/AIDS Epidemic Unfolded, between Policy and Stigma

Emma Dunn (Data Science at Reed College)https://reed-statistics.github.io/math241-spring2022/ , Maggie Britton (Data Science at Reed College)https://reed-statistics.github.io/math241-spring2022/
May 4, 2022

Problem Statement and Background

Our goal is to examine how the HIV/AIDS epidemic developed over time, especially in conjunction with political and social responses. How did the epidemic develop over time, and how does it interact with discriminatory laws and social stigma? Like COVID-19, the HIV/AIDS epidemic is one fraught with political implications, as for example a conservative government in America was reluctant to act on a disease largely afflicting certain minority communities, and so it is revealing and informative to examine how exactly it developed and how it interacts with politics and society. (Padamsee, 2018)

Data Descriptions

The data we used in our exploratory research came from sources such as UNAIDS, the University of Florida, and the tmaps package. Our main source of HIV case data came from aids.csv from UNAIDS. This data set has detailed demographic information on new and existing cases for countries between 1990 and 2020. The variable we used to represent cases came from the numerical variable “Data.New HIV Infections.All Ages”. We are using the new infections over existing infections in order to view the rapid growth and progression of an epidemic. (Ryan Whitcomb, 2021)

We then combined this information from the UNAIDS Global Aids Monitoring 2021 dataset (titled GAM_2021_en.csv). This dataset contains variables that describe aids-related information for different countries such as the % of people on pre-exposure prophylaxis (PrEP), the presence of certain discriminatory laws (yes/no variable), and Coverage of HIV prevention programs (% of people enrolled). We used this for calculating the number of discriminatory laws each country has (the dataset has a total of 4), and the coverage of HIV prevention programs for certain minority groups (again, the dataset covers 4: gay men, transgender people, sex workers, and people who inject drugs). (UNAIDS, 2021)

We also used data from the University of Florida (_database_digital_rev.4_7_21.xlsx) to look at how discriminatory laws may correlate with homophobia and religiosity. This dataset contains SOGI-LI, which is an index for sexual orientation and gender identity legality. We are using this to represent the degree of which homophobia is present in a country. While HIV isn’t exclusively spread by gay men, there is a large stigma associated with the LGBT population. We used this dataset because even if there isn’t direct causation, the SOGI-LI and religiosity demographic info might be interesting to compare across countries with punitive HIV laws. (Serwatka, 2020) Similarly, we used a dataset dealing with discrimination toward HIV-positive individuals (HIV_Discrimination_2021.xlsx) to order to evaluate the stigma toward HIV across countries and compare this with the above data. (UNICEF, 2020)

Data Explorations

hide
#load csv files
AIDS <- read_csv("aids.csv")
exclude <- c("TB | Hepatitis")
homophobia <- read_excel("_database_digital_rev.4_7_21.xlsx")
aids_data <- read_csv("GAM_2021_en.csv") %>%
#filter out all the TB data (this data set has a lot of hiv and tb related datasets)
filter(str_detect(Indicator, exclude) == FALSE)
hide
#Wrangling
#make subset that includes data on the four discriminatory laws 
criminal_laws <- aids_data %>%
filter(str_detect(Indicator, c("Laws"))) %>%
rename(Data_Value = `Data Value`) %>%
#group Data Values into yes/no categories
mutate(YN = recode(Data_Value, "No" = "No",  
                   "No, but prosecutions exist based on general criminal laws" = 
                     "No", .default = "Yes")) %>%

#create summary value of how many yeses, how many nos for each nation
group_by(Area, YN) %>%
summarise(count = n()) %>%
#create variable that is how many anti hiv laws in total
mutate(Laws = case_when(
        YN == "Yes" & count == 4 ~ 4,
        YN == "No" ~ 4 - count)) %>%
drop_na() %>%
select(Area, Laws) %>%
rename(Country = Area, DiscriminatoryLaws = Laws)

#initial wrangling on the geography sf
data(World)
World_file <- World %>%
rename(Country = name) %>%
filter(Country != "Antarctica")
hide
#make large datafile with AIDS case data, geography sf data, descriminitory law data
aids_df_full <- criminal_laws %>%
full_join(AIDS, by = "Country") %>%
rename(HIV_new_cases=`Data.New HIV Infections.All Ages`) %>%
select(Country, Year, DiscriminatoryLaws, HIV_new_cases) %>%
#change the name of some of the countries to make joining easier
mutate(Country = recode(Country, "Bolivia (Plurinational State of)" = "Bolivia",  
                   "Côte d'Ivoire" = "Cote d'Ivoire", 
                   "Democratic Republic of the Congo" = "Dem. Rep. Congo",
                   "Dominican Republic" = "Dominican Rep.",
                   "Eswatini" = "Swaziland",
                   "Iran (Islamic Republic of)" = "Iran",
                   "Lao People's Democratic Republic" = "Laos",
                   "Republic of Moldova" = "Moldova",
                   "South Sudan" = "S. Sudan",
                   "Viet Nam" = "Vietnam",
                   "Venezuela (Bolivarian Republic of)" = "Venezuela",
                   "United Republic of Tanzania" = "Tanzania")) %>%
full_join(World_file, by = "Country") %>%
drop_na()

#include data on homophobia
homophobia_laws <- homophobia %>%
rename(Country = country) %>%
full_join(criminal_laws, by = "Country")

Section 1: Discriminatory Laws - Graphs 1 and 2

hide
#make plots
ggplot(data=aids_df_full, aes(x= Year, y = HIV_new_cases,
                              color = as.character(DiscriminatoryLaws))) + 
  geom_smooth(method = loess, fill=NA, formula = 'y ~ x') + 
  labs(title = "HIV cases depending on case laws", color = "laws", 
subtitle = "Laws include criminalization of transmission, criminalization of testing for minors, 
criminalization of testing for married women, and barred entry for HIV positive individuals") + 
  facet_wrap(~continent, scales = "free_y")
hide
ggplot(data=homophobia_laws, aes(y= `SOGI-LI`, x= Religiosity, color = 
continent, size = DiscriminatoryLaws)) + geom_point(alpha = 0.8) + 
  labs(title = "Sexual Orientation and Gender Identity Legal Index, Religiosity, and 
       HIV Descriminitory Laws Across Continents",
subtitle = "Laws include criminalization of transmission, criminalization of testing for minors, 
criminalization of testing for married women, and barred entry for HIV positive individuals", 
       y = "A sexual orientation and gender identity legal index (SOGI-LI)")

For the first two graphs made, we looked at laws discriminating against those with HIV. This variable was obtained from the UNAIDS Global Aids Monitoring 2021 data set. In total, there were a maximum of 4 relevant laws a country could have: the criminalization of transmission, criminalization of testing for minors, criminalization of testing for married women, and barring entry to the country for HIV-positive individuals. Out of the countries that had all 4 discriminatory laws, only one reported their case numbers (Indonesia). This is likely because in countries that discriminate if people do have HIV they either don’t report it or aren’t able to be tested.

In the first graph, we looked at the presence of these laws across continents, and how they related to case numbers over time. The year is mapped to the x-axis, new cases are mapped to the y-axis, and the number of laws is mapped to color. The graphs are divided into different facets. Each line represents a grouping of countries with these discriminatory laws. In general, the highest case numbers for each continent came from countries with at least 1 or 2 discriminatory laws. The highest number of new cases during this period came from Africa, specifically South Africa and Kenya. Most countries within Africa have 1-3 discriminatory laws. In Asia, Thailand and Indonesia had the highest cases, with Thailand having 1 discriminatory law and Indonesia having 4 discrimination laws. In general, the countries with 0 discrimination laws have the lowest amount of cases. This could be related to higher acceptance and thus more comprehensive responses to control the spread. On the contrary, this could also be related to a country refusing to discuss the issue, as many countries with 0 discrimination laws are quite conservative (Afghanistan, Sri Lanka, etc).

In the second graph, we wanted to tackle this question of conservatism and discriminatory laws. We looked at the index for sexual orientation and gender identity legality (SOGI-LI) (y-axis) across religiosity (x-axis). The number of discriminatory laws is mapped to the size of the point and each country’s respective continent is mapped to a color. As we stated earlier, we used this dataset because, even though gay men aren’t fully responsible for the spread of HIV, the SOGI-LI and religiosity demographic variables might be indicators for social conservatism. We found that the number of discriminatory laws really varies across religiosity and SOGI-LI variables. For some of the most LGBTQ+ tolerant and least religious countries, such as the euopean countries in the top left, there are around 3 discriminatory laws. Further, for the least LGBTQ+ tolerant and most religious countries, there are around a few 0 discriminatory law countries. The information from these two graphs suggests that discriminatory laws may not be indicators of social conservatism, however, and may instead be indicators for higher HIV infection.

Animated Map

hide
sf_data <- World_file %>%
left_join(AIDS, by = "Country") %>%
left_join(criminal_laws, by = "Country") %>%
rename(New_Cases= `Data.New HIV Infections.All Ages`)


tm = tm_shape(World_file) +
  tm_polygons() +
  tm_shape(sf_data) +
  tm_dots(size = "New_Cases", col = "DiscriminatoryLaws", border.col = "white", scale = 2) +
  tm_facets(along = "Year", free.coords = FALSE) 

tmap_animation(tm,filename = "hivlaws2.gif", loop = TRUE, delay = 20)
hide
knitr::include_graphics("hivlaws2.gif")

For the animated map, we wanted to visualize the spread of HIV and outbreaks over time. Further, how the number of discriminatory laws vary across regions with outbreaks. The size of the outbreak is mapped to the size of the dots and the color is mapped to discriminatory laws. As you can see by the growing bubbles in the region, there was a large outbreak in the southern region of Africa between 1990-2020. The outbreak peaks around 2000 and begins to rapidly decrease around 2005. Generally, these countries have around 2-3 discriminatory laws. Not all countries have data, which unfortunately includes the United States, as there was a limited amount of data on the number of discriminatory laws each country has.

Section 2: Discriminatory Attitudes - Graph 3

hide
#wrangling
discrimination <- read_excel("HIV_Discrimination_2021.xlsx")

discrimination_sub <- discrimination %>%
group_by(Country) %>%
summarize("discriminatory_attitude" = mean(Value))

AIDS_sub <- AIDS %>%
select(Country, Year, `Data.HIV Prevalence.Adults`, `Data.People Living with HIV.Total`) %>%
filter(Year=="2019")
continent_sub <- homophobia %>%
select(continent,country)
HIV_stigma <- AIDS_sub %>%
mutate(Country = recode(Country, "Bolivia (Plurinational State of)" = "Bolivia", 
                        "Cote d'Ivoire" = "Cote d'Ivoire",
"Democratic Republic of the Congo" = "Dem. Rep. Congo",
"Dominican Republic" = "Dominican Rep.",
"Eswatini" = "Swaziland",
"Iran (Islamic Republic of)" = "Iran",
"Lao People's Democratic Republic" = "Laos",
"Republic of Moldova" = "Moldova",
"South Sudan" = "S. Sudan",
"Viet Nam" = "Vietnam",
"Venezuela (Bolivarian Republic of)" = "Venezuela",
"United Republic of Tanzania" = "Tanzania")) %>%
full_join(discrimination_sub, by = "Country") %>%
full_join(continent_sub, by = c("Country"="country")) %>%
drop_na()

ggplot(data=HIV_stigma, aes(x=`Data.HIV Prevalence.Adults`, y=discriminatory_attitude, color=continent)) +
geom_point() +
labs(title="HIV Prevalence and Stigma",
x="% Prevalence of HIV Among Adults",
y="% w/ Discriminatory Attitude Towards the HIV-Positive")
hide
cor(HIV_stigma$`Data.HIV Prevalence.Adults`,HIV_stigma$discriminatory_attitude)
[1] -0.5697398

In the third graph, we wanted to look at the relationship between the prevalence of HIV in a country and the stigma towards it. We looked at the percent of people in a country with a discriminatory attitude towards HIV-positive individuals (y-axis) across the % prevalence of HIV among adults (x-axis), with the continent of each country being mapped to a color. Unfortunately, the data on the intersection was quite limited, but not so limited that nothing can be gleaned from it. We found that there isn’t much of a correlation between the two variables, with a correlation coefficient of -0.5697 that is mostly affected by a few outliers as largely the prevalence of HIV varies between 0 and 5 percent while the attitudes towards HIV-positive individuals varies widely within that range. However it is still worth noting that the 3 countries with especially high rates of HIV are at the lower end of the stigma scale, indicating that attitudes become less hostile when the disease is especially prevalent. Once more, unfortunately data is quite limited and further limited by looking at this cross-section, and so the continents are limited to these three; however, it is worth noting that the epidemic is most pronounced in Africa so it is still informative.

Section 3: Discriminatory Policies - Graph 4

hide
aids_data_sub <- aids_data %>%
rename("Value" = "Data Value", "Country"="Area","Year"="Time Period") %>%
select(Indicator,Unit,Subgroup,Country,Year,Value) %>%
filter(str_detect(Indicator,"Coverage of HIV prevention") == TRUE) %>%
arrange(Country)
homophobia_sub <- homophobia %>%
rename("SOGI_LI"="SOGI-LI")
program_discrimination <- aids_data_sub %>%
mutate(Country = recode(Country, "Bolivia (Plurinational State of)" = "Bolivia",
"Cote d'Ivoire" = "Cote d'Ivoire",
"Democratic Republic of the Congo" = "Dem. Rep. Congo",
"Dominican Republic" = "Dominican Rep.",
"Eswatini" = "Swaziland",
"Iran (Islamic Republic of)" = "Iran",
"Lao People's Democratic Republic" = "Laos",
"Republic of Moldova" = "Moldova",
"South Sudan" = "S. Sudan",
"Viet Nam" = "Vietnam",
"Venezuela (Bolivarian Republic of)" = "Venezuela",
"United Republic of Tanzania" = "Tanzania")) %>%
full_join(homophobia_sub, by = c("Country"="country")) %>%
select(Indicator,Country,Value,continent,SOGI_LI) %>%
group_by(Indicator,Country) %>%
summarize("Value"=mean(as.numeric(Value)),
"SOGI_LI"=SOGI_LI,
"Continent"=continent) %>%
mutate(Indicator = recode(Indicator,
"Coverage of HIV prevention programmes among men who have sex with men" =
"Among homosexual men",
"Coverage of HIV prevention programmes among sex workers" =
"Among sex workers",
"Coverage of HIV prevention programmes among people who inject drugs" =
"Among people who inject drugs",
"Coverage of HIV prevention programmes among transgender people" =
"Among transgender people")) %>%
full_join(AIDS_sub, by = "Country") %>%
drop_na()

ggplot(program_discrimination, aes(x=SOGI_LI, y=Value, color=Continent, size=`Data.HIV Prevalence.Adults`)) + geom_point() +
facet_wrap(~Indicator) +
labs(title="HIV Prevelance, Program Coverage for Minority Groups,
and SOGI-LI Index Across Continents",
x="SOGI-LI Index Score",
y="HIV Prevention Program Coverage (%)",
size="HIV Prevalence Among Adults")

In the fourth and final graph, we again looked at SOGI-LI but this time its relationship with the coverage of HIV prevention programs for certain minority groups, and also the prevalence of HIV, across continents. We looked at the percent enrollment in HIV prevention programs (y-axis) across the SOGI-LI index score (y-axis). The prevalence of HIV is mapped to the size of each point, and each country’s respective continent is mapped to a color. While SOGI-LI does not deal with the sex worker or drug injecting communities, these were still included in order to see if there was a relationship. We found that there appears to be a slight positive correlation between a country’s SOGI-LI index score and its HIV prevention program coverage for homosexual men, transgender people, and sex workers, but not much of a relationship for people who inject drugs. The main noteworthy observation for HIV prevalence is that it is highest in certain African countries, and the continent as a whole tends to be lower on the SOGI-LI index but is not necessarily lower when it comes to coverage for these certain groups. That aside, this indicates that less socially conservative countries are more likely to better cover these minority groups who are especially at risk for HIV.

Class Peer Reviews

Padamsee, T. J. (2018). Fighting an epidemic in political context: Thirty-five years of HIV/AIDS policy making in the united states. Social History of Medicine. https://academic.oup.com/shm/article/33/3/1001/5265310
Ryan Whitcomb, B. G., Joung Min Choi. (2021). Aids CSV file. In CORGIS Datasets Project. https://corgis-edu.github.io/corgis/csv/aids/
Serwatka, T. S. (2020). Dataset for sexual orientation and gender-identity (SOGI) laws that support and/or limit international development (2018). In University of Florida, Research Datasets. https://digitalcommons.unf.edu/datasets/1/
UNAIDS. (2021). AIDSinfo. In UNAIDS Global Aids Monitoring. https://onlinedb.unaids.org/gam/libraries/aspx/home.aspx
UNICEF. (2020). Per cent of people expressing discriminatory attitudes towards people living with HIV, 2014-2020. In HIV/AIDS data by UNICEF. https://data.unicef.org/resources/dataset/hiv-aids-statistical-tables/

References

Reuse

Text and figures are licensed under Creative Commons Attribution CC BY 4.0. The figures that have been reused from other sources don't fall under this license and can be recognized by a note in their caption: "Figure from ...".