Streszczenie

W raporcie analizuję bazę danych zdarzeń pogodowych NOAA z lat 1950–2011, aby ustalić, które typy zdarzeń są najbardziej szkodliwe dla zdrowia publicznego oraz powodują największe straty ekonomiczne w Stanach Zjednoczonych. Analizę rozpoczynam od surowego pliku data_StormData.csv.bz2, który wczytuję bezpośrednio w R. Z danych wybieram jedynie kolumny istotne dla pytań badawczych: typ zdarzenia, liczbę ofiar śmiertelnych i rannych oraz szacunki strat majątkowych i rolnych. Wartości strat przeliczam na dolary, korzystając z kolumn wykładników (K, M, B). Szkodliwość dla zdrowia mierzę sumą ofiar śmiertelnych i rannych dla każdego typu zdarzenia. Straty ekonomiczne mierzę sumą strat majątkowych i rolnych. Wyniki przedstawiam dla dziesięciu najgroźniejszych typów zdarzeń w obu kategoriach. Najwięcej szkód dla zdrowia powodują tornada. Największe straty ekonomiczne wynikają z powodzi. Wyniki wskazują, że priorytet w przygotowaniach powinny mieć tornada (zdrowie) oraz powodzie i huragany (gospodarka).

Przetwarzanie danych

Dane wczytuję bezpośrednio z surowego, skompresowanego pliku CSV.

# KOD
dat <- read.csv("data_StormData.csv.bz2")
dim(dat)
## [1] 902297     37

Do analizy potrzebne są tylko kolumny dotyczące typu zdarzenia (EVTYPE), ofiar (FATALITIES, INJURIES) oraz strat (PROPDMG, PROPDMGEXP, CROPDMG, CROPDMGEXP).

# KOD
storm <- dat %>%
  select(EVTYPE, FATALITIES, INJURIES,
         PROPDMG, PROPDMGEXP, CROPDMG, CROPDMGEXP)
head(storm)
##    EVTYPE FATALITIES INJURIES PROPDMG PROPDMGEXP CROPDMG CROPDMGEXP
## 1 TORNADO          0       15    25.0          K       0           
## 2 TORNADO          0        0     2.5          K       0           
## 3 TORNADO          0        2    25.0          K       0           
## 4 TORNADO          0        2     2.5          K       0           
## 5 TORNADO          0        2     2.5          K       0           
## 6 TORNADO          0        6     2.5          K       0

Wartości strat są zapisane jako liczba (PROPDMG, CROPDMG) oraz wykładnik (PROPDMGEXP, CROPDMGEXP), gdzie K oznacza tysiące, M miliony, a B miliardy dolarów. Tworzę funkcję pomocniczą, która zamienia wykładnik na mnożnik, a następnie obliczam straty w dolarach.

# KOD
mnoznik <- function(exp) {
  exp <- toupper(as.character(exp))
  case_when(
    exp == "K" ~ 1e3,
    exp == "M" ~ 1e6,
    exp == "B" ~ 1e9,
    TRUE ~ 1
  )
}

storm <- storm %>%
  mutate(
    szkody_zdrowie = FATALITIES + INJURIES,
    straty_dolary = PROPDMG * mnoznik(PROPDMGEXP) +
                    CROPDMG * mnoznik(CROPDMGEXP)
  )

Sumuję ofiary śmiertelne i rannych w obrębie każdego typu zdarzenia i wybieram dziesięć najgroźniejszych typów.

# KOD
zdrowie <- storm %>%
  group_by(EVTYPE) %>%
  summarise(Ofiary = sum(szkody_zdrowie)) %>%
  arrange(desc(Ofiary)) %>%
  head(10)
zdrowie
## # A tibble: 10 × 2
##    EVTYPE            Ofiary
##    <chr>              <dbl>
##  1 TORNADO            96979
##  2 EXCESSIVE HEAT      8428
##  3 TSTM WIND           7461
##  4 FLOOD               7259
##  5 LIGHTNING           6046
##  6 HEAT                3037
##  7 FLASH FLOOD         2755
##  8 ICE STORM           2064
##  9 THUNDERSTORM WIND   1621
## 10 WINTER STORM        1527

