library(tidyverse)

Source: https://www.kaggle.com/arijit75/survey-data#monthly_deaths.csv

Semmelweis <- read_csv("https://github.com/imsharvanj/Dr.-Semmelweis-and-the-discovery-of-handwashing/raw/master/notebook%20and%20datasets/datasets/yearly_deaths_by_clinic.csv")
Parsed with column specification:
cols(
  year = col_double(),
  births = col_double(),
  deaths = col_double(),
  clinic = col_character()
)
glimpse(Semmelweis)
Observations: 12
Variables: 4
$ year   <dbl> 1841, 1842, 1843, 1844, 1845, 1846, 1841, 1842, 1843, 1844, 1845, 1846
$ births <dbl> 3036, 3287, 3060, 3157, 3492, 4010, 2442, 2659, 2739, 2956, 3241, 3754
$ deaths <dbl> 237, 518, 274, 260, 241, 459, 86, 202, 164, 68, 66, 105
$ clinic <chr> "clinic 1", "clinic 1", "clinic 1", "clinic 1", "clinic 1", "clinic 1", "cl…

EDA

summary(Semmelweis)
      year          births         deaths         clinic         
 Min.   :1841   Min.   :2442   Min.   : 66.0   Length:12         
 1st Qu.:1842   1st Qu.:2902   1st Qu.:100.2   Class :character  
 Median :1844   Median :3108   Median :219.5   Mode  :character  
 Mean   :1844   Mean   :3153   Mean   :223.3                     
 3rd Qu.:1845   3rd Qu.:3338   3rd Qu.:263.5                     
 Max.   :1846   Max.   :4010   Max.   :518.0                     

La primera columna es año, así que la cambio a chr o fct

Semmelweis$year <- as.character(Semmelweis$year)

Veo por año y por clínica

table(Semmelweis$year, Semmelweis$clinic)
      
       clinic 1 clinic 2
  1841        1        1
  1842        1        1
  1843        1        1
  1844        1        1
  1845        1        1
  1846        1        1

Ok, no falta ninguno

Grafico

Semmelweis %>% 
  ggplot(aes(x = year, y = births, group = clinic)) + 
  geom_line()

Semmelweis %>% 
  ggplot(aes(x = year, y = deaths, group = clinic)) + 
  geom_line()

Voy a crear una tasa de muertes por 100 nacimientos

Semmelweis <- Semmelweis %>% 
  mutate(deathsPerBirth = deaths/births * 100)

y la grafico

Semmelweis %>% 
  ggplot(aes(x = year, y = deathsPerBirth, color = clinic, group = clinic)) +
  geom_line()

Porqué una clínica tenía más muertes que la otra? Semmelweis dedujo correctamente que las parteras, al lavarse las manos, disminuian la tasa de mortalidad. Con esta información, hizo un experimento en la clínica 1

clinic1 <- read_csv("https://github.com/imsharvanj/Dr.-Semmelweis-and-the-discovery-of-handwashing/raw/master/notebook%20and%20datasets/datasets/monthly_deaths.csv")
Parsed with column specification:
cols(
  date = col_date(format = ""),
  births = col_double(),
  deaths = col_double()
)
head(clinic1)
clinic1 <- clinic1 %>% 
  mutate(deathsPerBirth = deaths/births * 100)

Lo veo

clinic1 %>% 
  ggplot(aes(x = date, y = deathsPerBirth)) + 
  geom_line()

