Steiger et al. (2008) studied the Coolidge effect, the decline in males’ interest in mating with the same female compared to novel females, using the burying beetle Nicrophorus vespilloides. Eighteen male beetles were presented with the same female beetle four times, and then a novel female on the fifth occasion. This was a repeated measures design as the same individual males were repeatedly presented with females. There was no evidence that physical exhaustion affected time to mating as a separate control group of males were presented with novel, unmated females five times in succession, and there was no change in time to mating. The within-subjects factor was the order of presented females, and while this could have been treated as a continuous covariate, we treated it as a fixed factor with five groups. The response variable recorded on each occasion was time to mating.

Adult burying beetle. Francisco Welter-Schultes. Wikimedia Commons Creative Commons CC0 1.0 Universal Public Domain Dedication
Adult burying beetle. Francisco Welter-Schultes. Wikimedia Commons Creative Commons CC0 1.0 Universal Public Domain Dedication

Francisco Welter-Schultes, CC0, via Wikimedia Commons

Steiger, S., Franz, R., Eggert, A. K. & Muller, J. K. (2008). The Coolidge effect, individual recognition and selection for distinctive cuticular signatures in a burying beetle. Proceedings of the Royal Society B, 275, 1831-8.

Link to the paper: doi: 10.1098/rspb.2008.0375 and data

Preliminaries

First, load the required packages (afex, car, lattice, lme4, lmerTest, nlme, VCA, ez, emmeans, Rmisc, MuMIn)

Import steiger data file (steiger.csv)

steiger <- read.csv("../data/steiger.csv")
steiger

Set contrasts from afex. Make individual a factor Rearrange matingnumber order to override default alphabetical order

set_sum_contrasts()
steiger$individual <- factor(steiger$individual)
steiger$matingnumber <- factor(steiger$matingnumber, levels=c("first","second","third","fourth","fifth"))

Quick boxplot to look at variances for different mating numbers

boxplot(time~matingnumber, data=steiger)

Fit OLS model with default aov SS

steiger.aov <- aov(time~matingnumber+individual, data=steiger)

Check residuals - some evidence for interaction

plot(steiger.aov)

Do interaction plot

interaction.plot(steiger$matingnumber, steiger$individual, steiger$time)

The rank order of treatments consistent but the sizes of the differences vary greatly between individuals. Quickly try boxplot with log-transformed data to see if any improvement

boxplot(log10(time)~matingnumber, data=steiger)

Transform to logs due to variance heterogeneity and to minimise interaction

steiger$ltime <- log10(steiger$time)

Recheck diagnostics - much better with less interaction

boxplot(ltime~matingnumber, data=steiger)

interaction.plot(steiger$matingnumber, steiger$individual, steiger$ltime)

Fit OLS model with default aov SS

steiger.aov1 <- aov(ltime~matingnumber+individual, data=steiger)

check residuals - look OK

plot(steiger.aov1)

Examine results

Once we’re happy with the model that we’re fitting, we can look at the results.

tidy(steiger.aov1)
emmeans(steiger.aov1, "matingnumber")

Get Greenhouse Geiser adjusted results

ezsteiger1 <- ezANOVA(data=steiger, dv=ltime, wid=individual, within=matingnumber, type=3, detailed=TRUE)
print(ezsteiger1)

Use VCA package to get anova var comps (with CIs that can be -ve)

steiger.vca <- anovaMM(ltime~matingnumber+(individual), steiger)
steiger.vca
VCAinference(steiger.vca, alpha=0.05, VarVC=TRUE, excludeNeg=FALSE, constrainCI=FALSE)

Fit random intercept model using lme4 and REML

steiger.lmer1 <- lmer(ltime~matingnumber + (1|individual), REML=TRUE, steiger)
summary(steiger.lmer1, ddf="Kenward-Roger")
anova(steiger.lmer1, type=3, ddf="Kenward-Roger")
emmeans(steiger.lmer1, ~matingnumber)

Note different CIs compared to OLS model fitting due to K-R adjustment

CI on variance components (remembering to square CIs from lmer which are in SD units)

steiger.ci1 <- confint.merMod(steiger.lmer1, oldNames=FALSE)
steiger.vc1 <- (steiger.ci1)^2
print(steiger.vc1)

