In this short tutorial, we perform a hypothesis test on the “cuckoo” dataset.

1 Cuckoo dataset

The common cuckoo does not build its own nest: it prefers to lay its eggs in another birds’ nest. It is known, since 1892, that the type of cuckoo bird eggs are different between different locations. In a study from 1940, it was shown that cuckoos return to the same nesting area each year, and that they always pick the same bird species to be a “foster parent” for their eggs.

Over the years, this has lead to the development of geographically determined subspecies of cuckoos. These subspecies have evolved in such a way that their eggs look as similar as possible as those of their foster parents.

The cuckoo dataset contains information on 120 Cuckoo eggs, obtained from randomly selected “foster” nests. For these eggs, researchers have measured the length (in mm) and established the type (species) of foster parent. The type column is coded as follows:

  • type=1: Meadow pipit
  • type=2: Tree pipit
  • type=3: Dunnock
  • type=4: European robin
  • type=5: White wagtail
  • type=6: Eurasian wren

2 Goal

The researchers want totest if the type of foster parent has an effect on the average length of the cuckoo eggs.

In theory, they want to study this for all six species. However, a t-test can only be used to study mean differences between two groups. If we want to analyze multiple groups, there are two options.

  1. We perform t-tests on all pairwise combinations of types. This mean we need to perform n*(n-1)/2 = 15 t-tests.

  2. We perform an ANOVA analysis.

The second strategy is much more efficient and has a higher statistical power. We will learn all about ANOVA in a later stage of this course week.

In this tutorial, we will assess a single pairwise comparison, between the European robin and the European wren. In a following tutorial, we will come back to this dataset and make a full analysis with ANOVA.

Load the required libraries

library(tidyverse)

3 Import the data

Cuckoo <- read_tsv("https://raw.githubusercontent.com/GTPB/PSLS20/master/data/Cuckoo.txt")
head(Cuckoo)
## # A tibble: 6 x 2
##   length  type
##    <dbl> <dbl>
## 1   21.8     1
## 2   21.7     1
## 3   21.7     1
## 4   24.0     1
## 5   22.4     1
## 6   23.0     1

4 Data tidying

For this exercise, we only care about the European robin and the Eurasian wren. Therefore, we can remove the observations of the other types. In addition, it seems that the tpye column rather than a factor. Let’s fix this:

Cuckoo <- Cuckoo %>%
  filter(type %in% c("4","6")) %>%
  mutate(type = as.factor(type))

5 Data exploration

How many birds do we have for each type?

Cuckoo %>%
  count(type)
## # A tibble: 2 x 2
##   type      n
##   <fct> <int>
## 1 4        16
## 2 6        15

Visualize the data

Cuckoo %>%
  ggplot(aes(x=type,y=length,fill=type)) +
  geom_boxplot() +
  theme_bw() +
  geom_boxplot(outlier.shape=NA) + 
  geom_jitter(width = 0.2) +
  scale_fill_manual(values=c("dimgrey","firebrick")) +
  ggtitle("Boxplot of the length of eggs per type") +
  ylab("length (mm)") + 
  stat_summary(fun.y=mean, geom="point", shape=5, size=3, color="black", fill="black")

We clearly see that, on average, the eggs laid in the nest of the European robin (type=4) are larger than those laid in the nest of the Eurasian wren. But is this difference significant?

We can test this with an unpaired, two-sample t-test. Buu before we can start the analysis, we must check if all assumptions to perform a t-test are met.

6 Check the assumptions

  1. The observations are independent of each other (in both groups)
  2. The data (length) must be normally distributed (in both groups)

Additionally, we should check if the variability within both groups is similar or not (in the lattter case we should use a Welch t-test).

  1. The variability within both groups is similar

The first assumption is met, as we may assume that there are no specific patterns of correlation randomly selected nests.

To check the normality assumption, we will use QQ plots.

Cuckoo %>% 
  ggplot(aes(sample=length)) +
  geom_qq() +
  geom_qq_line() + 
  facet_grid(~type)

There seem to be no clear deviations from normality.

The third assumption seems to be met based on our visualization with the boxplots. As all assumptions are met, we may proceed with the analysis.

7 Two-sample t-test (unpaired)

length_4 <- Cuckoo %>% 
  filter(type == "4") %>%
  pull(length)

length_6 <- Cuckoo %>% 
  filter(type == "6") %>%
  pull(length)

