OP-18: Waste Minimization and Diversion

Summary Statistics

disclaimer - The summary statics that are provided here are from the “OP-18_Waste_Minimization_and_Diversion_2024.xlsx” and not the “OP-18_Waste_Minimization_and_Diversion_2020.xlsx” as there is no data present for the University St.Thomas in the 2020 version. This summary provides information regarding the mean, median, standard deviation, min, max of the MN peer institutions and University of St.Thomas.

As we were comparing the University of St. Thomas with all the summary statistics of other institutions, we realized that the University of Minnesota Twin Cities significantly impacts the results. Since the University of Minnesota Twin Cities is much larger compared to other institutions, it skews the data, causing St. Thomas to appear below the average in several statistics. The main reason for this difference is likely caused by the fact that the University of Minnesota Twin Cities is much larger compared to other institutions, which naturally leads to higher numbers. St. Thomas’s rank tends to fluncuate between 2nd and 3rd place in comparison to the University of Minnesota Twin Cities; it often competes with Carleton College, which has similar statistics across most variables.

peer_schools<-c("Bemidji State University","Carleton College","College of St. Benedict/St. John’s University", "Concordia Moorhead","Macalester College","Winona State University","University of Minnesota, Twin Cities","University of Minnesota, Morris","UMN – Duluth","Augsburg University","Concordia in St. Paul","Hamline University","St. Kate’s University","St. Olaf College","University of St. Thomas")
peers <-  df|>
  filter(Institution %in% peer_schools)
# Summary statistics for all numeric variables
numeric_summary <- peers |>
  summarize(across(where(is.numeric), list(
    mean = ~ mean(.x, na.rm = TRUE),
    median = ~ median(.x, na.rm = TRUE),
    sd = ~ sd(.x, na.rm = TRUE),
    min = ~ min(.x, na.rm = TRUE),
    max = ~ max(.x, na.rm = TRUE)
  )))
View(peers)
View(numeric_summary)

Data Visuilzations

This graph compares waste generations with student populations across institutions based on the performance year. The x-axis represent the total waste generated, while the y-axis show the student populations, categorized by the full-time student status. The graph is trying to show the relationship between waste generation and student population, highlighting patterns among American University, Arizona State University, Colorado College, and Elon University.

  #| warning: false
    # Filter waste and enrollment data separately, then join them
    waste_data <- data_test |>
      filter(Institution %in% c("American University", "Arizona State University", "Colorado College", "Elon University")) |>
      filter(Variable_Type == "Total waste generated") |>
      filter(Year == "performance year") |>
      filter(!is.na(Amount)) |>
      select(Institution, Amount, Variable_Type, Year)

    enrollment_data <- data_test |>
      filter(Institution %in% c("American University", "Arizona State University", "Colorado College", "Elon University")) |>
      filter(Variable_Type == "Total full-time equivalent student enrollment") |>
      filter(Year == "performance year") |>
      filter(!is.na(Amount)) |>
      select(Institution, Amount, Variable_Type, Year)

    # Join the two datasets on Institution
    merged_data <- left_join(waste_data, enrollment_data, by = "Institution", suffix = c("_waste", "_enrollment"))

    # Plot the data
    ggplot(merged_data, aes(x = Amount_waste, y = Amount_enrollment)) +
      geom_point(aes(color = Institution)) +
      labs(title = "Waste Generation vs. Campus Population",
           x = "Total Waste Generated (Performance Year)",
           y = "Full-Time Equivalent Students (Performance Year)") +
      theme_minimal()

This graph is comparing total waste generated across American University, Arizona State University, Colorado College, and Elon University. The x-axis represents the institutions, while the y-axis shows the total waste generated by each institution, based on the performance year. As you can see in the bar plot, Arizona State University generates significantly more waste compared to the other three institutions.

# Bar Plot: Total Waste Generated by Institution
ggplot(merged_data, aes(x = Institution, y = Amount_waste, fill = Institution)) +
  geom_bar(stat = "identity", show.legend = FALSE) +
  labs(title = "Total Waste Generated by Institution",
       x = "Institution",
       y = "Total Waste Generated (Performance Year)") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

This data visualization contains two bar plots: one for the baseline year and one for the performance year, representing the disposal of materials in solid waste landfill or incinerator. The x-axis for both bar plots represent the institutions, while the y-axis show the amount of materials disposed of in tons(or other units of measurements). As seen in the graph, many of the longer bars in reference to higher disposal amounts are appearing within the baseline year. From this we can infer that higher volume of materials are likely being disposed of compared to the performance year among institutions.