Bar graph for time main effect

steiger_sum <- summarySE(steiger, measurevar= 'ltime', groupvars= 'matingnumber')
ggplot(steiger_sum, aes(x=matingnumber, y=ltime))+
  geom_bar(stat="identity", position="dodge", fill="lightblue")+
  geom_errorbar(aes(ymin=ltime-se, ymax=ltime+se), width=0.3, color="darkblue")
LS0tCnRpdGxlOiAiUUsgQm94IDEyLjEiCm91dHB1dDoKICBodG1sX25vdGVib29rOgogICAgZGZfcHJpbnQ6IHBhZ2VkCi0tLQoKYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9CmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gVFJVRSkKYGBgCgpTdGVpZ2VyIGV0IGFsLiAoMjAwOCkgc3R1ZGllZCB0aGUgQ29vbGlkZ2UgZWZmZWN0LCB0aGUgZGVjbGluZSBpbiBtYWxlcycgaW50ZXJlc3QgaW4gbWF0aW5nIHdpdGggdGhlIHNhbWUgZmVtYWxlIGNvbXBhcmVkIHRvIG5vdmVsIGZlbWFsZXMsIHVzaW5nIHRoZSBidXJ5aW5nIGJlZXRsZSAqTmljcm9waG9ydXMgdmVzcGlsbG9pZGVzKi4gRWlnaHRlZW4gbWFsZSBiZWV0bGVzIHdlcmUgcHJlc2VudGVkIHdpdGggdGhlIHNhbWUgZmVtYWxlIGJlZXRsZSBmb3VyIHRpbWVzLCBhbmQgdGhlbiBhIG5vdmVsIGZlbWFsZSBvbiB0aGUgZmlmdGggb2NjYXNpb24uIFRoaXMgd2FzIGEgcmVwZWF0ZWQgbWVhc3VyZXMgZGVzaWduIGFzIHRoZSBzYW1lIGluZGl2aWR1YWwgbWFsZXMgd2VyZSByZXBlYXRlZGx5IHByZXNlbnRlZCB3aXRoIGZlbWFsZXMuIFRoZXJlIHdhcyBubyBldmlkZW5jZSB0aGF0IHBoeXNpY2FsIGV4aGF1c3Rpb24gYWZmZWN0ZWQgdGltZSB0byBtYXRpbmcgYXMgYSBzZXBhcmF0ZSBjb250cm9sIGdyb3VwIG9mIG1hbGVzIHdlcmUgcHJlc2VudGVkIHdpdGggbm92ZWwsIHVubWF0ZWQgZmVtYWxlcyBmaXZlIHRpbWVzIGluIHN1Y2Nlc3Npb24sIGFuZCB0aGVyZSB3YXMgbm8gY2hhbmdlIGluIHRpbWUgdG8gbWF0aW5nLiBUaGUgd2l0aGluLXN1YmplY3RzIGZhY3RvciB3YXMgdGhlIG9yZGVyIG9mIHByZXNlbnRlZCBmZW1hbGVzLCBhbmQgd2hpbGUgdGhpcyBjb3VsZCBoYXZlIGJlZW4gdHJlYXRlZCBhcyBhIGNvbnRpbnVvdXMgY292YXJpYXRlLCB3ZSB0cmVhdGVkIGl0IGFzIGEgZml4ZWQgZmFjdG9yIHdpdGggZml2ZSBncm91cHMuIFRoZSByZXNwb25zZSB2YXJpYWJsZSByZWNvcmRlZCBvbiBlYWNoIG9jY2FzaW9uIHdhcyB0aW1lIHRvIG1hdGluZy4KCiFbQWR1bHQgYnVyeWluZyBiZWV0bGUuIEZyYW5jaXNjbyBXZWx0ZXItU2NodWx0ZXMuIFdpa2ltZWRpYSBDb21tb25zIENyZWF0aXZlIENvbW1vbnMgQ0MwIDEuMCBVbml2ZXJzYWwgUHVibGljIERvbWFpbiBEZWRpY2F0aW9uXSguLi9tZWRpYS9OaWNyb3Bob3J1cy12ZXNwaWxsb2lkZXMtMDQtZndzLmpwZyl7d2lkdGg9IjM5MiJ9CgpGcmFuY2lzY28gV2VsdGVyLVNjaHVsdGVzLCBbQ0MwXShodHRwczovL2NyZWF0aXZlY29tbW9ucy5vcmcvcHVibGljZG9tYWluL3plcm8vMS4wL2RlZWQuZW4pLCB2aWEgV2lraW1lZGlhIENvbW1vbnMKClN0ZWlnZXIsIFMuLCBGcmFueiwgUi4sIEVnZ2VydCwgQS4gSy4gJiBNdWxsZXIsIEouIEsuICgyMDA4KS4gVGhlIENvb2xpZGdlIGVmZmVjdCwgaW5kaXZpZHVhbCByZWNvZ25pdGlvbiBhbmQgc2VsZWN0aW9uIGZvciBkaXN0aW5jdGl2ZSBjdXRpY3VsYXIgc2lnbmF0dXJlcyBpbiBhIGJ1cnlpbmcgYmVldGxlLiAqUHJvY2VlZGluZ3Mgb2YgdGhlIFJveWFsIFNvY2lldHkgQiosIDI3NSwgMTgzMS04LgoKTGluayB0byB0aGUgcGFwZXI6IGRvaTogWzEwLjEwOTgvcnNwYi4yMDA4LjAzNzVdKGh0dHBzOi8vZG9pLm9yZy8xMC4xMDk4L3JzcGIuMjAwOC4wMzc1KSBhbmQgW2RhdGFdKGh0dHA6Ly9yc3BiLnJveWFsc29jaWV0eXB1Ymxpc2hpbmcub3JnL2NvbnRlbnQvc3VwcGwvMjAwOS8wMi8yMC8yNzUuMTY0NS4xODMxLkRDMS5odCUyMG1sKQoKIyMjIFByZWxpbWluYXJpZXMKCkZpcnN0LCBsb2FkIHRoZSByZXF1aXJlZCBwYWNrYWdlcyAoYWZleCwgY2FyLCBsYXR0aWNlLCBsbWU0LCBsbWVyVGVzdCwgbmxtZSwgVkNBLCBleiwgZW1tZWFucywgUm1pc2MsIE11TUluKQoKYGBge3IgaW5jbHVkZT1GQUxTRSwgcmVzdWx0cz0naGlkZSd9CnNvdXJjZSgiLi4vUi9saWJyYXJpZXMuUiIpICAgI1RoaXMgaXMgdGhlIGNvbW1vbiBsaWJyYXJ5CmBgYAoKSW1wb3J0IHN0ZWlnZXIgZGF0YSBmaWxlIChzdGVpZ2VyLmNzdikKCmBgYHtyfQpzdGVpZ2VyIDwtIHJlYWQuY3N2KCIuLi9kYXRhL3N0ZWlnZXIuY3N2IikKc3RlaWdlcgpgYGAKClNldCBjb250cmFzdHMgZnJvbSBhZmV4LiBNYWtlIGluZGl2aWR1YWwgYSBmYWN0b3IgUmVhcnJhbmdlIG1hdGluZ251bWJlciBvcmRlciB0byBvdmVycmlkZSBkZWZhdWx0IGFscGhhYmV0aWNhbCBvcmRlcgoKYGBge3IgcmVzdWx0cz0naGlkZSd9CnNldF9zdW1fY29udHJhc3RzKCkKc3RlaWdlciRpbmRpdmlkdWFsIDwtIGZhY3RvcihzdGVpZ2VyJGluZGl2aWR1YWwpCnN0ZWlnZXIkbWF0aW5nbnVtYmVyIDwtIGZhY3RvcihzdGVpZ2VyJG1hdGluZ251bWJlciwgbGV2ZWxzPWMoImZpcnN0Iiwic2Vjb25kIiwidGhpcmQiLCJmb3VydGgiLCJmaWZ0aCIpKQpgYGAKClF1aWNrIGJveHBsb3QgdG8gbG9vayBhdCB2YXJpYW5jZXMgZm9yIGRpZmZlcmVudCBtYXRpbmcgbnVtYmVycwoKYGBge3IgfQpib3hwbG90KHRpbWV+bWF0aW5nbnVtYmVyLCBkYXRhPXN0ZWlnZXIpCmBgYAoKIyMjIEZpdCBPTFMgbW9kZWwgd2l0aCBkZWZhdWx0IGFvdiBTUwoKYGBge3IgfQpzdGVpZ2VyLmFvdiA8LSBhb3YodGltZX5tYXRpbmdudW1iZXIraW5kaXZpZHVhbCwgZGF0YT1zdGVpZ2VyKQpgYGAKCkNoZWNrIHJlc2lkdWFscyAtIHNvbWUgZXZpZGVuY2UgZm9yIGludGVyYWN0aW9uCgpgYGB7ciB9CnBsb3Qoc3RlaWdlci5hb3YpCmBgYAoKIyMjIERvIGludGVyYWN0aW9uIHBsb3QKCmBgYHtyIH0KaW50ZXJhY3Rpb24ucGxvdChzdGVpZ2VyJG1hdGluZ251bWJlciwgc3RlaWdlciRpbmRpdmlkdWFsLCBzdGVpZ2VyJHRpbWUpCmBgYAoKVGhlIHJhbmsgb3JkZXIgb2YgdHJlYXRtZW50cyBjb25zaXN0ZW50IGJ1dCB0aGUgc2l6ZXMgb2YgdGhlIGRpZmZlcmVuY2VzIHZhcnkgZ3JlYXRseSBiZXR3ZWVuIGluZGl2aWR1YWxzLiBRdWlja2x5IHRyeSBib3hwbG90IHdpdGggbG9nLXRyYW5zZm9ybWVkIGRhdGEgdG8gc2VlIGlmIGFueSBpbXByb3ZlbWVudAoKYGBge3IgfQpib3hwbG90KGxvZzEwKHRpbWUpfm1hdGluZ251bWJlciwgZGF0YT1zdGVpZ2VyKQpgYGAKCiMjIyBUcmFuc2Zvcm0gdG8gbG9ncyBkdWUgdG8gdmFyaWFuY2UgaGV0ZXJvZ2VuZWl0eSBhbmQgdG8gbWluaW1pc2UgaW50ZXJhY3Rpb24KCmBgYHtyIH0Kc3RlaWdlciRsdGltZSA8LSBsb2cxMChzdGVpZ2VyJHRpbWUpCmBgYAoKUmVjaGVjayBkaWFnbm9zdGljcyAtIG11Y2ggYmV0dGVyIHdpdGggbGVzcyBpbnRlcmFjdGlvbgoKYGBge3IgfQpib3hwbG90KGx0aW1lfm1hdGluZ251bWJlciwgZGF0YT1zdGVpZ2VyKQppbnRlcmFjdGlvbi5wbG90KHN0ZWlnZXIkbWF0aW5nbnVtYmVyLCBzdGVpZ2VyJGluZGl2aWR1YWwsIHN0ZWlnZXIkbHRpbWUpCmBgYAoKIyMjIEZpdCBPTFMgbW9kZWwgd2l0aCBkZWZhdWx0IGFvdiBTUwoKYGBge3IgfQpzdGVpZ2VyLmFvdjEgPC0gYW92KGx0aW1lfm1hdGluZ251bWJlcitpbmRpdmlkdWFsLCBkYXRhPXN0ZWlnZXIpCmBgYAoKY2hlY2sgcmVzaWR1YWxzIC0gbG9vayBPSwoKYGBge3IgfQpwbG90KHN0ZWlnZXIuYW92MSkKYGBgCgojIyMgRXhhbWluZSByZXN1bHRzCgpPbmNlIHdlJ3JlIGhhcHB5IHdpdGggdGhlIG1vZGVsIHRoYXQgd2UncmUgZml0dGluZywgd2UgY2FuIGxvb2sgYXQgdGhlIHJlc3VsdHMuCgpgYGB7ciB9CnRpZHkoc3RlaWdlci5hb3YxKQplbW1lYW5zKHN0ZWlnZXIuYW92MSwgIm1hdGluZ251bWJlciIpCmBgYAoKR2V0IEdyZWVuaG91c2UgR2Vpc2VyIGFkanVzdGVkIHJlc3VsdHMKCmBgYHtyIH0KZXpzdGVpZ2VyMSA8LSBlekFOT1ZBKGRhdGE9c3RlaWdlciwgZHY9bHRpbWUsIHdpZD1pbmRpdmlkdWFsLCB3aXRoaW49bWF0aW5nbnVtYmVyLCB0eXBlPTMsIGRldGFpbGVkPVRSVUUpCnByaW50KGV6c3RlaWdlcjEpCmBgYAoKVXNlIFZDQSBwYWNrYWdlIHRvIGdldCBhbm92YSB2YXIgY29tcHMgKHdpdGggQ0lzIHRoYXQgY2FuIGJlIC12ZSkKCmBgYHtyIH0Kc3RlaWdlci52Y2EgPC0gYW5vdmFNTShsdGltZX5tYXRpbmdudW1iZXIrKGluZGl2aWR1YWwpLCBzdGVpZ2VyKQpzdGVpZ2VyLnZjYQpWQ0FpbmZlcmVuY2Uoc3RlaWdlci52Y2EsIGFscGhhPTAuMDUsIFZhclZDPVRSVUUsIGV4Y2x1ZGVOZWc9RkFMU0UsIGNvbnN0cmFpbkNJPUZBTFNFKQpgYGAKCiMjIEZpdCByYW5kb20gaW50ZXJjZXB0IG1vZGVsIHVzaW5nIGxtZTQgYW5kIFJFTUwKCmBgYHtyIH0Kc3RlaWdlci5sbWVyMSA8LSBsbWVyKGx0aW1lfm1hdGluZ251bWJlciArICgxfGluZGl2aWR1YWwpLCBSRU1MPVRSVUUsIHN0ZWlnZXIpCnN1bW1hcnkoc3RlaWdlci5sbWVyMSwgZGRmPSJLZW53YXJkLVJvZ2VyIikKYW5vdmEoc3RlaWdlci5sbWVyMSwgdHlwZT0zLCBkZGY9IktlbndhcmQtUm9nZXIiKQplbW1lYW5zKHN0ZWlnZXIubG1lcjEsIH5tYXRpbmdudW1iZXIpCmBgYAoKTm90ZSBkaWZmZXJlbnQgQ0lzIGNvbXBhcmVkIHRvIE9MUyBtb2RlbCBmaXR0aW5nIGR1ZSB0byBLLVIgYWRqdXN0bWVudAoKQ0kgb24gdmFyaWFuY2UgY29tcG9uZW50cyAocmVtZW1iZXJpbmcgdG8gc3F1YXJlIENJcyBmcm9tIGxtZXIgd2hpY2ggYXJlIGluIFNEIHVuaXRzKQoKYGBge3IgfQpzdGVpZ2VyLmNpMSA8LSBjb25maW50Lm1lck1vZChzdGVpZ2VyLmxtZXIxLCBvbGROYW1lcz1GQUxTRSkKc3RlaWdlci52YzEgPC0gKHN0ZWlnZXIuY2kxKV4yCnByaW50KHN0ZWlnZXIudmMxKQpgYGAKCiMjIyBCYXIgZ3JhcGggZm9yIHRpbWUgbWFpbiBlZmZlY3QKCmBgYHtyIH0Kc3RlaWdlcl9zdW0gPC0gc3VtbWFyeVNFKHN0ZWlnZXIsIG1lYXN1cmV2YXI9ICdsdGltZScsIGdyb3VwdmFycz0gJ21hdGluZ251bWJlcicpCmdncGxvdChzdGVpZ2VyX3N1bSwgYWVzKHg9bWF0aW5nbnVtYmVyLCB5PWx0aW1lKSkrCiAgZ2VvbV9iYXIoc3RhdD0iaWRlbnRpdHkiLCBwb3NpdGlvbj0iZG9kZ2UiLCBmaWxsPSJsaWdodGJsdWUiKSsKICBnZW9tX2Vycm9yYmFyKGFlcyh5bWluPWx0aW1lLXNlLCB5bWF4PWx0aW1lK3NlKSwgd2lkdGg9MC4zLCBjb2xvcj0iZGFya2JsdWUiKQpgYGAK