clinic1 %>% 
  ggplot(aes(x = date, y = deathsPerBirth)) + 
  geom_line() + 
  geom_vline(xintercept = as.numeric(clinic1$date[75]), linetype=4, colour="blue")

  geom_line([.$date >= as.Date("1847-06-01"),], 
Error: inesperado '[' in "  geom_line(["

Otra manera

t.test(deathsPerBirth ~ handwashing_started, data = clinic1)

    Welch Two Sample t-test

data:  deathsPerBirth by handwashing_started
t = 9.6101, df = 92.435, p-value = 1.445e-15
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
  6.660662 10.130659
sample estimates:
mean in group FALSE  mean in group TRUE 
          10.504998            2.109338 

t.test(deathsPerBirth ~ handwashing_started, data = clinic1)

    Welch Two Sample t-test

data:  deathsPerBirth by handwashing_started
t = 9.6101, df = 92.435, p-value = 1.445e-15
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
  6.660662 10.130659
sample estimates:
mean in group FALSE  mean in group TRUE 
          10.504998            2.109338 
names(t.test(deathsPerBirth ~ handwashing_started, data = clinic1))
[1] "statistic"   "parameter"   "p.value"     "conf.int"    "estimate"   
[6] "null.value"  "alternative" "method"      "data.name"  
clinicComparison

    Welch Two Sample t-test

data:  deathsPerBirth by handwashing_started
t = 9.6101, df = 92.435, p-value = 1.445e-15
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
  6.660662 10.130659
sample estimates:
mean in group FALSE  mean in group TRUE 
          10.504998            2.109338 
names(clinicComparison)
[1] "statistic"   "parameter"   "p.value"     "conf.int"    "estimate"   
[6] "null.value"  "alternative" "method"      "data.name"  
clinicComparison$conf.int
[1]  6.660662 10.130659
attr(,"conf.level")
[1] 0.95
LS0tCnRpdGxlOiAiRHIuIFNlbW1lbHdlaXMgSGFuZHdhc2hpbmcgU3VydmV5IERhdGEiCm91dHB1dDogaHRtbF9ub3RlYm9vawotLS0KCmBgYHtyfQpsaWJyYXJ5KHRpZHl2ZXJzZSkKYGBgCgoKClNvdXJjZTogaHR0cHM6Ly93d3cua2FnZ2xlLmNvbS9hcmlqaXQ3NS9zdXJ2ZXktZGF0YSNtb250aGx5X2RlYXRocy5jc3YKYGBge3J9ClNlbW1lbHdlaXMgPC0gcmVhZF9jc3YoImh0dHBzOi8vZ2l0aHViLmNvbS9pbXNoYXJ2YW5qL0RyLi1TZW1tZWx3ZWlzLWFuZC10aGUtZGlzY292ZXJ5LW9mLWhhbmR3YXNoaW5nL3Jhdy9tYXN0ZXIvbm90ZWJvb2slMjBhbmQlMjBkYXRhc2V0cy9kYXRhc2V0cy95ZWFybHlfZGVhdGhzX2J5X2NsaW5pYy5jc3YiKQoKYGBgCmBgYHtyfQpnbGltcHNlKFNlbW1lbHdlaXMpCmBgYAoKCiMgRURBCmBgYHtyfQpzdW1tYXJ5KFNlbW1lbHdlaXMpCmBgYAoKTGEgcHJpbWVyYSBjb2x1bW5hIGVzIGHDsW8sIGFzw60gcXVlIGxhIGNhbWJpbyBhIGNociBvIGZjdApgYGB7cn0KU2VtbWVsd2VpcyR5ZWFyIDwtIGFzLmNoYXJhY3RlcihTZW1tZWx3ZWlzJHllYXIpCmBgYAoKVmVvIHBvciBhw7FvIHkgcG9yIGNsw61uaWNhCmBgYHtyfQp0YWJsZShTZW1tZWx3ZWlzJHllYXIsIFNlbW1lbHdlaXMkY2xpbmljKQpgYGAKCk9rLCBubyBmYWx0YSBuaW5ndW5vCgpHcmFmaWNvCgpgYGB7cn0KU2VtbWVsd2VpcyAlPiUgCiAgZ2dwbG90KGFlcyh4ID0geWVhciwgeSA9IGJpcnRocywgZ3JvdXAgPSBjbGluaWMpKSArIAogIGdlb21fbGluZSgpCmBgYApgYGB7cn0KU2VtbWVsd2VpcyAlPiUgCiAgZ2dwbG90KGFlcyh4ID0geWVhciwgeSA9IGRlYXRocywgZ3JvdXAgPSBjbGluaWMpKSArIAogIGdlb21fbGluZSgpCmBgYAoKVm95IGEgY3JlYXIgdW5hIHRhc2EgZGUgbXVlcnRlcyBwb3IgMTAwIG5hY2ltaWVudG9zCgpgYGB7cn0KU2VtbWVsd2VpcyA8LSBTZW1tZWx3ZWlzICU+JSAKICBtdXRhdGUoZGVhdGhzUGVyQmlydGggPSBkZWF0aHMvYmlydGhzICogMTAwKQpgYGAKeSBsYSBncmFmaWNvCgpgYGB7cn0KU2VtbWVsd2VpcyAlPiUgCiAgZ2dwbG90KGFlcyh4ID0geWVhciwgeSA9IGRlYXRoc1BlckJpcnRoLCBjb2xvciA9IGNsaW5pYywgZ3JvdXAgPSBjbGluaWMpKSArCiAgZ2VvbV9saW5lKCkKYGBgCgpQb3JxdcOpIHVuYSBjbMOtbmljYSB0ZW7DrWEgbcOhcyBtdWVydGVzIHF1ZSBsYSBvdHJhPyAKU2VtbWVsd2VpcyBkZWR1am8gY29ycmVjdGFtZW50ZSBxdWUgbGFzIHBhcnRlcmFzLCBhbCBsYXZhcnNlIGxhcyBtYW5vcywgZGlzbWludWlhbiBsYSB0YXNhIGRlIG1vcnRhbGlkYWQuIENvbiBlc3RhIGluZm9ybWFjacOzbiwgaGl6byB1biBleHBlcmltZW50byBlbiBsYSBjbMOtbmljYSAxCgpgYGB7cn0KY2xpbmljMSA8LSByZWFkX2NzdigiaHR0cHM6Ly9naXRodWIuY29tL2ltc2hhcnZhbmovRHIuLVNlbW1lbHdlaXMtYW5kLXRoZS1kaXNjb3Zlcnktb2YtaGFuZHdhc2hpbmcvcmF3L21hc3Rlci9ub3RlYm9vayUyMGFuZCUyMGRhdGFzZXRzL2RhdGFzZXRzL21vbnRobHlfZGVhdGhzLmNzdiIpCmBgYApgYGB7cn0KaGVhZChjbGluaWMxKQpgYGAKYGBge3J9CmNsaW5pYzEgPC0gY2xpbmljMSAlPiUgCiAgbXV0YXRlKGRlYXRoc1BlckJpcnRoID0gZGVhdGhzL2JpcnRocyAqIDEwMCkKYGBgCgpMbyB2ZW8KYGBge3J9CmNsaW5pYzEgJT4lIAogIGdncGxvdChhZXMoeCA9IGRhdGUsIHkgPSBkZWF0aHNQZXJCaXJ0aCkpICsgCiAgZ2VvbV9saW5lKCkKYGBgCgpgYGB7cn0KY2xpbmljMSAlPiUgCiAgZ2dwbG90KGFlcyh4ID0gZGF0ZSwgeSA9IGRlYXRoc1BlckJpcnRoKSkgKyAKICBnZW9tX2xpbmUoKSArIAogIGdlb21fdmxpbmUoeGludGVyY2VwdCA9IGFzLm51bWVyaWMoY2xpbmljMSRkYXRlWzc1XSksIGxpbmV0eXBlPTQsIGNvbG91cj0iYmx1ZSIpCiAgZ2VvbV9saW5lKFsuJGRhdGUgPj0gYXMuRGF0ZSgiMTg0Ny0wNi0wMSIpLF0sIAogICAgICAgICAgICAgIGFlcyh4ID0gZGF0ZSwgeSA9IGRlYXRoc1BlckJpcnRoKSwgY29sb3IgPSAiZGFya2JsdWUiLCBzaXplID0gMSkKYGBgCgpPdHJhIG1hbmVyYQpgYGB7cn0KaGFuZHdhc2hpbmdfc3RhcnQgPSBhcy5EYXRlKCcxODQ3LTA2LTAxJykKCmNsaW5pYzEgJT4lIAogIG11dGF0ZShoYW5kd2FzaGluZ19zdGFydGVkID0gaWZlbHNlKGRhdGUgPj0gaGFuZHdhc2hpbmdfc3RhcnQsIFRSVUUsIEZBTFNFKSkgJT4lIAogIGdncGxvdChhZXMoeCA9IGRhdGUsIHkgPSBkZWF0aHNQZXJCaXJ0aCwgY29sID0gIGhhbmR3YXNoaW5nX3N0YXJ0ZWQpKSArIAogIGdlb21fbGluZSgpCmBgYApgYGB7cn0KY2xpbmljMSAlPiUKICBtdXRhdGUoaGFuZHdhc2hpbmdfc3RhcnRlZCA9IGlmZWxzZShkYXRlID49IGhhbmR3YXNoaW5nX3N0YXJ0LCBUUlVFLCBGQUxTRSkpICU+JQogIGdncGxvdChhZXMoeCA9IGhhbmR3YXNoaW5nX3N0YXJ0ZWQsIHkgPSBkZWF0aHNQZXJCaXJ0aCkpICsKICBnZW9tX2JveHBsb3QoKSArCiAgZ2VvbV9qaXR0ZXIoYWxwaGEgPSAwLjUpCmBgYAoKCmBgYHtyfQpjbGluaWMxIDwtICBjbGluaWMxICU+JQogIG11dGF0ZShoYW5kd2FzaGluZ19zdGFydGVkID0gaWZlbHNlKGRhdGUgPj0gaGFuZHdhc2hpbmdfc3RhcnQsIFRSVUUsIEZBTFNFKSkgCmBgYAoKYGBge3J9CnQudGVzdChkZWF0aHNQZXJCaXJ0aCB+IGhhbmR3YXNoaW5nX3N0YXJ0ZWQsIGRhdGEgPSBjbGluaWMxKQpgYGAKYGBge3J9CmhlYWQoY2xpbmljMSkKYGBgCgpgYGB7cn0KY2xpbmljMSAlPiUgCiAgZ2dwbG90KGFlcyh4ID0gZGVhdGhzKSkgKyAKICBnZW9tX2hpc3RvZ3JhbShiaW5zID0gMTApICsKICBmYWNldF9ncmlkKGhhbmR3YXNoaW5nX3N0YXJ0ZWR+LikKYGBgCgoKYGBge3J9CnQudGVzdChkZWF0aHNQZXJCaXJ0aCB+IGhhbmR3YXNoaW5nX3N0YXJ0ZWQsIGRhdGEgPSBjbGluaWMxKQpgYGAKYGBge3J9Cm5hbWVzKHQudGVzdChkZWF0aHNQZXJCaXJ0aCB+IGhhbmR3YXNoaW5nX3N0YXJ0ZWQsIGRhdGEgPSBjbGluaWMxKSkKYGBgCgpgYGB7cn0KY2xpbmljQ29tcGFyaXNvbiA8LSB0LnRlc3QoZGVhdGhzUGVyQmlydGggfiBoYW5kd2FzaGluZ19zdGFydGVkLCBkYXRhID0gY2xpbmljMSkKYGBgCgpgYGB7cn0KY2xpbmljQ29tcGFyaXNvbgpgYGAKCgpgYGB7cn0KbmFtZXMoY2xpbmljQ29tcGFyaXNvbikKYGBgCgpgYGB7cn0KY2xpbmljQ29tcGFyaXNvbiRjb25mLmludApgYGAKCg==