# Ensure data includes the baseline year and relevant materials information
ggplot(data_test |>
         filter(Variable_Type == "Materials disposed in a solid waste landfill or incinerator") |>
         filter(Year %in% c("performance year", "baseline year")) |>
         filter(!is.na(Amount)),
       aes(x = Institution, y = Amount, fill = Year)) +
  geom_bar(stat = "identity", position = "dodge", show.legend = TRUE) +
  labs(title = "Materials Disposed in Solid Waste Landfill or Incinerator (Performance vs. Baseline Year)",
       x = "Institution",
       y = "Materials Disposed (in tons or other unit)") +
  theme_minimal() +
  coord_flip()+
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

The graph is visualizing institutional waste diversion performance by material type. The x-axis represent different institutions, while the y-axis shows the percentage of materials diverted from landfill or incinerator, categorized by material type. In this visualization you can see that each material type is being represented by different color, providing an easier comparison of waste diversion performance across institutions.

library(scales)
library(stringr)
# Convert 'Institution' and 'Variable_Type' to factors to ensure they work well with geom_tile
data_test$Institution <- as.factor(data_test$Institution)
data_test$Variable_Type <- as.factor(data_test$Variable_Type)
# Wrap the text in Variable_Type to create line breaks for legend labels
data_test$Variable_Type <- factor(
  str_wrap(data_test$Variable_Type, width = 30), 
  levels = unique(str_wrap(data_test$Variable_Type, width = 30))
)
wrapped_title <- str_wrap("Institutional Waste Diversion Performance by Material Type", width = 30)
# Plot using geom_col to visualize the categories
ggplot(data_test, aes(x = Institution, y = `Percentage of materials diverted from the landfill or incinerator by recycling, composting, ...`, fill = Variable_Type)) +
  geom_col() +
  theme_minimal() +
  labs(
    title = wrapped_title,
    x = "Institution",
    y = "Percentage Diverted",
    fill = "Variable Type",
    caption = "Source: AASHE STAR"
  ) +
  theme(
    legend.text = element_text(size = 8),  # Make legend text smaller
    legend.title = element_text(size = 10), # Adjust legend title size
    legend.key.size = unit(0.5, "cm"),  # Reduce legend key size
    legend.spacing.y = unit(0.2, "cm")    # Reduce space between legend items
  ) +
  coord_flip()

This graph is a visual representation of the top 15 institutions in terms of the total amount of recycled materials. The x-axis represents the total amount of recycled materials, while the y-axis shows the top 15 institutions. As seen in this visualization, San Jose State University and the University of California, Los Angeles have recycled more materials than the other 13 institutions.

data_test$Amount <- as.numeric(data_test$Amount)

# Filter out non-finite values in the Amount column
data_test <- data_test |> 
  filter(is.finite(Amount))

# Focus on Variable_Type = "Materials recycled"
data_test <- data_test |> 
  filter(Variable_Type == "Materials recycled")

# Aggregate and select top 15 institutions by total Amount
top_institutions <- data_test |>
  group_by(Institution) |>
  summarise(Total_Amount = sum(Amount, na.rm = TRUE)) |>
  top_n(15, Total_Amount)

# Filter and reorder the data
filtered_data <- data_test |>
  filter(Institution %in% top_institutions$Institution) |>
  mutate(Institution = factor(Institution, levels = top_institutions$Institution[order(-top_institutions$Total_Amount)]))

# Create the bar chart
ggplot(filtered_data, aes(x = Institution, y = Amount, fill = Institution)) +
  geom_bar(stat = "identity", show.legend = FALSE) +  # Bar chart
  labs(
    title = "Top 15 Institutions by Recycled Materials",
    x = "Institution",
    y = "Total Recycled Materials",
    caption = "Source: AASHE STAR"
  ) +
  theme_minimal() +
  theme(
    plot.caption = element_text(hjust = 0)
  ) +
  coord_flip()

This bar plot illustrates the total accumulated waste generated by each institution. The x-axis represents the institutions, while the y-axis shows the total waste generated in units. As observed, San Jose State University and the University of California, Los Angeles produce significantly more waste than the other institutions. This disparity is likely due to the larger student populations at these universities compared to the others.

data_test$Amount <- as.numeric(data_test$Amount)

clean_data <- data_test |>
  filter(!is.na(Amount)) 

# Create a bar plot to visualize total waste generated by each institution
ggplot(clean_data, aes(x = reorder(Institution, -Amount), y = Amount, fill = Institution)) +
  geom_bar(stat = "identity", show.legend = FALSE) +
  labs(
    title = "Total Waste Generated by Institution",
    x = "Institution",
    y = "Total Waste (Units)",
    caption = "Source: AASHE STAR"
  ) +
  theme_minimal() +
  theme(
    plot.caption = element_text(hjust = 0)
  )+
  coord_flip()