We were asked to respond to two questions:
Across the United States, which types of events (as indicated in the EVTYPE variable) are most harmful with respect to population health?
Across the United States, which types of events have the greatest economic consequences?
In this analysis data from 1996 to 2011 is used to examine 4 dependent variables: fatalities, injuries, harm to crops (in dollars), and harm to property (in dollars). The data are drawn from the National Oceanic and Atmospheric Administration (NOAA) database on storm events. Although the database goes back to 1950, only data from 1996 forward is used in the analysis because prior to that year only tornados, hail and wind storms were reported (and in the early 1950s only tornados). This anaysis focused on 15 specific event types.
This analysis looks at both whether there was any harm of a given type associated with an event and for those events where there was at least some harm, what types were associated with the largest amount of harm. This analysis found that the types of events that were most harmful depends somewhat on how you measure harm. Note that not all events are typically thought of as “weather” though they often are weather related.
This table indicates the top ranked 5 event types for predicting at least some reported harm for each type of harm. These are caclulated using logistic regression with a number of controls:
This table indicates the top ranked 5 event types for predicting amount of harm for events for which there is at least some harm. These are caclulated using poisson regression for injuries and fatalities and linear regression of the logged harm for crop and property damage, with a number of controls:
For fatalities: Heat, Slides, marine, Hurricane, Lightning
For injuries: Lightning, Particles, Slides, Fire, Heat
For crops: Hurricane, Cold, Flood, Tornado, Hail
For property: Lightning, Hurricane, Thunder, Tornado, Flood.
The data required extensive cleaning prior to being used.
Please read the internal comments.
library('data.table')
library('lubridate')
library('stringi')
library('Hmisc')
Doing this only because the next block is generating an error that stops execution.
readRawData<-function()
{
stormdata<-read.csv("./repdata-data-StormData.csv.bz2",
stringsAsFactors = FALSE,
na.strings = c("NA", "", " "),
colClasses = c(
"numeric", "character", "character", "character", "numeric", "character",
"character", "character", "numeric", "character", "character", "character" ,
"character", "numeric", "character", "character" , "character","character",
"numeric", "numeric" , "character", "numeric", "numeric", "numeric" ,
"numeric", "character", "numeric", "character", "character", "character",
"character", "numeric", "numeric", "numeric", "numeric", "character",
"numeric"
)
)
## Clean some types to store more efficiently
## Make this an array
varstoint <- c(stormdata$STATE__, stormdata$COUNTY, stormdata$FATALITIES,
stormdata$INJURIES, stormdata$LATITUDE, stormdata$LATITUDE_E,
stormdata$LONGITUDE, stormdata$LONGITUDE_
)
stormdata$STATE__<-as.integer(stormdata$STATE__)
stormdata$COUNTY<-as.integer(stormdata$COUNTY)
stormdata$FATALITIES<-as.integer(stormdata$FATALITIES)
stormdata$INJURIES<-as.integer(stormdata$INJURIES)
stormdata$LATITUDE<-as.integer(stormdata$LATITUDE)
stormdata$LATITUDE_E<-as.integer(stormdata$LATITUDE_E)
stormdata$LONGITUDE<-as.integer(stormdata$LONGITUDE)
stormdata$LONGITUDE_<-as.integer(stormdata$LONGITUDE_)
## Assign missing values
stormdata$LATITUDE[stormdata$LATITUDE == 0] <- NA
stormdata$LATITUDE_E[stormdata$LATITUDE_E == 0] <- NA
stormdata$LONGITUDE[stormdata$LONGITUDE == 0] <- NA
stormdata$LONGITUDE_[stormdata$LONGITUDE_ == 0] <- NA
stormdata$MAG[stormdata$MAG == 0] <- NA
stormdata$COUNTY_END[stormdata$COUNTY_END == 0] <- NA
stormdata$begindate<-mdy(sub(" 0:00:00", "", stormdata$BGN_DATE))
stormdata$beginyear<-year(stormdata$begindate)
stormdata$beginmonth<-as.factor(month(stormdata$begindate))
stormdata$beginday<-as.factor(wday(stormdata$begindate))
stormdata$enddate<-mdy(sub(" 0:00:00", "", stormdata$END_DATE))
##Simplify string matching by making all of the eventtext upper case
## and exponent text lower case
stormdata$EVTYPE <- tolower(stormdata$EVTYPE)
stormdata$PROPDMGEXP <- toupper(stormdata$PROPDMGEXP)
stormdata$CROPDMGEXP <- toupper(stormdata$CROPDMGEXP)
# Clean up exponent fields
stormdata$PROPDMGEXP[stormdata$PROPDMGEXP == "?"]<-NA
stormdata$PROPDMGEXP[stormdata$PROPDMGEXP == "-"]<-NA
stormdata$PROPDMGEXP[stormdata$PROPDMGEXP == "+"]<-NA
stormdata$CROPDMGEXP[stormdata$CROPDMGEXP == "?"]<-NA
stormdata$CROPDMGEXP[stormdata$CROPDMGEXP == "H"]<-2
stormdata$CROPDMGEXP[stormdata$CROPDMGEXP == "K"]<-3
stormdata$CROPDMGEXP[stormdata$CROPDMGEXP == "M"]<-6
stormdata$CROPDMGEXP[stormdata$CROPDMGEXP == "B"]<-9
stormdata$PROPDMGEXP[stormdata$PROPDMGEXP == "H"]<-2
stormdata$PROPDMGEXP[stormdata$PROPDMGEXP == "K"]<-3
stormdata$PROPDMGEXP[stormdata$PROPDMGEXP == "M"]<-6
stormdata$PROPDMGEXP[stormdata$PROPDMGEXP == "B"]<-9
## Replace missing exponents with 0 which means multiply by 1
stormdata$PROPDMGEXP[is.na(stormdata$PROPDMGEXP)]<-0
stormdata$CROPDMGEXP[is.na(stormdata$CROPDMGEXP)]<-0
## construct total variables
stormdata$cropcost<-stormdata$CROPDMG*10^as.numeric(stormdata$CROPDMGEXP)
stormdata$propcost<-stormdata$PROPDMG*10^as.numeric(stormdata$PROPDMGEXP)
stormdata$totalcost <- stormdata$propcost + stormdata$cropcost
stormdata$totalhuman <-stormdata$FATALITIES + stormdata$INJURIES
# Clean up part of begintime data
stormdata$BGN_TIME<-sub("O", "0", stormdata$BGN_TIME, fixed=TRUE)
stormdata$BGN_TIME[stormdata$BGN_TIME == "000"]<-"0000"
stormdata$BGN_TIME[stormdata$BGN_TIME == "9999"]<-NA
## In this section we are going to extract the hour from the begin time data.
## Visual inspection of table(stormdata$BGN_TIME) reveals that there are two formats.
## The 24 hour format is not really usable as is.
## We care about hour but not minute because the general time of day of an event may impact
## the human damage it causes. For example if many people are at work, or at home,
## or commuting that may change things.
gethourC<-function(begindata)
{
beginhour<-stri_sub(begindata, 1, 2)
return(beginhour)
}
gethourA <- function(begindata)
{
begintime<-as.ITime(begindata)
beginhour<-as.character(hour(begintime))
return(beginhour)
}
gethourB<-function(begindata)
{
## Be careful because year is also 4 digits, make sure not to apply to the wrong data
beginhour<- ifelse (grepl("[[:digit:]]{4}", begindata) == TRUE, gethourC(begindata), NA)
return(beginhour)
}
stormdata$beginhour<-ifelse (
grepl(":", stormdata$BGN_TIME, fixed = TRUE) == TRUE,
gethourA(stormdata$BGN_TIME),
gethourB(stormdata$BGN_TIME)
)
hour<-ifelse(nchar(stormdata$beginhour) == 1 & !is.na(stormdata$beginhour),
paste0("0", stormdata$beginhour),
stormdata$beginhour )
stormdata$beginhour<-ifelse(hour == "24", "00", hour )
stormdata$beginhourf<-as.factor(stormdata$beginhour)
## Based on reading the remarks for the specific event with this value
stormdata$EVTYPE[stormdata$EVTYPE == "high"]<-"high winds"
stormdata$EVTYPE[stormdata$EVTYPE == "?"]<-NA
saveRDS(stormdata, "./data/stormdata.rds")
return(stormdata)
}
if (!exists("stormdata") & exists("./data/stormdata.rds"))
{
stormdata<-readRDS("./data/stormdata.rds")
} else if (!exists("./data/stormdata.rds"))
{
stormdata<-readRawData()
}
if (!exists("evtypemap"))
{
evtypemap<-readRDS('./data/evtypemap.rds')
} else {
if (!exists("eventstrings"))
{
eventstrings<-stri_unique(stormdata$EVTYPE)
}
# Based on remarks
evtypemap<-as.data.frame(eventstrings)
## Define the events we are interested in
typesOfEvents<-c("Fog", "Rain", "Marine", "Hot", "Cold", "toDrop", "Tornado", "Hurricane",
"Lightning", "Dry", "Ice", "Wind", "Fire", "Slide", 'Particles', "Thunderstorm",
"Snow", "Flood", "Hail")
## Create a list for each event type
for (i in 1:length(typesOfEvents))
{
assign(typesOfEvents[i], list())
}
## Set up our data on each event type
## These represent summaries of extended events, general comments, and non weather or atmospheric events
toDrop[["include"]] <- c("summmary", "metro storm", "year", "none", "marine mishap", "month",
"marine accident", "drowning", "no severe weather", "record",
"dam", "southeast", "mild pattern", "other"
)
toDrop[["name"]]<-"toDrop"
## This will get funnels except for dust devils
Tornado[["include"]] <- c("nado", "funne", "torn", "spout", "whirl")
Tornado[["name"]]<-"Tornado"
# Huricanes, typhoons, tropical storms and depressions
Hurricane[["include"]]<-c("hurric", "typhoon", "tropical", "floyd")
Hurricane[["name"]]<-"Hurricane"
Snow[["include"]]<-c("snow", "blizzard", "wint", "heavy mix")
Snow[["name"]]<-"Snow"
Hail[["include"]]<-c("hail")
Hail[["name"]]<-"Hail"
# ice jam is based on the remarks which indicated that it caused flooding
Flood[["include"]]<-c("flood", "floood", "fld", "water", "urban", "small stream", "ice jam")
Flood[["exclude"]]<-c("waterspout")
Flood[["name"]]<-"Flood"
## apache county and rapidly rising are based on the remarks
Thunderstorm[["include"]]<-c("thun", "tstm", "wall cloud", "apache country", "rapidly rising")
Thunderstorm[["exclude"]]<-c("non tstm", "non-tstm")
Thunderstorm[["name"]]<-"Thunderstorm"
Particles[["include"]]<-c("volc", "ash", "dust", "lights", "smoke")
Particles[["exclude"]]<-c("flash")
Particles[["name"]]<-"Particles"
Slide[["include"]]<-c("slide", "slump", "avalanche", "avalance")
Slide[["name"]]<-"Slide"
Fire[["include"]]<-c("fire", "red flag")
Fire[["name"]]<-"Fire"
Wind[["include"]]<-c("wind", "wnd", "burst", "turbulence")
## This event type is excluding wind that comes with a thunderstorm
Wind[["exclude"]]<-c("tstm", "thun")
Wind[["name"]]<-"Wind"
Ice[["include"]]<-c("ice", "icy", "glaze", "freezing rain")
## The ice jam event is really a flood event
Ice[["exclude"]]<-c("ice jam")
Ice[["name"]]<-"Ice"
## Excessive is used for dry periods according to the remarks
Dry[["include"]]<-c("dry", "dri", "drought", "below normal precipitation", "excessive")
Dry[["name"]]<-"Dry"
Hot[["include"]]<-c("hot", "heat", "warm", "record high")
Hot[["exclude"]]<-c("heatburst")
Hot[["name"]]<-"Hot"
Cold[["include"]]<-c("cold", "cool", "low temp", "hypothermia", "exposure", "record low", "freeze", "frost")
Cold[["name"]]<-"Cold"
Marine[["include"]]<-c("coastal", "beach", "surge", "tide", "surf", "tsunami", "seiche", "swell", "current",
"wave", "seas", "marine", "spray" )
Marine[["exclude"]]<-c("season", "heat wave")
Marine[["name"]]<-"Marine"
Lightning[["include"]]<-c("lightn", "lighting", "ligning")
Lightning[["name"]]<-"Lightning"
Rain[["include"]]<-c("rain", "precip", "sleet", "shower", "wet")
## Exclude thunder storms and freezing rain
Rain[["exclude"]]<-c("below normal precipitation", "tstm", "thun", "freezing rain")
Rain[["name"]]<-"Rain"
Fog[["include"]]<-c("fog", "vog")
Fog[["name"]]<-"Fog"
eventList<-list(Fog, Rain, Marine, Hot, Cold, toDrop, Tornado, Hurricane,
Lightning, Dry, Ice, Wind, Fire, Slide, Particles, Thunderstorm,
Snow, Flood, Hail)
parseWeatherStrings<-function(weathertype)
{
parseResult<-grepl(paste0(weathertype$include, collapse="|"), eventstrings)
if (!is.null(weathertype$exclude))
{
exclude<-(paste0(weathertype$exclude, collapse = "|"))
negative<-grepl(exclude, eventstrings)
parseResult<-parseResult & !negative
}
return(parseResult)
}
eventdummies<-sapply(eventList,parseWeatherStrings)
colnames(eventdummies)<-typesOfEvents
evtypemap<-cbind(evtypemap, eventdummies)
evtypemap$EVTYPE<-evtypemap$eventstrings
## Save the updated copy with the new variables
saveRDS( evtypemap, './data/evtypemap.rds')
}
if (!exists("analysisdata95") & !exists('./data/analysisdata95.rds') )
{
analysisdata95<-merge(stormdata, evtypemap, by = "EVTYPE")
## Only use data after 1995 since before then the data were not complete
analysisdata95<-subset(analysisdata95, beginyear > 1995)
analysisdata95<-subset(analysisdata95, !toDrop)
## Do some additional cleaning
analysisdata95$STATE[analysisdata95$STATE == "XX"]<-"SL"
analysisdata95$STATE[analysisdata95$STATE == "ST"]<-"OH"
analysisdata95$locationgroup<-"Mainland"
## Note Hawaii is here
analysisdata95$locationgroup[analysisdata95$STATE %in% c("VI", "PR", "GU", "AS", "HI")]<-"Island"
analysisdata95$locationgroup[analysisdata95$STATE %in% c("LO","LE","LM", "LH", "LS",
"SL", "PM", "PK", "PZ",
"PH", "AN", "AW","GM"
)]<-"Marine"
analysisdata95$locationgroup<-as.factor(analysisdata95$locationgroup)
analysisdata95$anyecon<-analysisdata95$totalcost > 0
analysisdata95$anyprop<-analysisdata95$propcost > 0
analysisdata95$anycrop<-analysisdata95$cropcost > 0
analysisdata95$onehuman<-analysisdata95$totalhuman > 0
analysisdata95$oneinjury<-analysisdata95$INJURIES > 0
analysisdata95$onefatal<-analysisdata95$FATALITIES > 0
saveRDS( analysisdata95, './data/analysisdata95.rds')
} else if (!exists("analysisdata95")) {
analysisdata95<-readRDS('./data/analysisdata95.rds')
}
analysisdata95$anyharm<-with(analysisdata95, oneinjury|onefatal|anyprop|anycrop)
anyharmdata<-subset(analysisdata95, anyharm == TRUE)
The number of events of each type is very uneven.
eventnames<-c("Fog", "Rain", "Marine", "Hot", "Cold", "Tornado", "Hurricane",
"Lightning", "Dry", "Ice", "Wind", "Fire", "Slide", 'Particles', "Thunderstorm",
"Snow", "Flood", "Hail")
eventdf<-analysisdata95[eventnames]
numberOfEvents<-colSums(eventdf)
par(las=2)
par(mar=c(5,8,6,2))
par(pin = c(3,3))
barplot(numberOfEvents, main="Distribution of Event Types (Number)", horiz=TRUE,
names.arg=eventnames, cex.names = .5, ylab="Type",
xlim=c(0, 225000))
The graph shows that hail and thunderstorms are the most frequent events, while events like serious fog or that put particles in the air (like fires or volcanos) are relatively rare.
There are 4 separate harm variables and as shown in the correlation matrix below, they are not highly correlated. Therefore the analysis looked at each type of harm (fatalities, injuries, crop damage and property damage) separately.
harms<-c("FATALITIES", "INJURIES", "propcost", "cropcost",
"totalhuman", "totalcost")
harmdf<-analysisdata95[harms]
## Correlation for all events
cor(harmdf, use="pairwise.complete.obs")
## FATALITIES INJURIES propcost cropcost totalhuman totalcost
## FATALITIES 1.00000 0.42627 0.02818 0.06413 0.50087 0.02974
## INJURIES 0.42627 1.00000 0.03049 0.04332 0.99645 0.03152
## propcost 0.02818 0.03049 1.00000 0.04760 0.03179 0.99969
## cropcost 0.06413 0.04332 0.04760 1.00000 0.04742 0.07245
## totalhuman 0.50087 0.99645 0.03179 0.04742 1.00000 0.03293
## totalcost 0.02974 0.03152 0.99969 0.07245 0.03293 1.00000
## Correlation for all events with at least some reported harm
harmdf<-anyharmdata[harms]
cor(harmdf, use="pairwise.complete.obs")
## FATALITIES INJURIES propcost cropcost totalhuman totalcost
## FATALITIES 1.00000 0.42524 0.02792 0.06309 0.49987 0.02945
## INJURIES 0.42524 1.00000 0.03031 0.04261 0.99646 0.03133
## propcost 0.02792 0.03031 1.00000 0.04749 0.03160 0.99969
## cropcost 0.06309 0.04261 0.04749 1.00000 0.04664 0.07234
## totalhuman 0.49987 0.99646 0.03160 0.04664 1.00000 0.03272
## totalcost 0.02945 0.03133 0.99969 0.07234 0.03272 1.00000
The data are very skewed, with the vast majority of events having 0 harms.
summary(analysisdata95$FATALITIES)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.00 0.00 0.00 0.01 0.00 158.00
summary(analysisdata95$INJURIES)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0 0.0 0.0 0.1 0.0 1150.0
summary(analysisdata95$propcost)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.00e+00 0.00e+00 0.00e+00 5.62e+05 1.50e+03 1.15e+11
summary(analysisdata95$cropcost)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.00e+00 0.00e+00 0.00e+00 5.32e+04 0.00e+00 1.51e+09
To analyze the impact of individual event types, we may or may want to consider other factors. For example location (such as on the mainland, at sea, or an island such as Puerto Rico, Guam, or one of the Hawaiian Islands), time of year, and time of day may all be relevant predictors of the harm a storm causes. Also, there may be trends in the amount of harm per event (as represented by year). We also have to consider the influence of extreme outliers such as Hurricane Katrina or other very large storm events.
At the same time we might be more interested in the total impact of each type of event over a year. This is a different question and perhaps more easily answered. Keeping in mind that some specific events may have more than one event type associated with them,
To do the analysis multivariate models were used. In each model the following variables were controlled for in addition to event type: year (linear), month the event began in, day of the week the event began on, hour of the day the event began at, type of location (mainland US, island, or marine). Event type was implemeted as a set of dummy variables, one for each type with Dry as the excluded value. While not technically necessary because events can have multiple descriptors, making all comparisons relative to Dry will mean the model is more stable (even though multicollinearity is probably not a problem with so much data). The included events types were: Hurricane, Hot, Cold, Snow, Thunderstorm, Tornado, Fire, Slide, Hail, Ice, Lightning, Marine, Particles, Wind, Flood, Fog (see Data Processing section for detailed descriptions).
fitfatallogistic <- glm(onefatal ~ beginhourf+beginmonth+beginyear+beginday+locationgroup+Hurricane+
Hot+Cold+Snow+Thunderstorm+Tornado+Fire+Slide+Hail + Ice+ Lightning+
Marine+ Particles + Wind + Flood + Fog, data=analysisdata95, family=binomial())
summary(fitfatallogistic)
##
## Call:
## glm(formula = onefatal ~ beginhourf + beginmonth + beginyear +
## beginday + locationgroup + Hurricane + Hot + Cold + Snow +
## Thunderstorm + Tornado + Fire + Slide + Hail + Ice + Lightning +
## Marine + Particles + Wind + Flood + Fog, family = binomial(),
## data = analysisdata95)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -1.137 -0.122 -0.051 -0.012 4.847
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 128.20603 6.65972 19.25 < 2e-16 ***
## beginhourf01 0.28651 0.17039 1.68 0.09267 .
## beginhourf02 0.35281 0.16880 2.09 0.03661 *
## beginhourf03 0.43360 0.16756 2.59 0.00966 **
## beginhourf04 0.29840 0.16852 1.77 0.07660 .
## beginhourf05 0.35295 0.16935 2.08 0.03714 *
## beginhourf06 0.23848 0.16910 1.41 0.15845
## beginhourf07 0.25959 0.17131 1.52 0.12970
## beginhourf08 0.33564 0.17010 1.97 0.04848 *
## beginhourf09 0.21139 0.17128 1.23 0.21714
## beginhourf10 0.25732 0.17120 1.50 0.13284
## beginhourf11 0.27768 0.16975 1.64 0.10187
## beginhourf12 0.39600 0.16516 2.40 0.01650 *
## beginhourf13 0.71050 0.21883 3.25 0.00117 **
## beginhourf14 0.58423 0.22253 2.63 0.00865 **
## beginhourf15 0.72020 0.21225 3.39 0.00069 ***
## beginhourf16 0.16285 0.23941 0.68 0.49636
## beginhourf17 0.65109 0.22074 2.95 0.00318 **
## beginhourf18 0.24484 0.24344 1.01 0.31454
## beginhourf19 0.32736 0.25102 1.30 0.19219
## beginhourf20 0.29777 0.26286 1.13 0.25730
## beginhourf21 0.30358 0.27525 1.10 0.27006
## beginhourf22 0.49380 0.26413 1.87 0.06155 .
## beginhourf23 0.30472 0.29406 1.04 0.30009
## beginmonth2 -0.15547 0.07577 -2.05 0.04019 *
## beginmonth3 -0.02600 0.07607 -0.34 0.73250
## beginmonth4 -0.00746 0.07442 -0.10 0.92013
## beginmonth5 -0.18231 0.07464 -2.44 0.01459 *
## beginmonth6 -0.22343 0.07231 -3.09 0.00200 **
## beginmonth7 -0.03005 0.07016 -0.43 0.66844
## beginmonth8 -0.04475 0.07217 -0.62 0.53521
## beginmonth9 -0.03176 0.07795 -0.41 0.68372
## beginmonth10 -0.51052 0.09582 -5.33 9.9e-08 ***
## beginmonth11 -0.25966 0.08983 -2.89 0.00385 **
## beginmonth12 -0.20063 0.07714 -2.60 0.00930 **
## beginyear -0.06660 0.00332 -20.05 < 2e-16 ***
## beginday2 -0.26657 0.05449 -4.89 1.0e-06 ***
## beginday3 -0.27990 0.05422 -5.16 2.4e-07 ***
## beginday4 -0.26182 0.05406 -4.84 1.3e-06 ***
## beginday5 -0.26675 0.05401 -4.94 7.9e-07 ***
## beginday6 -0.31621 0.05461 -5.79 7.0e-09 ***
## beginday7 -0.04903 0.05174 -0.95 0.34333
## locationgroupMainland 0.80962 0.09397 8.62 < 2e-16 ***
## locationgroupMarine -2.20245 0.26733 -8.24 < 2e-16 ***
## HurricaneTRUE 1.81450 0.14236 12.75 < 2e-16 ***
## HotTRUE 3.45431 0.07701 44.85 < 2e-16 ***
## ColdTRUE 1.84819 0.07892 23.42 < 2e-16 ***
## SnowTRUE -0.33951 0.08790 -3.86 0.00011 ***
## ThunderstormTRUE -2.17277 0.07906 -27.48 < 2e-16 ***
## TornadoTRUE 0.19499 0.07642 2.55 0.01072 *
## FireTRUE -0.26266 0.17559 -1.50 0.13469
## SlideTRUE 3.20604 0.10340 31.01 < 2e-16 ***
## HailTRUE -5.36978 0.29498 -18.20 < 2e-16 ***
## IceTRUE 0.76865 0.14764 5.21 1.9e-07 ***
## LightningTRUE 1.31239 0.07357 17.84 < 2e-16 ***
## MarineTRUE 3.13517 0.06497 48.26 < 2e-16 ***
## ParticlesTRUE 0.28529 0.34143 0.84 0.40341
## WindTRUE 0.30714 0.07264 4.23 2.4e-05 ***
## FloodTRUE -0.19328 0.06468 -2.99 0.00280 **
## FogTRUE 0.80119 0.16919 4.74 2.2e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 58187 on 653066 degrees of freedom
## Residual deviance: 42781 on 653007 degrees of freedom
## AIC: 42901
##
## Number of Fisher Scoring iterations: 12
fitinjurylogistic <- glm(oneinjury ~ beginhourf+beginmonth+beginyear+beginday+locationgroup+Hurricane+
Hot+Cold+Snow+Thunderstorm+Tornado+Fire+Slide+Hail + Ice+ Lightning+
Marine+ Particles + Wind + Flood + Fog, data=analysisdata95, family=binomial())
summary(fitinjurylogistic)
##
## Call:
## glm(formula = oneinjury ~ beginhourf + beginmonth + beginyear +
## beginday + locationgroup + Hurricane + Hot + Cold + Snow +
## Thunderstorm + Tornado + Fire + Slide + Hail + Ice + Lightning +
## Marine + Particles + Wind + Flood + Fog, family = binomial(),
## data = analysisdata95)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -1.001 -0.149 -0.112 -0.046 3.924
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 120.37441 4.88092 24.66 < 2e-16 ***
## beginhourf01 0.75848 0.19934 3.80 0.00014 ***
## beginhourf02 0.76431 0.19874 3.85 0.00012 ***
## beginhourf03 0.73656 0.19849 3.71 0.00021 ***
## beginhourf04 0.63036 0.19871 3.17 0.00151 **
## beginhourf05 0.55688 0.19907 2.80 0.00515 **
## beginhourf06 0.53587 0.19917 2.69 0.00713 **
## beginhourf07 0.54341 0.19982 2.72 0.00654 **
## beginhourf08 0.49916 0.20050 2.49 0.01279 *
## beginhourf09 0.65993 0.20047 3.29 0.00100 ***
## beginhourf10 0.62675 0.20084 3.12 0.00180 **
## beginhourf11 0.70052 0.20034 3.50 0.00047 ***
## beginhourf12 0.66069 0.19861 3.33 0.00088 ***
## beginhourf13 0.73606 0.22958 3.21 0.00135 **
## beginhourf14 0.66175 0.22660 2.92 0.00350 **
## beginhourf15 0.49215 0.22719 2.17 0.03029 *
## beginhourf16 0.54664 0.22364 2.44 0.01451 *
## beginhourf17 0.64032 0.22386 2.86 0.00423 **
## beginhourf18 0.61762 0.22712 2.72 0.00654 **
## beginhourf19 0.05970 0.25681 0.23 0.81617
## beginhourf20 0.49625 0.24849 2.00 0.04582 *
## beginhourf21 0.21966 0.27890 0.79 0.43094
## beginhourf22 0.10532 0.30328 0.35 0.72840
## beginhourf23 0.00567 0.32612 0.02 0.98612
## beginmonth2 -0.15283 0.06585 -2.32 0.02029 *
## beginmonth3 -0.14728 0.06263 -2.35 0.01870 *
## beginmonth4 -0.14769 0.05821 -2.54 0.01117 *
## beginmonth5 -0.46190 0.05745 -8.04 9.0e-16 ***
## beginmonth6 -0.56713 0.05657 -10.03 < 2e-16 ***
## beginmonth7 -0.44645 0.05636 -7.92 2.4e-15 ***
## beginmonth8 -0.53503 0.05894 -9.08 < 2e-16 ***
## beginmonth9 -0.36506 0.06485 -5.63 1.8e-08 ***
## beginmonth10 -0.23343 0.07007 -3.33 0.00086 ***
## beginmonth11 -0.05095 0.06792 -0.75 0.45311
## beginmonth12 -0.22221 0.06990 -3.18 0.00148 **
## beginyear -0.06268 0.00243 -25.77 < 2e-16 ***
## beginday2 -0.18481 0.04129 -4.48 7.6e-06 ***
## beginday3 -0.11689 0.04032 -2.90 0.00374 **
## beginday4 -0.11345 0.04025 -2.82 0.00483 **
## beginday5 -0.04990 0.03989 -1.25 0.21096
## beginday6 -0.09477 0.04025 -2.35 0.01856 *
## beginday7 0.08064 0.03985 2.02 0.04305 *
## locationgroupMainland 0.57663 0.09727 5.93 3.1e-09 ***
## locationgroupMarine -3.64874 0.32192 -11.33 < 2e-16 ***
## HurricaneTRUE 1.63050 0.16116 10.12 < 2e-16 ***
## HotTRUE 2.06643 0.10079 20.50 < 2e-16 ***
## ColdTRUE -1.03205 0.21346 -4.83 1.3e-06 ***
## SnowTRUE -0.37212 0.08836 -4.21 2.5e-05 ***
## ThunderstormTRUE -0.13286 0.07058 -1.88 0.05977 .
## TornadoTRUE 1.66901 0.07230 23.08 < 2e-16 ***
## FireTRUE 1.97685 0.08958 22.07 < 2e-16 ***
## SlideTRUE 2.50098 0.11998 20.85 < 2e-16 ***
## HailTRUE -2.52156 0.09913 -25.44 < 2e-16 ***
## IceTRUE 0.86811 0.13406 6.48 9.5e-11 ***
## LightningTRUE 2.89237 0.07253 39.88 < 2e-16 ***
## MarineTRUE 1.96163 0.07467 26.27 < 2e-16 ***
## ParticlesTRUE 2.07208 0.16313 12.70 < 2e-16 ***
## WindTRUE 0.65982 0.07919 8.33 < 2e-16 ***
## FloodTRUE -0.66713 0.07907 -8.44 < 2e-16 ***
## FogTRUE 1.43030 0.12762 11.21 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 96597 on 653066 degrees of freedom
## Residual deviance: 77440 on 653007 degrees of freedom
## AIC: 77560
##
## Number of Fisher Scoring iterations: 9
fitcroplogistic <- glm(anycrop ~ beginhourf+beginmonth+beginyear+beginday+locationgroup+Hurricane+
Hot+Cold+Snow+Thunderstorm+Tornado+Fire+Slide+Hail + Ice+ Lightning+
Marine+ Particles + Wind + Flood + Fog, data=analysisdata95, family=binomial())
summary(fitcroplogistic)
##
## Call:
## glm(formula = anycrop ~ beginhourf + beginmonth + beginyear +
## beginday + locationgroup + Hurricane + Hot + Cold + Snow +
## Thunderstorm + Tornado + Fire + Slide + Hail + Ice + Lightning +
## Marine + Particles + Wind + Flood + Fog, family = binomial(),
## data = analysisdata95)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -0.786 -0.288 -0.215 -0.143 3.984
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 94.15998 3.45068 27.29 < 2e-16 ***
## beginhourf01 -0.84816 0.08689 -9.76 < 2e-16 ***
## beginhourf02 -0.91079 0.08602 -10.59 < 2e-16 ***
## beginhourf03 -0.95630 0.08540 -11.20 < 2e-16 ***
## beginhourf04 -0.96775 0.08504 -11.38 < 2e-16 ***
## beginhourf05 -0.90131 0.08483 -10.63 < 2e-16 ***
## beginhourf06 -0.83413 0.08475 -9.84 < 2e-16 ***
## beginhourf07 -0.75000 0.08512 -8.81 < 2e-16 ***
## beginhourf08 -0.70126 0.08581 -8.17 3.0e-16 ***
## beginhourf09 -0.60886 0.08645 -7.04 1.9e-12 ***
## beginhourf10 -0.65477 0.08766 -7.47 8.1e-14 ***
## beginhourf11 -0.62452 0.08780 -7.11 1.1e-12 ***
## beginhourf12 -0.46491 0.08484 -5.48 4.3e-08 ***
## beginhourf13 -1.07013 0.12716 -8.42 < 2e-16 ***
## beginhourf14 -1.01171 0.11548 -8.76 < 2e-16 ***
## beginhourf15 -0.83057 0.10539 -7.88 3.2e-15 ***
## beginhourf16 -0.91826 0.10588 -8.67 < 2e-16 ***
## beginhourf17 -0.72836 0.10282 -7.08 1.4e-12 ***
## beginhourf18 -0.49427 0.10124 -4.88 1.0e-06 ***
## beginhourf19 -0.56520 0.10803 -5.23 1.7e-07 ***
## beginhourf20 -0.47385 0.11355 -4.17 3.0e-05 ***
## beginhourf21 -0.27860 0.11911 -2.34 0.0193 *
## beginhourf22 -0.15839 0.12647 -1.25 0.2104
## beginhourf23 -0.01981 0.12780 -0.15 0.8768
## beginmonth2 -0.05354 0.09094 -0.59 0.5560
## beginmonth3 -0.56246 0.08800 -6.39 1.6e-10 ***
## beginmonth4 0.00633 0.07280 0.09 0.9307
## beginmonth5 0.96891 0.06694 14.47 < 2e-16 ***
## beginmonth6 1.30084 0.06630 19.62 < 2e-16 ***
## beginmonth7 1.33660 0.06686 19.99 < 2e-16 ***
## beginmonth8 1.13048 0.06812 16.60 < 2e-16 ***
## beginmonth9 1.11954 0.07060 15.86 < 2e-16 ***
## beginmonth10 0.81536 0.07652 10.66 < 2e-16 ***
## beginmonth11 0.26805 0.09083 2.95 0.0032 **
## beginmonth12 -0.33554 0.11023 -3.04 0.0023 **
## beginyear -0.04912 0.00172 -28.58 < 2e-16 ***
## beginday2 0.06012 0.02753 2.18 0.0290 *
## beginday3 -0.17142 0.02865 -5.98 2.2e-09 ***
## beginday4 -0.05020 0.02775 -1.81 0.0704 .
## beginday5 -0.02003 0.02776 -0.72 0.4705
## beginday6 -0.01290 0.02780 -0.46 0.6427
## beginday7 0.03478 0.02855 1.22 0.2232
## locationgroupMainland 0.50693 0.10464 4.84 1.3e-06 ***
## locationgroupMarine -11.78933 31.32079 -0.38 0.7066
## HurricaneTRUE 1.65852 0.10412 15.93 < 2e-16 ***
## HotTRUE -2.93101 0.45060 -6.50 7.8e-11 ***
## ColdTRUE 1.30767 0.08976 14.57 < 2e-16 ***
## SnowTRUE -1.90115 0.14436 -13.17 < 2e-16 ***
## ThunderstormTRUE -0.33962 0.05238 -6.48 9.0e-11 ***
## TornadoTRUE 0.48645 0.05820 8.36 < 2e-16 ***
## FireTRUE 0.09921 0.10429 0.95 0.3415
## SlideTRUE -1.90686 0.71023 -2.68 0.0073 **
## HailTRUE 0.41814 0.05173 8.08 6.3e-16 ***
## IceTRUE -0.85160 0.32317 -2.64 0.0084 **
## LightningTRUE -1.77600 0.12714 -13.97 < 2e-16 ***
## MarineTRUE -2.82177 0.40952 -6.89 5.6e-12 ***
## ParticlesTRUE -1.29800 0.50465 -2.57 0.0101 *
## WindTRUE -0.29678 0.07489 -3.96 7.4e-05 ***
## FloodTRUE 0.57779 0.05294 10.91 < 2e-16 ***
## FogTRUE -13.26660 91.65655 -0.14 0.8849
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 169458 on 653066 degrees of freedom
## Residual deviance: 158070 on 653007 degrees of freedom
## AIC: 158190
##
## Number of Fisher Scoring iterations: 16
fitproplogistic <- glm(anyprop ~ beginhourf+beginmonth+beginyear+beginday+locationgroup+Hurricane+
Hot+Cold+Snow+Thunderstorm+Tornado+Fire+Slide+Hail + Ice+ Lightning+
Marine+ Particles + Wind + Flood + Fog, data=analysisdata95, family=binomial())
summary(fitproplogistic)
##
## Call:
## glm(formula = anyprop ~ beginhourf + beginmonth + beginyear +
## beginday + locationgroup + Hurricane + Hot + Cold + Snow +
## Thunderstorm + Tornado + Fire + Slide + Hail + Ice + Lightning +
## Marine + Particles + Wind + Flood + Fog, family = binomial(),
## data = analysisdata95)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -1.691 -0.924 -0.435 1.091 3.659
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -1.77e+01 1.34e+00 -13.19 < 2e-16 ***
## beginhourf01 1.44e-01 4.24e-02 3.39 0.00069 ***
## beginhourf02 1.70e-01 4.21e-02 4.03 5.7e-05 ***
## beginhourf03 1.38e-01 4.20e-02 3.28 0.00103 **
## beginhourf04 1.26e-01 4.19e-02 3.00 0.00267 **
## beginhourf05 1.05e-01 4.19e-02 2.50 0.01226 *
## beginhourf06 8.63e-02 4.19e-02 2.06 0.03948 *
## beginhourf07 8.22e-02 4.21e-02 1.95 0.05080 .
## beginhourf08 8.51e-02 4.23e-02 2.01 0.04415 *
## beginhourf09 6.89e-02 4.26e-02 1.62 0.10578
## beginhourf10 8.40e-02 4.28e-02 1.96 0.04969 *
## beginhourf11 1.19e-01 4.29e-02 2.76 0.00570 **
## beginhourf12 9.92e-02 4.23e-02 2.35 0.01901 *
## beginhourf13 1.26e-01 5.22e-02 2.42 0.01551 *
## beginhourf14 1.86e-01 4.95e-02 3.76 0.00017 ***
## beginhourf15 1.15e-01 4.84e-02 2.38 0.01722 *
## beginhourf16 1.64e-01 4.76e-02 3.45 0.00056 ***
## beginhourf17 1.04e-01 4.78e-02 2.17 0.03020 *
## beginhourf18 1.25e-01 4.85e-02 2.57 0.01010 *
## beginhourf19 2.08e-02 5.03e-02 0.41 0.67976
## beginhourf20 4.39e-02 5.26e-02 0.83 0.40401
## beginhourf21 1.18e-01 5.57e-02 2.13 0.03338 *
## beginhourf22 6.57e-02 5.88e-02 1.12 0.26424
## beginhourf23 2.44e-01 6.10e-02 4.01 6.1e-05 ***
## beginmonth2 -5.31e-03 2.17e-02 -0.25 0.80634
## beginmonth3 -1.34e-01 2.02e-02 -6.63 3.5e-11 ***
## beginmonth4 -4.19e-02 1.87e-02 -2.24 0.02527 *
## beginmonth5 -3.22e-01 1.81e-02 -17.80 < 2e-16 ***
## beginmonth6 -4.25e-01 1.78e-02 -23.88 < 2e-16 ***
## beginmonth7 -4.68e-01 1.82e-02 -25.77 < 2e-16 ***
## beginmonth8 -4.54e-01 1.87e-02 -24.28 < 2e-16 ***
## beginmonth9 -3.42e-01 2.09e-02 -16.39 < 2e-16 ***
## beginmonth10 -9.84e-02 2.26e-02 -4.36 1.3e-05 ***
## beginmonth11 -7.87e-02 2.34e-02 -3.36 0.00077 ***
## beginmonth12 -5.46e-02 2.34e-02 -2.34 0.01941 *
## beginyear 7.42e-03 6.69e-04 11.09 < 2e-16 ***
## beginday2 -2.83e-03 1.13e-02 -0.25 0.80299
## beginday3 -3.36e-02 1.12e-02 -3.00 0.00266 **
## beginday4 1.34e-02 1.11e-02 1.20 0.22896
## beginday5 -1.03e-02 1.12e-02 -0.92 0.35677
## beginday6 1.53e-03 1.12e-02 0.14 0.89132
## beginday7 -6.80e-02 1.17e-02 -5.80 6.5e-09 ***
## locationgroupMainland 8.58e-01 3.93e-02 21.80 < 2e-16 ***
## locationgroupMarine -2.30e+00 9.14e-02 -25.20 < 2e-16 ***
## HurricaneTRUE 2.84e+00 7.00e-02 40.62 < 2e-16 ***
## HotTRUE -2.29e+00 1.98e-01 -11.54 < 2e-16 ***
## ColdTRUE -2.51e+00 1.05e-01 -23.92 < 2e-16 ***
## SnowTRUE -3.79e-01 3.17e-02 -11.97 < 2e-16 ***
## ThunderstormTRUE 2.19e+00 2.57e-02 85.37 < 2e-16 ***
## TornadoTRUE 1.69e+00 2.80e-02 60.40 < 2e-16 ***
## FireTRUE 1.08e+00 4.41e-02 24.47 < 2e-16 ***
## SlideTRUE 1.09e+00 7.88e-02 13.79 < 2e-16 ***
## HailTRUE -5.31e-02 2.62e-02 -2.03 0.04281 *
## IceTRUE 1.07e+00 5.38e-02 19.80 < 2e-16 ***
## LightningTRUE 2.96e+00 3.15e-02 93.84 < 2e-16 ***
## MarineTRUE -1.11e+00 4.59e-02 -24.22 < 2e-16 ***
## ParticlesTRUE 1.10e+00 9.73e-02 11.33 < 2e-16 ***
## WindTRUE 1.40e+00 2.88e-02 48.53 < 2e-16 ***
## FloodTRUE 1.63e+00 2.63e-02 62.06 < 2e-16 ***
## FogTRUE -5.85e-01 9.57e-02 -6.11 9.7e-10 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 786257 on 653066 degrees of freedom
## Residual deviance: 663013 on 653007 degrees of freedom
## AIC: 663133
##
## Number of Fisher Scoring iterations: 6
Note: Only includes events in which there was some harm reported for at least one type of harm.
For the analyses of Fatalities and Injuries poisson regression was used since these are count data.
For the analysis of economic data the log of the dollar amount was used in order to reduce the skew caused by a small number of billion dollar and other very large events. In order to use the log with data that had values of 0, 1 was added to all of the observations.
fitfatalpoisson <- glm(FATALITIES ~ beginhourf+beginmonth+beginyear+beginday+locationgroup+Hurricane+
Hot+Cold+Snow+Thunderstorm+Tornado+Fire+Slide+Hail + Ice+ Lightning+
Marine+ Particles + Wind + Flood + Fog, data=anyharmdata, family=poisson())
summary(fitfatalpoisson)
##
## Call:
## glm(formula = FATALITIES ~ beginhourf + beginmonth + beginyear +
## beginday + locationgroup + Hurricane + Hot + Cold + Snow +
## Thunderstorm + Tornado + Fire + Slide + Hail + Ice + Lightning +
## Marine + Particles + Wind + Flood + Fog, family = poisson(),
## data = anyharmdata)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -2.95 -0.28 -0.09 -0.07 43.91
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 64.68342 4.74324 13.64 < 2e-16 ***
## beginhourf01 -0.01438 0.12798 -0.11 0.91051
## beginhourf02 0.21481 0.12622 1.70 0.08878 .
## beginhourf03 0.27524 0.12534 2.20 0.02809 *
## beginhourf04 0.18495 0.12561 1.47 0.14092
## beginhourf05 0.08131 0.12751 0.64 0.52369
## beginhourf06 0.04503 0.12634 0.36 0.72155
## beginhourf07 -0.00655 0.12905 -0.05 0.95954
## beginhourf08 0.17910 0.12626 1.42 0.15605
## beginhourf09 0.12868 0.12684 1.01 0.31034
## beginhourf10 0.03765 0.12773 0.29 0.76816
## beginhourf11 0.07579 0.12607 0.60 0.54772
## beginhourf12 0.21220 0.12292 1.73 0.08430 .
## beginhourf13 0.21677 0.17000 1.28 0.20225
## beginhourf14 -0.13651 0.18234 -0.75 0.45406
## beginhourf15 0.24083 0.16548 1.46 0.14556
## beginhourf16 -0.07393 0.17710 -0.42 0.67636
## beginhourf17 0.08270 0.17337 0.48 0.63337
## beginhourf18 0.03773 0.18249 0.21 0.83620
## beginhourf19 -0.18616 0.20346 -0.91 0.36021
## beginhourf20 -0.00149 0.19825 -0.01 0.99399
## beginhourf21 -0.14678 0.22674 -0.65 0.51741
## beginhourf22 0.55327 0.18128 3.05 0.00227 **
## beginhourf23 0.03570 0.23313 0.15 0.87829
## beginmonth2 0.02522 0.05770 0.44 0.66203
## beginmonth3 -0.08771 0.05958 -1.47 0.14098
## beginmonth4 0.10358 0.05405 1.92 0.05533 .
## beginmonth5 -0.11238 0.05614 -2.00 0.04529 *
## beginmonth6 -0.50564 0.05840 -8.66 < 2e-16 ***
## beginmonth7 -0.13436 0.05493 -2.45 0.01444 *
## beginmonth8 -0.21774 0.05739 -3.79 0.00015 ***
## beginmonth9 -0.00637 0.06023 -0.11 0.91582
## beginmonth10 -0.34581 0.07354 -4.70 2.6e-06 ***
## beginmonth11 -0.22014 0.06939 -3.17 0.00151 **
## beginmonth12 -0.18578 0.06218 -2.99 0.00281 **
## beginyear -0.03343 0.00237 -14.13 < 2e-16 ***
## beginday2 -0.38321 0.03860 -9.93 < 2e-16 ***
## beginday3 -0.24265 0.03765 -6.45 1.2e-10 ***
## beginday4 -0.07241 0.03586 -2.02 0.04344 *
## beginday5 -0.43162 0.04002 -10.78 < 2e-16 ***
## beginday6 -0.43785 0.03972 -11.02 < 2e-16 ***
## beginday7 -0.19553 0.03704 -5.28 1.3e-07 ***
## locationgroupMainland -0.48108 0.06674 -7.21 5.7e-13 ***
## locationgroupMarine -0.98517 0.22429 -4.39 1.1e-05 ***
## HurricaneTRUE 1.68612 0.10192 16.54 < 2e-16 ***
## HotTRUE 3.92581 0.07369 53.28 < 2e-16 ***
## ColdTRUE 2.52271 0.07465 33.80 < 2e-16 ***
## SnowTRUE 0.89781 0.08502 10.56 < 2e-16 ***
## ThunderstormTRUE -2.48160 0.08434 -29.42 < 2e-16 ***
## TornadoTRUE 0.92407 0.07285 12.68 < 2e-16 ***
## FireTRUE 0.38088 0.12704 3.00 0.00272 **
## SlideTRUE 2.38106 0.09300 25.60 < 2e-16 ***
## HailTRUE -4.49295 0.29655 -15.15 < 2e-16 ***
## IceTRUE 0.90746 0.12615 7.19 6.3e-13 ***
## LightningTRUE 0.24497 0.07861 3.12 0.00183 **
## MarineTRUE 2.43281 0.07006 34.72 < 2e-16 ***
## ParticlesTRUE 0.33150 0.28559 1.16 0.24574
## WindTRUE 0.09242 0.07260 1.27 0.20304
## FloodTRUE -0.08910 0.06926 -1.29 0.19827
## FogTRUE 2.14141 0.13968 15.33 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for poisson family taken to be 1)
##
## Null deviance: 73894 on 201267 degrees of freedom
## Residual deviance: 45360 on 201208 degrees of freedom
## AIC: 56572
##
## Number of Fisher Scoring iterations: 9
fitinjurypoisson <- glm(INJURIES ~ beginhourf+beginmonth+beginyear+beginday+locationgroup+Hurricane+
Hot+Cold+Snow+Thunderstorm+Tornado+Fire+Slide+Hail + Ice+ Lightning+
Marine+ Particles + Wind + Flood + Fog, data=anyharmdata, family=poisson())
summary(fitinjurypoisson)
##
## Call:
## glm(formula = INJURIES ~ beginhourf + beginmonth + beginyear +
## beginday + locationgroup + Hurricane + Hot + Cold + Snow +
## Thunderstorm + Tornado + Fire + Slide + Hail + Ice + Lightning +
## Marine + Particles + Wind + Flood + Fog, family = poisson(),
## data = anyharmdata)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -7.87 -0.59 -0.33 -0.24 113.52
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 1.03e+02 1.83e+00 56.02 < 2e-16 ***
## beginhourf01 1.04e+00 1.05e-01 9.91 < 2e-16 ***
## beginhourf02 1.30e+00 1.05e-01 12.38 < 2e-16 ***
## beginhourf03 1.21e+00 1.05e-01 11.52 < 2e-16 ***
## beginhourf04 1.33e+00 1.05e-01 12.70 < 2e-16 ***
## beginhourf05 1.29e+00 1.05e-01 12.34 < 2e-16 ***
## beginhourf06 1.08e+00 1.05e-01 10.26 < 2e-16 ***
## beginhourf07 1.10e+00 1.05e-01 10.47 < 2e-16 ***
## beginhourf08 1.14e+00 1.05e-01 10.89 < 2e-16 ***
## beginhourf09 1.03e+00 1.05e-01 9.81 < 2e-16 ***
## beginhourf10 1.59e+00 1.05e-01 15.14 < 2e-16 ***
## beginhourf11 1.32e+00 1.05e-01 12.60 < 2e-16 ***
## beginhourf12 1.47e+00 1.04e-01 14.10 < 2e-16 ***
## beginhourf13 7.87e-01 1.23e-01 6.41 1.5e-10 ***
## beginhourf14 9.96e-01 1.17e-01 8.51 < 2e-16 ***
## beginhourf15 1.22e+00 1.14e-01 10.68 < 2e-16 ***
## beginhourf16 1.36e+00 1.12e-01 12.17 < 2e-16 ***
## beginhourf17 8.98e-01 1.16e-01 7.75 8.9e-15 ***
## beginhourf18 9.70e-01 1.16e-01 8.36 < 2e-16 ***
## beginhourf19 1.67e-01 1.34e-01 1.25 0.21253
## beginhourf20 8.28e-01 1.24e-01 6.67 2.6e-11 ***
## beginhourf21 2.48e-01 1.48e-01 1.68 0.09233 .
## beginhourf22 4.74e-01 1.46e-01 3.25 0.00116 **
## beginhourf23 6.84e-02 1.74e-01 0.39 0.69484
## beginmonth2 1.85e-01 2.67e-02 6.93 4.1e-12 ***
## beginmonth3 -5.90e-02 2.60e-02 -2.27 0.02305 *
## beginmonth4 3.54e-01 2.26e-02 15.70 < 2e-16 ***
## beginmonth5 -1.28e-02 2.31e-02 -0.55 0.58004
## beginmonth6 -5.13e-01 2.48e-02 -20.67 < 2e-16 ***
## beginmonth7 -2.26e-01 2.40e-02 -9.41 < 2e-16 ***
## beginmonth8 -2.06e-01 2.48e-02 -8.30 < 2e-16 ***
## beginmonth9 -3.82e-01 2.79e-02 -13.68 < 2e-16 ***
## beginmonth10 1.07e+00 2.26e-02 47.35 < 2e-16 ***
## beginmonth11 5.48e-02 2.72e-02 2.01 0.04400 *
## beginmonth12 9.33e-03 2.89e-02 0.32 0.74688
## beginyear -5.24e-02 9.12e-04 -57.44 < 2e-16 ***
## beginday2 -7.00e-01 1.61e-02 -43.47 < 2e-16 ***
## beginday3 -6.66e-01 1.61e-02 -41.30 < 2e-16 ***
## beginday4 -3.61e-01 1.44e-02 -25.04 < 2e-16 ***
## beginday5 -5.76e-01 1.54e-02 -37.41 < 2e-16 ***
## beginday6 -5.28e-01 1.53e-02 -34.50 < 2e-16 ***
## beginday7 1.70e-01 1.27e-02 13.37 < 2e-16 ***
## locationgroupMainland 3.74e-03 3.97e-02 0.09 0.92494
## locationgroupMarine -6.92e-01 1.96e-01 -3.53 0.00042 ***
## HurricaneTRUE 2.46e+00 5.01e-02 49.03 < 2e-16 ***
## HotTRUE 3.73e+00 4.55e-02 82.06 < 2e-16 ***
## ColdTRUE 2.14e-03 9.48e-02 0.02 0.98195
## SnowTRUE 1.08e+00 4.76e-02 22.66 < 2e-16 ***
## ThunderstormTRUE -1.48e+00 4.56e-02 -32.37 < 2e-16 ***
## TornadoTRUE 1.84e+00 4.42e-02 41.76 < 2e-16 ***
## FireTRUE 1.54e+00 5.07e-02 30.31 < 2e-16 ***
## SlideTRUE 5.10e-01 8.16e-02 6.25 4.1e-10 ***
## HailTRUE -1.88e+00 5.57e-02 -33.69 < 2e-16 ***
## IceTRUE 1.07e+00 6.04e-02 17.74 < 2e-16 ***
## LightningTRUE 5.73e-01 4.63e-02 12.38 < 2e-16 ***
## MarineTRUE 9.31e-01 4.72e-02 19.72 < 2e-16 ***
## ParticlesTRUE 2.11e+00 6.57e-02 32.19 < 2e-16 ***
## WindTRUE -4.78e-01 4.99e-02 -9.59 < 2e-16 ***
## FloodTRUE 2.08e-01 4.40e-02 4.74 2.2e-06 ***
## FogTRUE 2.88e+00 5.58e-02 51.62 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for poisson family taken to be 1)
##
## Null deviance: 551868 on 201267 degrees of freedom
## Residual deviance: 397613 on 201208 degrees of freedom
## AIC: 422621
##
## Number of Fisher Scoring iterations: 10
fitcroplm <- lm(log(cropcost+1) ~ beginhourf+beginmonth+beginyear+beginday+locationgroup+Hurricane+
Hot+Cold+Snow+Thunderstorm+Tornado+Fire+Slide+Hail + Ice+ Lightning+
Marine+ Particles + Wind + Flood + Fog, data=anyharmdata)
summary(fitcroplm)
##
## Call:
## lm(formula = log(cropcost + 1) ~ beginhourf + beginmonth + beginyear +
## beginday + locationgroup + Hurricane + Hot + Cold + Snow +
## Thunderstorm + Tornado + Fire + Slide + Hail + Ice + Lightning +
## Marine + Particles + Wind + Flood + Fog, data = anyharmdata)
##
## Residuals:
## Min 1Q Median 3Q Max
## -6.217 -0.985 -0.536 0.008 20.224
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 71.88594 2.73975 26.24 < 2e-16 ***
## beginhourf01 -0.92527 0.08984 -10.30 < 2e-16 ***
## beginhourf02 -1.00228 0.08927 -11.23 < 2e-16 ***
## beginhourf03 -1.02139 0.08894 -11.48 < 2e-16 ***
## beginhourf04 -1.03340 0.08879 -11.64 < 2e-16 ***
## beginhourf05 -0.97070 0.08883 -10.93 < 2e-16 ***
## beginhourf06 -0.89730 0.08893 -10.09 < 2e-16 ***
## beginhourf07 -0.80803 0.08930 -9.05 < 2e-16 ***
## beginhourf08 -0.79944 0.08973 -8.91 < 2e-16 ***
## beginhourf09 -0.74404 0.09033 -8.24 < 2e-16 ***
## beginhourf10 -0.78225 0.09075 -8.62 < 2e-16 ***
## beginhourf11 -0.76507 0.09086 -8.42 < 2e-16 ***
## beginhourf12 -0.49348 0.08963 -5.51 3.7e-08 ***
## beginhourf13 -0.97774 0.11051 -8.85 < 2e-16 ***
## beginhourf14 -1.12214 0.10449 -10.74 < 2e-16 ***
## beginhourf15 -0.84345 0.10261 -8.22 < 2e-16 ***
## beginhourf16 -0.99257 0.10083 -9.84 < 2e-16 ***
## beginhourf17 -0.80799 0.10149 -7.96 1.7e-15 ***
## beginhourf18 -0.63910 0.10284 -6.21 5.2e-10 ***
## beginhourf19 -0.60966 0.10711 -5.69 1.3e-08 ***
## beginhourf20 -0.58139 0.11195 -5.19 2.1e-07 ***
## beginhourf21 -0.51017 0.11759 -4.34 1.4e-05 ***
## beginhourf22 -0.39937 0.12465 -3.20 0.00136 **
## beginhourf23 -0.25952 0.12680 -2.05 0.04070 *
## beginmonth2 0.15644 0.04536 3.45 0.00056 ***
## beginmonth3 -0.15177 0.04249 -3.57 0.00035 ***
## beginmonth4 -0.00334 0.03890 -0.09 0.93160
## beginmonth5 0.78008 0.03756 20.77 < 2e-16 ***
## beginmonth6 1.28193 0.03682 34.82 < 2e-16 ***
## beginmonth7 1.24788 0.03745 33.32 < 2e-16 ***
## beginmonth8 1.07995 0.03865 27.94 < 2e-16 ***
## beginmonth9 1.00400 0.04329 23.19 < 2e-16 ***
## beginmonth10 0.63139 0.04665 13.54 < 2e-16 ***
## beginmonth11 0.26951 0.04871 5.53 3.1e-08 ***
## beginmonth12 0.07246 0.04988 1.45 0.14633
## beginyear -0.03416 0.00136 -25.04 < 2e-16 ***
## beginday2 0.05089 0.02364 2.15 0.03137 *
## beginday3 -0.10623 0.02340 -4.54 5.6e-06 ***
## beginday4 -0.01004 0.02320 -0.43 0.66510
## beginday5 -0.03955 0.02335 -1.69 0.09030 .
## beginday6 -0.05814 0.02339 -2.49 0.01293 *
## beginday7 0.06006 0.02456 2.44 0.01449 *
## locationgroupMainland 0.07623 0.08781 0.87 0.38534
## locationgroupMarine 2.22302 0.23175 9.59 < 2e-16 ***
## HurricaneTRUE -0.45267 0.12660 -3.58 0.00035 ***
## HotTRUE -3.86850 0.11457 -33.76 < 2e-16 ***
## ColdTRUE 2.60291 0.12878 20.21 < 2e-16 ***
## SnowTRUE -2.57517 0.07848 -32.81 < 2e-16 ***
## ThunderstormTRUE -3.06773 0.06226 -49.28 < 2e-16 ***
## TornadoTRUE -2.16162 0.06692 -32.30 < 2e-16 ***
## FireTRUE -2.12249 0.10120 -20.97 < 2e-16 ***
## SlideTRUE -2.75928 0.14450 -19.10 < 2e-16 ***
## HailTRUE 0.26538 0.06358 4.17 3.0e-05 ***
## IceTRUE -2.59597 0.12381 -20.97 < 2e-16 ***
## LightningTRUE -3.54663 0.06745 -52.58 < 2e-16 ***
## MarineTRUE -2.83889 0.09342 -30.39 < 2e-16 ***
## ParticlesTRUE -2.93277 0.21621 -13.56 < 2e-16 ***
## WindTRUE -2.61249 0.06798 -38.43 < 2e-16 ***
## FloodTRUE -2.04126 0.06352 -32.13 < 2e-16 ***
## FogTRUE -2.93715 0.22700 -12.94 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.81 on 201208 degrees of freedom
## Multiple R-squared: 0.156, Adjusted R-squared: 0.155
## F-statistic: 629 on 59 and 201208 DF, p-value: <2e-16
fitproplm <- lm(log(propcost+1) ~ beginhourf+beginmonth+beginyear+beginday+locationgroup+Hurricane+
Hot+Cold+Snow+Thunderstorm+Tornado+Fire+Slide+Hail + Ice+ Lightning+
Marine+ Particles + Wind + Flood + Fog, data=anyharmdata)
summary(fitproplm)
##
## Call:
## lm(formula = log(propcost + 1) ~ beginhourf + beginmonth + beginyear +
## beginday + locationgroup + Hurricane + Hot + Cold + Snow +
## Thunderstorm + Tornado + Fire + Slide + Hail + Ice + Lightning +
## Marine + Particles + Wind + Flood + Fog, data = anyharmdata)
##
## Residuals:
## Min 1Q Median 3Q Max
## -13.170 -1.079 0.119 1.467 19.955
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -26.26178 2.70717 -9.70 < 2e-16 ***
## beginhourf01 -0.05303 0.08877 -0.60 0.55021
## beginhourf02 -0.07273 0.08821 -0.82 0.40967
## beginhourf03 -0.05411 0.08788 -0.62 0.53809
## beginhourf04 -0.06838 0.08774 -0.78 0.43579
## beginhourf05 -0.05623 0.08777 -0.64 0.52173
## beginhourf06 -0.02406 0.08787 -0.27 0.78419
## beginhourf07 0.02383 0.08824 0.27 0.78710
## beginhourf08 0.03687 0.08867 0.42 0.67752
## beginhourf09 0.07095 0.08926 0.79 0.42667
## beginhourf10 0.01958 0.08968 0.22 0.82720
## beginhourf11 0.01553 0.08978 0.17 0.86265
## beginhourf12 -0.02756 0.08857 -0.31 0.75570
## beginhourf13 -0.19748 0.10920 -1.81 0.07054 .
## beginhourf14 -0.04570 0.10324 -0.44 0.65806
## beginhourf15 -0.04655 0.10139 -0.46 0.64617
## beginhourf16 0.05276 0.09963 0.53 0.59645
## beginhourf17 0.08752 0.10028 0.87 0.38280
## beginhourf18 0.11300 0.10162 1.11 0.26612
## beginhourf19 0.01825 0.10584 0.17 0.86307
## beginhourf20 0.13794 0.11062 1.25 0.21243
## beginhourf21 0.19582 0.11620 1.69 0.09195 .
## beginhourf22 0.06805 0.12317 0.55 0.58058
## beginhourf23 0.24430 0.12529 1.95 0.05120 .
## beginmonth2 0.04942 0.04482 1.10 0.27017
## beginmonth3 0.17595 0.04199 4.19 2.8e-05 ***
## beginmonth4 0.18615 0.03844 4.84 1.3e-06 ***
## beginmonth5 -0.11622 0.03712 -3.13 0.00174 **
## beginmonth6 -0.29077 0.03638 -7.99 1.3e-15 ***
## beginmonth7 -0.32886 0.03701 -8.89 < 2e-16 ***
## beginmonth8 -0.25640 0.03819 -6.71 1.9e-11 ***
## beginmonth9 -0.03797 0.04277 -0.89 0.37470
## beginmonth10 -0.06734 0.04609 -1.46 0.14403
## beginmonth11 -0.11943 0.04813 -2.48 0.01308 *
## beginmonth12 -0.05034 0.04929 -1.02 0.30713
## beginyear 0.01659 0.00135 12.30 < 2e-16 ***
## beginday2 -0.21566 0.02336 -9.23 < 2e-16 ***
## beginday3 -0.16195 0.02312 -7.00 2.5e-12 ***
## beginday4 -0.16381 0.02293 -7.14 9.0e-13 ***
## beginday5 -0.20894 0.02307 -9.06 < 2e-16 ***
## beginday6 -0.11729 0.02311 -5.07 3.9e-07 ***
## beginday7 -0.25225 0.02427 -10.39 < 2e-16 ***
## locationgroupMainland 0.82933 0.08677 9.56 < 2e-16 ***
## locationgroupMarine 2.56851 0.22899 11.22 < 2e-16 ***
## HurricaneTRUE 5.06272 0.12510 40.47 < 2e-16 ***
## HotTRUE -7.02200 0.11321 -62.03 < 2e-16 ***
## ColdTRUE -6.08993 0.12725 -47.86 < 2e-16 ***
## SnowTRUE 2.14873 0.07754 27.71 < 2e-16 ***
## ThunderstormTRUE 1.12004 0.06152 18.21 < 2e-16 ***
## TornadoTRUE 2.99034 0.06612 45.22 < 2e-16 ***
## FireTRUE 2.22538 0.10000 22.25 < 2e-16 ***
## SlideTRUE -2.09508 0.14278 -14.67 < 2e-16 ***
## HailTRUE 0.27589 0.06282 4.39 1.1e-05 ***
## IceTRUE 3.12880 0.12234 25.57 < 2e-16 ***
## LightningTRUE 0.27034 0.06665 4.06 5.0e-05 ***
## MarineTRUE -3.06918 0.09231 -33.25 < 2e-16 ***
## ParticlesTRUE 0.21395 0.21364 1.00 0.31661
## WindTRUE 1.29149 0.06717 19.23 < 2e-16 ***
## FloodTRUE 2.67863 0.06277 42.68 < 2e-16 ***
## FogTRUE 0.84955 0.22430 3.79 0.00015 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.78 on 201208 degrees of freedom
## Multiple R-squared: 0.153, Adjusted R-squared: 0.153
## F-statistic: 616 on 59 and 201208 DF, p-value: <2e-16
To identify the biggest impact storm events you look at the coefficient sizes. A larger coefficient indicates association with more.
This table indicates the top ranked 5 event types for predicting at least some reported harm for each type of harm. These are caclulated using logistic regression with a number of controls:
This table indicates the top ranked 5 event types for predicting amount of harm for events for which there is at least some harm. These are caclulated using poisson regression for injuries and fatalities and linear regression of the logged harm for crop and property damage, with a number of controls:
For fatalities: Heat, Slides, marine, Hurricane, Lightning
For injuries: Lightning, Particles, Slides, Fire, Heat
For crops: Hurricane, Cold, Flood, Tornado, Hail
For property: Lightning, Hurricane, Thunder, Tornado, Flood.
While the eight results are all different, there are some commonalities.
Hurricanes, tornados and floods are all associated with both property and crop damage. Hail and extreme heat or cold are bad for crops. Lightning and thunder storms are bad for property.
Heat, lightning and slides (mudslides, avalanches and similar events) are particularly associated with human harm. Marine events are associated more with fatalities (this may be because they are associated with the specific risk of drowning) while fires are more associated with injuries.
It is quite difficult to analyze what kind of event is most harmful because you need to consider the type of harm (direct human harm versus economic harm) and whether some events are very harmful but also relatively rare.
In addition, we would probably want to take into account the location for which planning would be being done, since event types can be rare or common in a certain location.
We would also want to take into account issue like population in the area and the interactions between various factors.