library(tidyverse)

# Reading in the nfl drives data
drives <- read.csv("https://raw.githubusercontent.com/Shammalamala/STA4504/refs/heads/main/data/ch2/nfl%20drives.csv") 

Looking at the way drives can begin and end:

unique(drives$drive_start)
## [1] "Fumble"       "Interception" "Kickoff"      "Punt"
unique(drives$drive_end)
## [1] "Field Goal" "Punt"       "Touchdown"  "Turnover"

Motivating Question: Is a team more likely to score a touchdown after a turnover compared to a punt or kickoff?

Relative risk is often used for two binary variables, so let’s convert our data into two binary variables:

  • drive_start: turnover - Interception/Fumble vs kick - Kickoff/Punt
  • drive_end: TD - Touchdown vs noTD - Field Goal/Turnover/Punt
drives2 <- 
  drives |> 
  mutate(
    drive_start = if_else(drive_start %in% c("Interception", "Fumble"),
                          true = "turnover",
                          false = "kick") |> 
                  factor(),
         
    drive_end = if_else(drive_end == "Touchdown",
                        true = "TD",
                        false = "noTD") |> 
                factor()
  )

Next, let’s display the results in a two-way table using xtabs()

# Displaying a two-way table using xtabs()
drive_freq <- 
  xtabs(formula = ~ drive_start + drive_end, data = drives2)

drive_freq
##            drive_end
## drive_start noTD   TD
##    kick     4055 1200
##    turnover  571  239

And converting the table from counts to conditional proportions using prop.table(margin = "drive_start")

drive_freq |> 
  prop.table(margin = "drive_start") |> 
  
  round(digits = 3)
##            drive_end
## drive_start  noTD    TD
##    kick     0.772 0.228
##    turnover 0.705 0.295
c(
  'Pearson test:' = rstatix::chisq_test(drive_freq)$p,
  "Fisher's Test" = rstatix::fisher_test(drive_freq)$p
)
## Pearson test: Fisher's Test 
##  3.959419e-05  5.233613e-05

For a bigger than 2x2 table

