Analysis of public health and economic problems arising from severe weather events

Synopsis

The objective of the analysis is to address the following questions:

  • Across the United States, which types of events are most harmful with respect to population health?

  • Across the United States, which types of events have the greatest economic consequences?

In order to conduct this analysis, data from the U.S. National Oceanic and Atmospheric Administration’s (NOAA) storm database is explored.

On analysing the data it is found that: * In terms of fatalities the maximum damage is caused by Tornados, followed by Excessive Heat and Flash Floods

  • In terms of no. of people suffering injuries the maximum damage is caused by Tornados, followed by TSTM Winds and Floods

  • Maximum Economic damage is caused by Tornados, followed by Flash Floods and TSTM Winds.

The analysis comprises of explanatory graphs to support each of the above findings

Data Processing

Downloading storm data

download.file("https://d396qusza40orc.cloudfront.net/repdata%2Fdata%2FStormData.csv.bz2", "StormData.bz2")

Reading storm data (read.csv can be used to read data directly from a compressed file). The file contains 902297 obs. of 37 variables.

StormData <- read.csv("StormData.bz2", stringsAsFactors = F)

Finding the total number of fatalities by event type. This will give us a sense of the number of fatalites caused by each event.

FatalitiesByEvent <- with(StormData, tapply(FATALITIES, EVTYPE, sum, na.rm = T))

Finding the number of injuries by event type. This will give a sense of how many people got injured because of each event

InjuriesByEvent <- with(StormData, tapply(INJURIES, EVTYPE, sum, na.rm = T))

Similarly, we find the total property and crop damage attributable to each event type. This will help us get a sense of the economicdmg attributable to each event type

PropdmgByEvent <- with(StormData, tapply(PROPDMG, EVTYPE, sum, na.rm = T))
CropdmgByEvent <- with(StormData, tapply(CROPDMG, EVTYPE, sum, na.rm = T))

Now we shall make a compact dataframe that shall be used for further analysis and display of results

EventNames <- as.character(names(CropdmgByEvent))
DF <- data.frame(EventName = EventNames, TotalFatalities = FatalitiesByEvent, TotalInjuries = InjuriesByEvent, TotalPropertyDamage = PropdmgByEvent, TotalCropDamage = CropdmgByEvent)

Results

Damage to Human Health

We first find the top ten events that cause maximum number of fatalities and injuries.

##Fatalities by Event Type
DF <- DF[order(-DF$TotalFatalities), ]
DF1 <- DF[1:10, 1:3]

##Injuries by Event Type
DF <- DF[order(-DF$TotalInjuries), ]
DF2 <- DF[1:10, 1:3]

We then make a plot to understand which events canse maximum human fatalities and injuries

par(mfrow = c(1, 2), mar = c(7, 4, 3, 1))

plot(DF1$TotalFatalities, xaxt = "n", main = "Fatalities by Event Type", xlab = "", ylab = "Total no. of Fatalities", col = "Red", pch = 19, ylim = c(0, 6000))
axis(1, at = 1:10, labels = DF1$EventName, cex.axis = 0.60, font = 2, las = 2)
mtext("Event Type", side = 1, line = 6)

plot(DF2$TotalInjuries, xaxt = "n", main = "Injuries by Event Type", xlab = "", ylab = "Total no. of Injuries", col = "Blue", pch = 19, ylim = c(0, 100000))
axis(1, at = 1:10, labels = DF2$EventName, cex.axis = 0.60, font = 2, las = 2)
mtext("Event Type", side = 1, line = 6)

From the plots it is evident that:

  • In terms of fatalities the maximum damage is caused by Tornados, followed by Excessive Heat and Flash Floods

  • In terms of no. of people suffering injuries the maximum damage is caused by Tornados, followed by TSTM Winds and Floods

Tornados really stand out in the magnitude of damage they cause to human health, across the United States

Economic Damage

Economic Damage as a whole is considered to be the sum of the property damage and the crop damage.

Thus in order to find the total economic damage we add up the value of damages caused to property and crops.

We then find the top ten events that cause the maximum economic damage.

DF3 <- cbind(DF, TotalEconomicDamage = DF$TotalPropertyDamage+DF$TotalCropDamage)
DF3 <- DF3[order(-DF3$TotalEconomicDamage), c(1, 4, 5, 6)]
DF3 <- DF3[1:10, ]

We then finally plot a graph containing the crop damages (represented by Green), the property damages (represented in Blue), and the sum total, which we consider to be the total economic damages (represnted in Red).

par(mfrow = c(1,1), mar = c(8, 4, 3, 1))
plot(DF3$TotalPropertyDamage, xaxt = "n", main = "Economic Damage", xlab = "", ylab = "Economic Damage", type = "o", col = "blue", ylim = c(0, 3500000))

points(DF3$TotalCropDamage, xaxt = "n", type = "o", col = "green")
points(DF3$TotalEconomicDamage, xaxt = "n", type = "o", col = "red")
axis(1, at = 1:10, labels = DF3$EventName, cex.axis = 0.60, font = 2, las = 2)
legend(6, 3500000, legend = c("Crop Damage", "Property Damage", "Total Economic Damage"), col = c("green", "blue", "red"), lty = c(1,1,1))

mtext("Event Type", side = 1, line = 7)

From the plots it is evident that:

  • Maximum Economic damage is caused by Tornados, followed by Flash Floods and TSTM Winds

Once again Tornados stand out in the extent of Economic Damages they cause (mostly property damages).

Hail causes significant crop damages, compared to other weather events.