Dr. Semmelweis and the discovery of handwashing

Dr. Semmelweis and the discovery of handwashing

Dr. Ignaz Semmelweis was a Hungarian physician born in 1818 and active at the Vienna General Hospital during the 1840s. In 1847, the Ignaz Semmelweis made a breakthrough discovery: he discovered handwashing. Contaminated hands were a major cause of childbed fever and were often fatal by enforcing handwashing at his hospital he saved hundreds of lives. Childbed fever was a deadly disease affecting women that just have given birth. In Vienna General Hospital’s First Obstetrical Clinic, doctors’ wards had three times the mortality of midwives’ wards.

In this project, we’re going to reanalyze the data that made Semmelweis discover the importance of handwashing. Let’s start by looking at the data that made Semmelweis realize that something was wrong with the procedures at Vienna General Hospital.

# Load in the tidyverse package
library(tidyverse)

# Read datasets/yearly_deaths_by_clinic.csv 
yearly <- read_csv('yearly_deaths_by_clinic.csv')

print(yearly)
year births deaths clinic
1 1841 3036 237 clinic 1
2 1842 3287 518 clinic 1
3 1843 3060 274 clinic 1
4 1844 3157 260 clinic 1
5 1845 3492 241 clinic 1
6 1846 4010 459 clinic 1
7 1841 2442 86 clinic 2
8 1842 2659 202 clinic 2
9 1843 2739 164 clinic 2
10 1844 2956 68 clinic 2
11 1845 3241 66 clinic 2
12 1846 3754 105 clinic 2

The Alarming number of deaths

The table above shows the number of women giving birth at the two clinics at the Vienna General Hospital for the years 1841 to 1846. You’ll notice that giving birth was very dangerous; an alarming number of women died as the result of childbirth, most of them from childbed fever.

We see this more clearly if we look at the proportion of deaths out of the number of women giving birth.

# Adding a new column to yearly with proportion of deaths per no. births
yearly <- mutate(yearly, proportion_deaths = deaths/births)

# Print out yearly
yearly
year births deaths clinic proporion_deaths
1 1841 3036 237 clinic 1 0.0781
2 1842 3287 518 clinic 1 0.158
3 1843 3060 274 clinic 1 0.0895
4 1844 3157 260 clinic 1 0.0824
5 1845 3492 241 clinic 1 0.069
6 1846 4010 459 clinic 1 0.114
7 1841 2442 86 clinic 2 0.0352
8 1842 2659 202 clinic 2 0.076
9 1843 2739 164 clinic 2 0.0599
10 1844 2956 68 clinic 2 0.023
11 1845 3241 66 clinic 2 0.0204
12 1846 3754 105 clinic 2 0.028

If we now plot the proportion of deaths at both clinic 1 and clinic 2 we’ll see a curious pattern.

# Plot yearly proportion of deaths at the two clinics
ggplot(yearly, aes(x = year, y = proportion_deaths)) + geom_line(aes(color = factor(clinic))) + theme_bw() + 
  theme(legend.title = element_blank()) 

The proportion of deaths in clinic 1 is consistently high. Semmelweis saw the same pattern and was puzzled and distressed. The only difference between the clinics was that many medical students served at Clinic 1, while mostly midwife students served at Clinic 2. While the midwives only tended to the women giving birth, the medical students also spent time in the autopsy rooms examining corpses.

Semmelweis started to suspect that something on the corpses, spread from the hands of the medical students, caused childbed fever. So in a desperate attempt to stop the high mortality rates, he decreed: Wash your hands! This was an unorthodox and controversial request, nobody in Vienna knew about bacteria at this point in time.

Let’s load in monthly data from Clinic 1 to see if the handwashing had any effect.

# Read the monthly data
monthly <- read_csv('monthly_deaths.csv')

# Adding a new column with proportion of deaths per no. births
monthly <- mutate(monthly, proportion_deaths = deaths/births)

# Print out the first rows in monthly
head(monthly)
date births deaths proportion_deaths
1 1841-01-01 254 37 0.146
2 1841-02-01 239 18 0.0753
3 1841-03-01 277 12 0.0433
4 1841-04-01 255 4 0.0157
5 1841-05-01 255 2 0.00784
6 1841-06-01 200 10 0.05

The effect of Handwashing

With the data loaded we can now look at the proportion of deaths over time. In the plot below we haven’t marked where obligatory handwashing started, but it reduced the proportion of deaths to such a degree that we should be able to spot it!

# Plot monthly proportion of deaths
ggplot(monthly, aes(x = date, y = proportion_deaths)) + geom_line() + labs(x = "Date", y = "Proportion of Deaths") + theme_bw()

Starting from the summer of 1847 the proportion of deaths is drastically reduced and, yes, this was when Semmelweis made handwashing obligatory.

The effect of handwashing is made even more clear if we highlight this in the graph.

# From this date handwashing was made mandatory
handwashing_start = as.Date('1847-06-01')

# Add a TRUE/FALSE column to monthly called handwashing_started
monthly <- mutate(monthly, handwashing_started = ifelse(monthly$date >= handwashing_start, TRUE, FALSE))

# Plot monthly proportion of deaths before and after handwashing
ggplot(monthly, aes(x = date, y = proportion_deaths)) + geom_line(aes(color = handwashing_started)) + 
labs(x = "Date", y = "Proportion of Deaths") + theme_bw()

Again, the graph shows that handwashing had a huge effect. How much did it reduce the monthly proportion of deaths on average?

# Calculating the mean proportion of deaths 
# before and after handwashing.

monthly_summary <- group_by(monthly, handwashing_started) %>% 
                    summarise(avg = mean(proportion_deaths))

# Printing out the summary.
monthly_summary
handwashing_started avg
FALSE 0.105
TRUE 0.0211

A statistical analysis of Semmelweis handwashing data

It reduced the proportion of deaths by around 8 percentage points! From 10% on average before handwashing to just 2% when handwashing was enforced (which is still a high number by modern standards). To get a feeling for the uncertainty around how much handwashing reduces mortalities we could look at a confidence interval (calculated using a t-test).

# Calculating a 95% Confidence intrerval using t.test 
test_result <- t.test( proportion_deaths ~ handwashing_started, data = monthly)
test_result

Conclusion

The mortality rate under doctors who didn’t wash their hands increased the proportion of deaths by between 6.7 and 10 percentage points, according to a 95% confidence interval. All in all, it would seem that Semmelweis had solid evidence that handwashing was a simple but highly effective procedure that could save many lives.

The tragedy is that, despite the evidence, Semmelweis’ theory — that childbed fever was caused by some “substance” (what we today know as bacteria) from autopsy room corpses — was ridiculed by contemporary scientists. The medical community largely rejected his discovery and in 1849 he was forced to leave the Vienna General Hospital for good.

One reason for this was that statistics and statistical arguments were uncommon in medical science in the 1800s. Semmelweis only published his data as long tables of raw data, but he didn’t show any graphs nor confidence intervals. If he would have had access to the analysis we’ve just put together he might have been more successful in getting the Viennese doctors to wash their hands.

Avatar
Amol Kulkarni
Ph.D.

My research interests include application of Machine learning algorithms to the fields of Marketing and Supply Chain Engineering, Decision Theory and Process Optimization.