LS0tDQp0aXRsZTogIlR3byBCaW5hcnkgVmFyaWFibGVzIC0gRmlzaGVyJ3MgRXhhY3QgVGVzdCINCmF1dGhvcjogIkNoYXB0ZXIgMiINCmRhdGU6ICJTVEEgNDUwNCINCm91dHB1dDoNCiAgaHRtbF9kb2N1bWVudDoNCiAgICBmaWdfd2lkdGg6IDEwDQogICAgZmlnX2hlaWdodDogNg0KICAgIGZpZ19jYXB0aW9uOiB0cnVlDQogICAgdG9jOiB0cnVlDQogICAgdG9jX2Zsb2F0OiB0cnVlDQogICAgbnVtYmVyX3NlY3Rpb25zOiBmYWxzZQ0KICAgIGNvZGVfZm9sZGluZzogaGlkZQ0KICAgIGNvZGVfZG93bmxvYWQ6IHRydWUNCiAgICBzbW9vdGhfc2Nyb2xsOiB0cnVlDQogICAgdGhlbWU6IGx1bWVuDQotLS0NCg0KYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9DQprbml0cjo6b3B0c19jaHVuayRzZXQoZWNobyA9IFRSVUUsDQogICAgICAgICAgICAgICAgICAgICAgZmlnLmFsaWduID0gImNlbnRlciIpDQpgYGANCg0KDQpgYGB7ciBwYWNrYWdlc19kYXRhLCBtZXNzYWdlID0gRiwgd2FybmluZyA9IEZ9DQpsaWJyYXJ5KHRpZHl2ZXJzZSkNCg0KIyBSZWFkaW5nIGluIHRoZSBuZmwgZHJpdmVzIGRhdGENCmRyaXZlcyA8LSByZWFkLmNzdigiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1NoYW1tYWxhbWFsYS9TVEE0NTA0L3JlZnMvaGVhZHMvbWFpbi9kYXRhL2NoMi9uZmwlMjBkcml2ZXMuY3N2IikgDQpgYGANCg0KDQpMb29raW5nIGF0IHRoZSB3YXkgZHJpdmVzIGNhbiBiZWdpbiBhbmQgZW5kOg0KDQoNCmBgYHtyIGRyaXZlX3N0YXJ0X2VuZH0NCnVuaXF1ZShkcml2ZXMkZHJpdmVfc3RhcnQpDQp1bmlxdWUoZHJpdmVzJGRyaXZlX2VuZCkNCg0KYGBgDQoNCioqTW90aXZhdGluZyBRdWVzdGlvbjoqKiBJcyBhIHRlYW0gbW9yZSBsaWtlbHkgdG8gc2NvcmUgYSB0b3VjaGRvd24gYWZ0ZXIgYSB0dXJub3ZlciBjb21wYXJlZCB0byBhIHB1bnQgb3Iga2lja29mZj8NCg0KDQoNClJlbGF0aXZlIHJpc2sgaXMgb2Z0ZW4gdXNlZCBmb3IgdHdvIGJpbmFyeSB2YXJpYWJsZXMsIHNvIGxldCdzIGNvbnZlcnQgb3VyIGRhdGEgaW50byB0d28gYmluYXJ5IHZhcmlhYmxlczoNCg0KLSBgZHJpdmVfc3RhcnRgOiB0dXJub3ZlciAtIEludGVyY2VwdGlvbi9GdW1ibGUgdnMga2ljayAtIEtpY2tvZmYvUHVudA0KLSBgZHJpdmVfZW5kYDogVEQgLSBUb3VjaGRvd24gdnMgbm9URCAtIEZpZWxkIEdvYWwvVHVybm92ZXIvUHVudCANCg0KYGBge3IgZHJpdmVzMn0NCmRyaXZlczIgPC0gDQogIGRyaXZlcyB8PiANCiAgbXV0YXRlKA0KICAgIGRyaXZlX3N0YXJ0ID0gaWZfZWxzZShkcml2ZV9zdGFydCAlaW4lIGMoIkludGVyY2VwdGlvbiIsICJGdW1ibGUiKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSA9ICJ0dXJub3ZlciIsDQogICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlID0gImtpY2siKSB8PiANCiAgICAgICAgICAgICAgICAgIGZhY3RvcigpLA0KICAgICAgICAgDQogICAgZHJpdmVfZW5kID0gaWZfZWxzZShkcml2ZV9lbmQgPT0gIlRvdWNoZG93biIsDQogICAgICAgICAgICAgICAgICAgICAgICB0cnVlID0gIlREIiwNCiAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlID0gIm5vVEQiKSB8PiANCiAgICAgICAgICAgICAgICBmYWN0b3IoKQ0KICApDQpgYGANCg0KTmV4dCwgbGV0J3MgZGlzcGxheSB0aGUgcmVzdWx0cyBpbiBhIHR3by13YXkgdGFibGUgdXNpbmcgYHh0YWJzKClgIA0KDQpgYGB7ciBkcml2ZV9mcmVxfQ0KIyBEaXNwbGF5aW5nIGEgdHdvLXdheSB0YWJsZSB1c2luZyB4dGFicygpDQpkcml2ZV9mcmVxIDwtIA0KICB4dGFicyhmb3JtdWxhID0gfiBkcml2ZV9zdGFydCArIGRyaXZlX2VuZCwgZGF0YSA9IGRyaXZlczIpDQoNCmRyaXZlX2ZyZXENCmBgYA0KDQoNCkFuZCBjb252ZXJ0aW5nIHRoZSB0YWJsZSBmcm9tIGNvdW50cyB0byBjb25kaXRpb25hbCBwcm9wb3J0aW9ucyB1c2luZyBgcHJvcC50YWJsZShtYXJnaW4gPSAiZHJpdmVfc3RhcnQiKWANCg0KYGBge3IgZHJpdmVfcHJvcH0NCmRyaXZlX2ZyZXEgfD4gDQogIHByb3AudGFibGUobWFyZ2luID0gImRyaXZlX3N0YXJ0IikgfD4gDQogIA0KICByb3VuZChkaWdpdHMgPSAzKQ0KDQpgYGANCg0KYGBge3J9DQpjKA0KICAnUGVhcnNvbiB0ZXN0OicgPSByc3RhdGl4OjpjaGlzcV90ZXN0KGRyaXZlX2ZyZXEpJHAsDQogICJGaXNoZXIncyBUZXN0IiA9IHJzdGF0aXg6OmZpc2hlcl90ZXN0KGRyaXZlX2ZyZXEpJHANCikNCmBgYA0KDQojIyBGb3IgYSBiaWdnZXIgdGhhbiAyeDIgdGFibGUNCg0KDQoNCg0K