output <- t.test(length_4,length_6,conf.level = 0.95,var.equal = TRUE)
output
## 
##  Two Sample t-test
## 
## data:  length_4 and length_6
## t = 5.633, df = 29, p-value = 4.378e-06
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  0.9203528 1.9696472
## sample estimates:
## mean of x mean of y 
##    22.575    21.130

8 Conclusion

We may conclude that, on the 5% significance level, the mean length of eggs fostered by the European robin in extremely significantly higher (p = 4.3810^{-6}) than the mean length of eggs fostered by the Eurasian wren. The eggs fostered by the European wren are on average 1.45 mm longer (95% CI [0.92, 1.97]).

LS0tCnRpdGxlOiAnVHV0b3JpYWwgNS40OiBIeXBvdGhlc2lzIHRlc3Rpbmcgb24gdGhlIGN1Y2tvbyBkYXRhc2V0JwpvdXRwdXQ6CiAgaHRtbF9kb2N1bWVudDoKICAgIGNvZGVfZG93bmxvYWQ6IHllcwogICAgaGlnaGxpZ2h0OiB0YW5nbwogICAgbnVtYmVyX3NlY3Rpb25zOiB5ZXMKICAgIHRoZW1lOiBjb3NtbwogICAgdG9jOiB5ZXMKICAgIHRvY19mbG9hdDogeWVzCiAgcGRmX2RvY3VtZW50OgogICAgdG9jOiB5ZXMKLS0tCgpJbiB0aGlzIHNob3J0IHR1dG9yaWFsLCB3ZSBwZXJmb3JtIGEgaHlwb3RoZXNpcyB0ZXN0IG9uIHRoZQoiY3Vja29vIiBkYXRhc2V0LiAKCiMgQ3Vja29vIGRhdGFzZXQKClRoZSBjb21tb24gY3Vja29vIGRvZXMgbm90IGJ1aWxkIGl0cyBvd24gbmVzdDogaXQgcHJlZmVycwp0byBsYXkgaXRzIGVnZ3MgaW4gYW5vdGhlciBiaXJkcycgbmVzdC4gSXQgaXMga25vd24sIHNpbmNlIDE4OTIsCnRoYXQgdGhlIHR5cGUgb2YgY3Vja29vIGJpcmQgZWdncyBhcmUgZGlmZmVyZW50IGJldHdlZW4gZGlmZmVyZW50CmxvY2F0aW9ucy4gSW4gYSBzdHVkeSBmcm9tIDE5NDAsIGl0IHdhcyBzaG93biB0aGF0IGN1Y2tvb3MgcmV0dXJuCnRvIHRoZSBzYW1lIG5lc3RpbmcgYXJlYSBlYWNoIHllYXIsIGFuZCB0aGF0IHRoZXkgYWx3YXlzIHBpY2sKdGhlIHNhbWUgYmlyZCBzcGVjaWVzIHRvIGJlIGEgImZvc3RlciBwYXJlbnQiIGZvciB0aGVpciBlZ2dzLgoKT3ZlciB0aGUgeWVhcnMsIHRoaXMgaGFzIGxlYWQgdG8gdGhlIGRldmVsb3BtZW50IG9mIGdlb2dyYXBoaWNhbGx5CmRldGVybWluZWQgc3Vic3BlY2llcyBvZiBjdWNrb29zLiBUaGVzZSBzdWJzcGVjaWVzIGhhdmUgZXZvbHZlZCBpbgpzdWNoIGEgd2F5IHRoYXQgdGhlaXIgZWdncyBsb29rIGFzIHNpbWlsYXIgYXMgcG9zc2libGUgYXMgdGhvc2UKb2YgdGhlaXIgZm9zdGVyIHBhcmVudHMuCgpUaGUgY3Vja29vIGRhdGFzZXQgY29udGFpbnMgaW5mb3JtYXRpb24gb24gMTIwIEN1Y2tvbyBlZ2dzLApvYnRhaW5lZCBmcm9tIHJhbmRvbWx5IHNlbGVjdGVkICJmb3N0ZXIiIG5lc3RzLgpGb3IgdGhlc2UgZWdncywgcmVzZWFyY2hlcnMgaGF2ZSBtZWFzdXJlZCB0aGUgYGxlbmd0aGAgKGluIG1tKQphbmQgZXN0YWJsaXNoZWQgdGhlIGB0eXBlYCAoc3BlY2llcykgb2YgZm9zdGVyIHBhcmVudC4KVGhlIHR5cGUgY29sdW1uIGlzIGNvZGVkIGFzIGZvbGxvd3M6CgotIGB0eXBlPTFgOiBNZWFkb3cgcGlwaXQKLSBgdHlwZT0yYDogVHJlZSBwaXBpdAotIGB0eXBlPTNgOiBEdW5ub2NrCi0gYHR5cGU9NGA6IEV1cm9wZWFuIHJvYmluCi0gYHR5cGU9NWA6IFdoaXRlIHdhZ3RhaWwKLSBgdHlwZT02YDogRXVyYXNpYW4gd3JlbgoKIyBHb2FsCgpUaGUgcmVzZWFyY2hlcnMgd2FudCB0b3Rlc3QgaWYgdGhlIHR5cGUgb2YgZm9zdGVyIHBhcmVudApoYXMgYW4gZWZmZWN0IG9uIHRoZSBhdmVyYWdlIGxlbmd0aCBvZiB0aGUgY3Vja29vIGVnZ3MuCgpJbiB0aGVvcnksIHRoZXkgd2FudCB0byBzdHVkeSB0aGlzIGZvciBhbGwgc2l4IHNwZWNpZXMuCkhvd2V2ZXIsIGEgdC10ZXN0IGNhbiBvbmx5IGJlIHVzZWQgdG8gc3R1ZHkgbWVhbiBkaWZmZXJlbmNlcwpiZXR3ZWVuIHR3byBncm91cHMuIElmIHdlIHdhbnQgdG8gYW5hbHl6ZSBtdWx0aXBsZSBncm91cHMsIHRoZXJlCmFyZSB0d28gb3B0aW9ucy4KCjEuIFdlIHBlcmZvcm0gdC10ZXN0cyBvbiBhbGwgcGFpcndpc2UgY29tYmluYXRpb25zIG9mIHR5cGVzLgpUaGlzIG1lYW4gd2UgbmVlZCB0byBwZXJmb3JtIG4qKG4tMSkvMiA9IDE1IHQtdGVzdHMuCgoyLiBXZSBwZXJmb3JtIGFuIEFOT1ZBIGFuYWx5c2lzLgoKVGhlIHNlY29uZCBzdHJhdGVneSBpcyBtdWNoIG1vcmUgZWZmaWNpZW50IGFuZCBoYXMgYSBoaWdoZXIKc3RhdGlzdGljYWwgcG93ZXIuIFdlIHdpbGwgbGVhcm4gYWxsIGFib3V0IEFOT1ZBIGluIGEgbGF0ZXIKc3RhZ2Ugb2YgdGhpcyBjb3Vyc2Ugd2Vlay4KCkluIHRoaXMgdHV0b3JpYWwsIHdlIHdpbGwgYXNzZXNzIGEgc2luZ2xlIHBhaXJ3aXNlIGNvbXBhcmlzb24sCmJldHdlZW4gdGhlIEV1cm9wZWFuIHJvYmluIGFuZCB0aGUgRXVyb3BlYW4gd3Jlbi4gSW4gYSBmb2xsb3dpbmcKdHV0b3JpYWwsIHdlIHdpbGwgY29tZSBiYWNrIHRvIHRoaXMgZGF0YXNldCBhbmQgbWFrZSBhIGZ1bGwgCmFuYWx5c2lzIHdpdGggQU5PVkEuCgpMb2FkIHRoZSByZXF1aXJlZCBsaWJyYXJpZXMKCmBgYHtyLCBtZXNzYWdlPUZBTFNFfQpsaWJyYXJ5KHRpZHl2ZXJzZSkKYGBgCgojIEltcG9ydCB0aGUgZGF0YQoKYGBge3IsIG1lc3NhZ2U9RkFMU0V9CkN1Y2tvbyA8LSByZWFkX3RzdigiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0dUUEIvUFNMUzIwL21hc3Rlci9kYXRhL0N1Y2tvby50eHQiKQpgYGAKCmBgYHtyfQpoZWFkKEN1Y2tvbykKYGBgCgoKIyBEYXRhIHRpZHlpbmcKCkZvciB0aGlzIGV4ZXJjaXNlLCB3ZSBvbmx5IGNhcmUgYWJvdXQgdGhlIEV1cm9wZWFuIHJvYmluCmFuZCB0aGUgRXVyYXNpYW4gd3Jlbi4gVGhlcmVmb3JlLCB3ZSBjYW4gcmVtb3ZlIHRoZSBvYnNlcnZhdGlvbnMKb2YgdGhlIG90aGVyIHR5cGVzLiBJbiBhZGRpdGlvbiwgaXQgc2VlbXMgdGhhdCB0aGUgYHRweWVgIApjb2x1bW4gcmF0aGVyIHRoYW4gYSBmYWN0b3IuIExldCdzIGZpeCB0aGlzOgoKYGBge3J9CkN1Y2tvbyA8LSBDdWNrb28gJT4lCiAgZmlsdGVyKHR5cGUgJWluJSBjKCI0IiwiNiIpKSAlPiUKICBtdXRhdGUodHlwZSA9IGFzLmZhY3Rvcih0eXBlKSkKYGBgCgoKIyBEYXRhIGV4cGxvcmF0aW9uCgpIb3cgbWFueSBiaXJkcyBkbyB3ZSBoYXZlIGZvciBlYWNoIHR5cGU/CgpgYGB7cn0KQ3Vja29vICU+JQogIGNvdW50KHR5cGUpCmBgYAoKVmlzdWFsaXplIHRoZSBkYXRhCgpgYGB7cn0KQ3Vja29vICU+JQogIGdncGxvdChhZXMoeD10eXBlLHk9bGVuZ3RoLGZpbGw9dHlwZSkpICsKICBnZW9tX2JveHBsb3QoKSArCiAgdGhlbWVfYncoKSArCiAgZ2VvbV9ib3hwbG90KG91dGxpZXIuc2hhcGU9TkEpICsgCiAgZ2VvbV9qaXR0ZXIod2lkdGggPSAwLjIpICsKICBzY2FsZV9maWxsX21hbnVhbCh2YWx1ZXM9YygiZGltZ3JleSIsImZpcmVicmljayIpKSArCiAgZ2d0aXRsZSgiQm94cGxvdCBvZiB0aGUgbGVuZ3RoIG9mIGVnZ3MgcGVyIHR5cGUiKSArCiAgeWxhYigibGVuZ3RoIChtbSkiKSArIAogIHN0YXRfc3VtbWFyeShmdW4ueT1tZWFuLCBnZW9tPSJwb2ludCIsIHNoYXBlPTUsIHNpemU9MywgY29sb3I9ImJsYWNrIiwgZmlsbD0iYmxhY2siKQpgYGAKCldlIGNsZWFybHkgc2VlIHRoYXQsIG9uIGF2ZXJhZ2UsIHRoZSBlZ2dzIGxhaWQgaW4gdGhlIApuZXN0IG9mIHRoZSBFdXJvcGVhbiByb2JpbiAodHlwZT00KSBhcmUgbGFyZ2VyIHRoYW4gdGhvc2UgCmxhaWQgaW4gdGhlIG5lc3Qgb2YgdGhlIEV1cmFzaWFuIHdyZW4uIEJ1dCBpcyB0aGlzIGRpZmZlcmVuY2UgKipzaWduaWZpY2FudCoqPwoKV2UgY2FuIHRlc3QgdGhpcyB3aXRoIGFuIHVucGFpcmVkLCB0d28tc2FtcGxlIHQtdGVzdC4gCkJ1dSBiZWZvcmUgd2UgY2FuIHN0YXJ0IHRoZSBhbmFseXNpcywgd2UgbXVzdCBjaGVjayBpZgphbGwgYXNzdW1wdGlvbnMgdG8gcGVyZm9ybSBhIHQtdGVzdCBhcmUgbWV0LgoKIyBDaGVjayB0aGUgYXNzdW1wdGlvbnMKCjEuIFRoZSBvYnNlcnZhdGlvbnMgYXJlIGluZGVwZW5kZW50IG9mIGVhY2ggb3RoZXIgKGluIGJvdGggZ3JvdXBzKQoyLiBUaGUgZGF0YSAobGVuZ3RoKSBtdXN0IGJlIG5vcm1hbGx5IGRpc3RyaWJ1dGVkIChpbiBib3RoIGdyb3VwcykKCkFkZGl0aW9uYWxseSwgd2Ugc2hvdWxkIGNoZWNrIGlmIHRoZSB2YXJpYWJpbGl0eSB3aXRoaW4gYm90aApncm91cHMgaXMgc2ltaWxhciBvciBub3QgKGluIHRoZSBsYXR0dGVyIGNhc2Ugd2Ugc2hvdWxkIHVzZQphIFdlbGNoIHQtdGVzdCkuCgozLiBUaGUgdmFyaWFiaWxpdHkgd2l0aGluIGJvdGggZ3JvdXBzIGlzIHNpbWlsYXIKClRoZSBmaXJzdCBhc3N1bXB0aW9uIGlzIG1ldCwgYXMgd2UgbWF5IGFzc3VtZSB0aGF0IHRoZXJlIGFyZSBubwpzcGVjaWZpYyBwYXR0ZXJucyBvZiBjb3JyZWxhdGlvbiByYW5kb21seSBzZWxlY3RlZCBuZXN0cy4KClRvIGNoZWNrIHRoZSBub3JtYWxpdHkgYXNzdW1wdGlvbiwgd2Ugd2lsbCB1c2UgUVEgcGxvdHMuCgpgYGB7cn0KQ3Vja29vICU+JSAKICBnZ3Bsb3QoYWVzKHNhbXBsZT1sZW5ndGgpKSArCiAgZ2VvbV9xcSgpICsKICBnZW9tX3FxX2xpbmUoKSArIAogIGZhY2V0X2dyaWQofnR5cGUpCmBgYAoKVGhlcmUgc2VlbSB0byBiZSBubyBjbGVhciBkZXZpYXRpb25zIGZyb20gbm9ybWFsaXR5LgoKVGhlIHRoaXJkIGFzc3VtcHRpb24gc2VlbXMgdG8gYmUgbWV0IGJhc2VkIG9uIG91cgp2aXN1YWxpemF0aW9uIHdpdGggdGhlIGJveHBsb3RzLiBBcyBhbGwgYXNzdW1wdGlvbnMgYXJlIG1ldCwgCndlIG1heSBwcm9jZWVkIHdpdGggdGhlIGFuYWx5c2lzLgoKIyBUd28tc2FtcGxlIHQtdGVzdCAodW5wYWlyZWQpCgpgYGB7cn0KbGVuZ3RoXzQgPC0gQ3Vja29vICU+JSAKICBmaWx0ZXIodHlwZSA9PSAiNCIpICU+JQogIHB1bGwobGVuZ3RoKQoKbGVuZ3RoXzYgPC0gQ3Vja29vICU+JSAKICBmaWx0ZXIodHlwZSA9PSAiNiIpICU+JQogIHB1bGwobGVuZ3RoKQoKb3V0cHV0IDwtIHQudGVzdChsZW5ndGhfNCxsZW5ndGhfNixjb25mLmxldmVsID0gMC45NSx2YXIuZXF1YWwgPSBUUlVFKQpvdXRwdXQKYGBgCgojIENvbmNsdXNpb24gCgpXZSBtYXkgY29uY2x1ZGUgdGhhdCwgb24gdGhlIDUlIHNpZ25pZmljYW5jZSBsZXZlbCwgdGhlIG1lYW4gCmxlbmd0aCBvZiBlZ2dzIGZvc3RlcmVkIGJ5IHRoZSBFdXJvcGVhbiByb2JpbiBpbiBleHRyZW1lbHkKc2lnbmlmaWNhbnRseSBoaWdoZXIgKHAgPSBgciByb3VuZChvdXRwdXQkcC52YWx1ZSw4KWApIHRoYW4gdGhlIG1lYW4KbGVuZ3RoIG9mIGVnZ3MgZm9zdGVyZWQgYnkgdGhlIEV1cmFzaWFuIHdyZW4uIFRoZSBlZ2dzIApmb3N0ZXJlZCBieSB0aGUgRXVyb3BlYW4gd3JlbiBhcmUgb24gYXZlcmFnZSAKYHIgcm91bmQodW5uYW1lKG91dHB1dCRlc3RpbWF0ZVsxXSktdW5uYW1lKG91dHB1dCRlc3RpbWF0ZVsyXSksMilgIG1tIGxvbmdlcgooOTUlIENJIFtgciByb3VuZChvdXRwdXQkY29uZi5pbnRbYygxLDIpXSwyKWBdKS4KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoK