To create an accurate summary of each variable, I grouped them into logical categories. The first table includes the majority of variables, excluding specific climate-related disasters, their associated costs and death tolls, as well as the annual extreme precipitation days (percentiles for the 99th and 95th). These exclusions are due to the fact that the billion-dollar climate disaster variables do not occur every year or consistently across time
Within this summary, we excluded the United States as a whole to focus on regional variations. This model reveals that certain variables are significantly associated with infant mortality rates (IMR) in the dataset. CO2 emissions, NO2, and PM10 all show statistically significant negative relationships with IMR, suggesting that increased levels of these pollutants might correlate with lower IMR, which is counter intuitive and could be due to confounding factors such as higher socioeconomic conditions in areas with greater emissions. In contrast, average severe drought occurrence is positively and strongly associated with IMR. Areas with frequent drought may face resource scarcity, affecting health services and thus infant outcomes. Interestingly, income, ozone, and population size do not show significant effects in this model, which might indicate that direct environmental factors or other socioeconomic factors have a more pronounced impact on IMR.
Moving on to the billion-dollar weather and climate disasters, this summary includes only the different disaster types, their CPI-adjusted costs, and the related death tolls.
Summary Statistics for Extreme Weather Events, CPI Cost, and Related Disaster Deaths
In this regression model examining billion-dollar weather and climate disasters, Tropical Cyclones and Freezes emerge as the most impactful disaster types on infant mortality rates, both showing significant positive relationships. This suggests that regions affected by these events may experience higher IMR, likely due to disruptions in healthcare and infrastructure. Interestingly, CPI-Adjusted Cost is significantly and negatively associated with IMR, which could indicate that higher-cost disasters tend to occur in wealthier areas with better resources for recovery, thus mitigating impacts on IMR.
Percentage Occurrence of Each Extreme Weather Event
Disaster.Type
Percentage....
Severe_Storm
54.10
Tropical_Cyclone
20.28
Flooding
13.14
Winter_Storm
22.14
Wildfire
16.06
Freeze
3.08
In this final group, we focus on extreme precipitation days, specifically at the 99th and 95th percentiles. These thresholds were chosen to capture the impact of very intense rainfall events, with the 99th percentile representing the most extreme days and the 95th capturing high, but slightly less severe, rainfall.
Summary Statistics of Annual Extreme Precipitation Days (Percentiles)
Summary Statistics
99th
95th
Min
0.00
5.00
X1st.Qu.
4.00
15.00
Median
5.00
18.00
Mean
5.51
18.87
X3rd.Qu.
7.00
22.00
Max
17.00
55.00
Call:
lm(formula = IMR ~ ., data = clean_summary3)
Residuals:
Min 1Q Median 3Q Max
-12.336 -4.403 -2.833 -0.945 217.232
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 7.7925 1.5501 5.027 5.53e-07 ***
Max.Value.99th -0.5205 0.2962 -1.757 0.0791 .
Max.Value.95th 0.2586 0.1211 2.135 0.0329 *
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 17.43 on 1629 degrees of freedom
Multiple R-squared: 0.002814, Adjusted R-squared: 0.00159
F-statistic: 2.298 on 2 and 1629 DF, p-value: 0.1008
The model indicates that extreme rainfall (99th percentile) has a slightly negative relationship with IMR, meaning areas with very heavy rain may not see an increase in IMR due to better resilience and infrastructure. In contrast, frequent heavy rain (95th percentile) is positively linked to higher IMR, suggesting that these less extreme events can strain resources and indirectly impact infant health.
CO2 Emissions And IMR
The two graphs show annual trends in CO2 emissions and Infant Mortality Rate (IMR) over time, using a population-weighted average and excluding national data to highlight regional patterns.
The CO2 emissions graph shows an upward trend in emissions until around the late 2000s, followed by a decline in recent years. This suggests a general increase in industrial and transportation activities over time, with a possible decline due to environmental policies, economic shifts, or advancements in cleaner technology.
In contrast, the IMR graph reveals a decreasing trend overall, with some fluctuations. This decline aligns with improvements in healthcare, public health interventions, and socioeconomic conditions over the years, which contribute to better infant health outcomes. However, occasional peaks suggest that certain years experienced higher-than-average IMR, possibly due to regional healthcare disparities or environmental stressors.
PM10, NO2, and Ozone are key pollutants that directly impact air quality and health. Originating from sources like vehicle emissions, industrial activities, and natural occurrences, these pollutants are known to affect respiratory and cardiovascular health. Unlike CO2, which primarily influences climate change, PM10, NO2, and Ozone have immediate health implications. Let’s explore how these pollutants trend over time and examine any patterns in relation to Infant Mortality Rate (IMR)
NO2: Shows a steady decline over the years, particularly from the 2000s onward, likely due to stricter air quality regulations. Reduced NO2 levels suggest improvements in air quality, which could contribute to lower respiratory risks, indirectly benefiting IMR.
Ozone: Initially high in the 1980s and 1990s, Ozone levels decrease after 2000 but fluctuate in recent years. This variability may reflect changing climate conditions, as Ozone forms through complex reactions involving NO2 and sunlight. High ozone levels can exacerbate respiratory issues, potentially affecting vulnerable populations like infants.
PM10: Although PM10 levels spike in the late 1990s, there’s a general downward trend overall. This decline points to improved industrial emissions control and pollution management, which likely supports better health outcomes and could indirectly influence IMR.
We analyzed the link between income levels and CO2 emissions by categorizing data into income brackets to see if different regions show varied emissions.
data_grouped <- data_clean %>%filter(State !="United States") %>%mutate(Income_Bracket =cut(`Real Median HH Income`,breaks =quantile(`Real Median HH Income`, probs =seq(0, 1, by =0.2), na.rm =TRUE),labels =c("$40k-$58k", "$58k-$64k", "$64k-$70k", "$70k-$78k", "$78k-$113k"),include.lowest =TRUE)) %>%group_by(Income_Bracket) %>%summarise(Avg_CO2_Emissions =weighted.mean(`CO2 Emissions( MMT)`, w=Population, na.rm =TRUE), .groups ='drop')ggplot(data_grouped, aes(x = Income_Bracket, y = Avg_CO2_Emissions, group =1)) +geom_line() +geom_point() +# Points to highlight the datalabs(title ="Average CO2 Emissions by Income Bracket",x ="Income Bracket",y ="Average CO2 Emissions (MMT)") +theme_minimal() +theme(axis.text.x =element_text(angle =45, hjust =1)) # Improve x-axis labels readability
The graph shows a inverted-U shape. Initially, as income moves from the lowest bracket to the middle brackets , CO2 emissions increase, peaking in the $58k–$64k and $70k–$78k income brackets. However, in the highest income bracket, CO2 emissions drop sharply. It mirrors the Environmental Kuznets Curve (EKC) hypothesis, which states that environmental degradation rises with income up to a certain point, after which it begins to decline as income continues to increase. The theory suggests that economic growth initially leads to environmental degradation, but after achieving a certain level of economic prosperity, higher levels of social and political awareness lead to environmental improvements.
# Step 1: Group by Income Bracket and Calculate Averages for Pollutantsdata_grouped_aqi <- data_clean %>%filter(State !="United States") %>%mutate(Income_Bracket =cut(`Real Median HH Income`,breaks =quantile(`Real Median HH Income`, probs =seq(0, 1, by =0.2), na.rm =TRUE),labels =c("$40k-$58k", "$58k-$64k", "$64k-$70k", "$70k-$78k", "$78k-$113k"),include.lowest =TRUE)) %>%group_by(Income_Bracket) %>%summarise(Avg_PM10 =weighted.mean(PM10, w = Population, na.rm =TRUE),Avg_NO2 =weighted.mean(NO2, w = Population, na.rm =TRUE),Avg_Ozone =weighted.mean(Ozone, w = Population, na.rm =TRUE),.groups ='drop' )# Step 2: Pivot data from wide to long formatdata_long <- data_grouped_aqi %>%pivot_longer(cols =c(Avg_PM10, Avg_NO2, Avg_Ozone),names_to ="Pollutant",values_to ="Average_Emissions" ) %>%mutate(Pollutant =factor(Pollutant, levels =c("Avg_PM10", "Avg_NO2", "Avg_Ozone")))# Step 3: Create faceted line graph with ggplot2ggplot(data_long, aes(x = Income_Bracket, y = Average_Emissions, group =1, color = Pollutant)) +geom_line() +geom_point(size =3) +labs(title ="Average Emissions by Income Bracket",x ="Income Bracket",y ="Average Emissions (Units)",color ="Pollutant") +facet_wrap(~Pollutant, scales ="free_y") +theme_minimal() +theme(axis.text.x =element_text(angle =45, hjust =1), legend.position ="bottom")
Let’s examine the relationship between various air pollutants and income brackets. For most pollutants, we observe a familiar trend: levels increase across the income brackets and then decline at the highest income levels, aligning with the Environmental Kuznets Curve hypothesis. However, Ozone presents a distinct pattern, with a gradual increase up to the $64k–$70k bracket, followed by a sharp spike in the $70k–$78k bracket, and then a steep decline. This unique behavior for Ozone might reflect the complex interplay of urban density, traffic, and industrial activity in mid- to upper-income areas, influencing its formation differently than other pollutants.
Extereme Weather Events/ Cost & Consequences
Now, let’s explore the impact of extreme weather events on both Infant Mortality Rate (IMR) and CO2 emissions. By examining the frequency, cost, and death toll of these disasters over time, we aim to understand whether the financial and human impact of these events correlates with changes in IMR and emissions levels.
To estimate the overall costs and death tolls associated with these events over time, we avoid double-counting by ensuring that identical CPI-adjusted costs and death totals for the same event across multiple states in a given year are only counted once.
The graphs show that financial costs of disasters have increased sharply, especially since the early 2000s, while disaster-related deaths fluctuate without a clear trend. Rising costs suggest extreme weather events are becoming more economically damaging due to greater frequency and intensity. In contrast, death toll peaks in certain years indicate specific deadly events, but there’s no steady rise in fatalities. This may reflect better disaster preparedness and response, even as the financial impact continues to rise.
The table shows that severe storms and tropical cyclones are the most impactful disaster types, both economically and in terms of human lives lost. Severe storms lead with the highest average cost and death toll, followed closely by tropical cyclones and droughts. This indicates that these large-scale events require substantial resources for recovery and pose significant risks to human life. In contrast, freezes and wildfires incur the lowest average costs and deaths, likely due to their more localized impact.
disaster_comparison <- data_summarized %>%group_by(Disaster_Type) %>%summarise(Avg_Cost =mean(Cost, na.rm =TRUE),Avg_Deaths =mean(Deaths, na.rm =TRUE) ) %>%arrange(desc(Avg_Cost))# Display using knitr for a clean, formatted tableknitr::kable(disaster_comparison, col.names =c("Disaster Type", "Average Cost", "Average Deaths"),caption ="Comparison of Disaster Types by Average Cost and Deaths")
Comparison of Disaster Types by Average Cost and Deaths
# Assuming 'data' includes a 'Total_Area' column for the area of each statestate_summary_adjusted <- data_clean %>%filter(State !="United States") %>%group_by(State) %>%summarise(Total_Disasters =sum(Severe_Storm + Tropical_Cyclone + Flooding + Winter_Storm + Wildfire + Freeze, na.rm =TRUE),Avg_IMR =weighted.mean(IMR, w = Population, na.rm =TRUE),Total_CO2_Emissions =sum(`CO2 Emissions( MMT)`, na.rm =TRUE),Total_Area =mean(`Total Area`) # Assuming area doesn't change, so mean is just a placeholder ) %>%mutate(CO2_Emissions_Per_Unit_Area = Total_CO2_Emissions / Total_Area )# Assuming the state_summary_adjusted already has the necessary calculations# and you've previously created these top lists correctly:top_disasters <- state_summary_adjusted %>%arrange(desc(Total_Disasters)) %>%select(State, Total_Disasters, Avg_IMR, CO2_Emissions_Per_Unit_Area) %>%slice_head(n =10)top_imr <- state_summary_adjusted %>%arrange(desc(Avg_IMR)) %>%select(State, Total_Disasters, Avg_IMR, CO2_Emissions_Per_Unit_Area) %>%slice_head(n =10)top_co2_per_area <- state_summary_adjusted %>%arrange(desc(CO2_Emissions_Per_Unit_Area)) %>%select(State, Total_Disasters, Avg_IMR, CO2_Emissions_Per_Unit_Area) %>%slice_head(n =10)
This tables helps use try to create policy-making
library(knitr)# Print the tables using kableprint(kable(top_disasters, caption ="Top 10 States by Total Disasters", col.names =c("State", "Total Disasters", "Average IMR", "CO2 Emissions per Unit Area")))
Table: Top 10 States by Total Disasters
|State | Total Disasters| Average IMR| CO2 Emissions per Unit Area|
|:--------------|---------------:|-----------:|---------------------------:|
|North Carolina | 54| 14.039918| 0.0826082|
|Texas | 53| 6.281371| 0.0793335|
|Georgia | 48| 14.523310| 0.0872478|
|Virginia | 47| 7.292722| 0.0860213|
|Mississippi | 46| 10.242898| 0.0410751|
|Pennsylvania | 44| 7.465346| 0.1877909|
|Alabama | 43| 15.440152| 0.0801881|
|Louisiana | 43| 10.063125| 0.1277697|
|Tennessee | 43| 8.336426| 0.0890345|
|New York | 42| 25.162755| 0.1185538|
print(kable(top_imr, caption ="Top 10 States by Infant Mortality Rate", col.names =c("State", "Total Disasters", "Average IMR", "CO2 Emissions per Unit Area")))
Table: Top 10 States by Infant Mortality Rate
|State | Total Disasters| Average IMR| CO2 Emissions per Unit Area|
|:--------------|---------------:|-----------:|---------------------------:|
|Florida | 35| 66.91422| 0.1153381|
|New York | 42| 25.16275| 0.1185538|
|New Jersey | 32| 22.19253| 0.4431835|
|Alabama | 43| 15.44015| 0.0801881|
|Colorado | 31| 14.61976| 0.0273614|
|Georgia | 48| 14.52331| 0.0872478|
|North Carolina | 54| 14.03992| 0.0826082|
|Connecticut | 25| 12.29807| 0.2376222|
|Oklahoma | 37| 10.47536| 0.0472918|
|Mississippi | 46| 10.24290| 0.0410751|
print(kable(top_co2_per_area, caption ="Top 10 States by CO2 Emissions per Unit Area", col.names =c("State", "Total Disasters", "Average IMR", "CO2 Emissions per Unit Area")))
Table: Top 10 States by CO2 Emissions per Unit Area
|State | Total Disasters| Average IMR| CO2 Emissions per Unit Area|
|:--------------------|---------------:|-----------:|---------------------------:|
|District of Columbia | 0| 4.973524| 1.8532353|
|New Jersey | 32| 22.192531| 0.4431835|
|Massachusetts | 21| 5.096484| 0.2430775|
|Rhode Island | 18| 6.580282| 0.2404013|
|Connecticut | 25| 12.298073| 0.2376222|
|Delaware | 17| 4.609059| 0.2149458|
|Indiana | 33| 7.937430| 0.1930967|
|Maryland | 35| 7.708849| 0.1916669|
|Pennsylvania | 44| 7.465346| 0.1877909|
|Ohio | 38| 7.897962| 0.1837880|
With this table we can look at overlapping, for examples, States like North Carolina, Georgia, Alabama, New York, and Mississippi are notably impacted by high disaster frequencies as well as significant infant mortality rates, which may indicate broader socio-economic and environmental challenges.
Correlation Matrix Plot
library(corrplot)
Warning: package 'corrplot' was built under R version 4.4.1
corrplot 0.95 loaded
numeric_data <- data_clean %>%select_if(is.numeric)cor_matrix <-cor(numeric_data, use ="complete.obs")corrplot(cor_matrix, method ="square", type ="full",tl.col ="black", tl.srt =45,diag =FALSE,cl.pos ="b", cl.cex =0.75, # Position and size of the color legendcol =colorRampPalette(c("#6BAED6", "#FFFFFF", "#FD8D3C"))(200)) # Blue to white to red palette