Sumuję straty w dolarach w obrębie każdego typu zdarzenia (w miliardach dolarów) i również wybieram dziesięć najgroźniejszych typów.

# KOD
ekonomia <- storm %>%
  group_by(EVTYPE) %>%
  summarise(Straty_mld = sum(straty_dolary) / 1e9) %>%
  arrange(desc(Straty_mld)) %>%
  head(10)
ekonomia
## # A tibble: 10 × 2
##    EVTYPE            Straty_mld
##    <chr>                  <dbl>
##  1 FLOOD                 150.  
##  2 HURRICANE/TYPHOON      71.9 
##  3 TORNADO                57.4 
##  4 STORM SURGE            43.3 
##  5 HAIL                   18.8 
##  6 FLASH FLOOD            17.6 
##  7 DROUGHT                15.0 
##  8 HURRICANE              14.6 
##  9 RIVER FLOOD            10.1 
## 10 ICE STORM               8.97

Wyniki

Które typy zjawisk (określone w zmiennej EVTYPE) są najbardziej szkodliwe dla zdrowia ludności w Stanach Zjednoczonych?

Poniższa tabela i wykres przedstawiają dziesięć typów zdarzeń o największej łącznej liczbie ofiar.

# KOD
kable(zdrowie, col.names = c("Typ zdarzenia", "Łączna liczba ofiar"))
Typ zdarzenia Łączna liczba ofiar
TORNADO 96979
EXCESSIVE HEAT 8428
TSTM WIND 7461
FLOOD 7259
LIGHTNING 6046
HEAT 3037
FLASH FLOOD 2755
ICE STORM 2064
THUNDERSTORM WIND 1621
WINTER STORM 1527
# KOD
ggplot(zdrowie, aes(x = reorder(EVTYPE, Ofiary), y = Ofiary)) +
  geom_col(fill = "green") +
  coord_flip() +
  xlab("Typ zdarzenia") +
  ylab("Liczba ofiar") +
  ggtitle("Typy zdarzenia najbardziej szkodliwe dla zdrowia publicznego")

Najbardziej szkodliwym typem zdarzenia dla zdrowia publicznego są tornada, które odznaczają się ogromną przewagą wśród reszty zjawisk.

Które typy zjawisk powodują największe straty ekonomiczne w Stanach Zjednoczonych?

Poniższa tabela i wykres przedstawiają dziesięć typów zdarzeń o największych łącznych stratach ekonomicznych w miliardach dolarów.

# KOD
kable(ekonomia, col.names = c("Typ zdarzenia", "Straty (mld USD)"))
Typ zdarzenia Straty (mld USD)
FLOOD 150.319678
HURRICANE/TYPHOON 71.913713
TORNADO 57.352114
STORM SURGE 43.323541
HAIL 18.758222
FLASH FLOOD 17.562129
DROUGHT 15.018672
HURRICANE 14.610229
RIVER FLOOD 10.148404
ICE STORM 8.967041
# KOD
ggplot(ekonomia, aes(x = reorder(EVTYPE, Straty_mld), y = Straty_mld)) +
  geom_col(fill = "red") +
  coord_flip() +
  xlab("Typ zdarzenia") +
  ylab("Straty ekonomiczne (mld USD)") +
  ggtitle("Typy zjawisk powodujące największe straty ekonomiczne")

Największe straty ekonomiczne powodują powodzie, a w dalszej kolejności huragany/tajfuny oraz tornada. Z perspektywy zarządzania kryzysowego oznacza to, że przygotowania powinny w pierwszej kolejności obejmować tornada (ze względu na zagrożenie dla zdrowia i życia) oraz powodzie i huragany (ze względu na skalę strat materialnych).x