Ovulatory cycle shifts and relationship dynamics

Cycling women (not on hormonal birth control)

Women on hormonal birth control

Table of contents


After publication, we issued a number of corrections and clarifications. Details can be found in the following places.

Original TOC

This online supplementary documents our code and results. It is part of the online supplement on the Open Science Framework, where you will also find the text of our preregistration, the files necessary to reproduce the study structure and items in formr.org, synthetic data, and with access rights, the anonymised real data.

Below follows the table of contents for this website. Every link is followed by a short explanation.


We performed a power analysis to compare our diary design (with many days per woman) to more common 2-day and 4-day designs. To see how exactly the simulations were run, confer the cluster script.

We also performed researcher degrees of freedom analyses to better understand some of the research practices that have been discussed as possible reasons for false positive inflation in the literature. To see how exactly the simulations were run, confer the cluster script

Empirical data

Blake et al. re-analysis. Blake et al. (2017) analyzed luteinising hormone data and concluded a very low reliability for day-counting methods. However, their reliability numbers apply to a different set-up than ours, so we re-analyzed their data, finding improved performance for day-counting.

OCMATE data, Jones et al. re-analysis. Jones et al. (2018) provided open data for their hormonal measurements. We used these to compute reliabilites of change in addition to their reported coefficients of variation.

Data wrangling. This document shows all R code we needed to get from the raw data exported from formr to the data used in our analyses. It includes detailed information on fertile window determination, exclusion criteria, scale aggregation, and participant flow.

Descriptives. This document has extensive descriptive information on main demographic variables, but also includes a flow chart of exclusion criteria, the comparison between the naturally cycling group and the hormonal contraceptive user quasi-control group, missingness patterns for the different fertile window predictors, generalizability coefficients (multilevel reliabilities) for the diary items, measurement reactivity examinations, a detailed analysis of contraceptive methods, and the geographic origin of participants.

Pre-registered analyses. This document shows the results of our preregistered tests. In addition to the information in the manuscript, this page also contains marginal effect plots of all analyses, further details of moderator tests, and the detailed results of adjusting for self-esteem. The page is organised according to outcomes. If you click an outcome tab, you can choose from the results with the “narrow window”, the “broad window”, and, where predicted, the moderator results.

Robustness analyses. This page documents the majority of our robustness checks. Please allow some time for the page to load, as these were very extensive. The page is organised by outcome like the preregistered analyses. For each outcome, you can find 1) the summary of the main model, including marginal effect plots, the outcome distribution, and regression diagnostics, 2) continuous curves of the outcome over cycle days, with varying assumptions, 3) the robustness checks, which include alternative predictor specifications, covariate sets, regression assumptions, methodologically relevant moderators like cycle length, etc. 4) where predicted, moderator analyses using the minimal exclusion criteria dataset, including some alternative moderator specifications. This page also includes results for outcomes where we did not predict an effect, and response time, as a potential confound. This table gives descriptions of all the robustness checks that were conducted for all outcomes.

Bayesian item-level ordinal models for extra-pair desire and behaviour). Because the assumption of normality was violated for the extra-pair items, we additionally ran Bayesian models with an ordinal specification. These models also document an attempt to get appropriate standard errors for the cycle curves, and an examination of differences in fertility effects across items and persons.

Bayesian item-level ordinal models (separate by item). This page documents Bayesian ordinal models run separately for each item. These results have to be regarded as exploratory, but may help researchers specify their outcomes and predictions in future confirmatory studies. This page includes a plot and table of effect sizes across items.

Curve plot for paper. Reproducible code for making our curve plot figure in the manuscript.

Compare in- vs. extra-pair desire vs. libido explanations. An in-depth look at the challenges of comparing the effect size for extra-pair desire and in-pair desire, and making conclusions about potential underlying ovulatory changes in undirected sexual desire.

Data anonymisation procedure. Documentation of how we conducted the lossy anonymization of our data, and how we generated synthetic data.


In this document, all Helper functions that are used throughout, are documented. These are the .Rprofile settings

The statistical models for each outcome were documented in a standardised fashion using rmarkdown component files (partials), documented below:


Authors & Acknowledgements

Corresponding author: Ruben C. Arslan, Georg August University Göttingen
Katharina Schilling*, Tanja M. Gerlach, Lars Penke

This supplementary website has been archived on Zenodo.org DOI


RCA thanks Paul-Christian Bürkner, author of brms, and Ben Bolker, co-author of lme4, for their statistical packages and advice on using them.

Package bibliography

Session info (with package versions)

## R version 3.5.2 (2018-12-20)
## Platform: x86_64-apple-darwin15.6.0 (64-bit)
## Running under: macOS Sierra 10.12.6
## Matrix products: default
## BLAS: /Library/Frameworks/R.framework/Versions/3.5/Resources/lib/libRblas.0.dylib
## LAPACK: /Library/Frameworks/R.framework/Versions/3.5/Resources/lib/libRlapack.dylib
## locale:
## [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## loaded via a namespace (and not attached):
##  [1] compiler_3.5.2  magrittr_1.5    tools_3.5.2     htmltools_0.3.6
##  [5] yaml_2.2.0      Rcpp_1.0.0      stringi_1.3.1   rmarkdown_1.11 
##  [9] knitr_1.21      stringr_1.4.0   xfun_0.5        digest_0.6.18  
## [13] evaluate_0.13

Package references

Allaire, J., Cheng, J., Xie, Y., McPherson, J., Chang, W., Allen, J., … Arslan, R. (2017). rmarkdown: Dynamic documents for R. Retrieved from https://CRAN.R-project.org/package=rmarkdown

Analytics, R., & Weston, S. (2015). foreach: Provides foreach looping construct for R. Retrieved from https://CRAN.R-project.org/package=foreach

Arnold, J. B. (2016). ggthemes: Extra themes, scales and geoms for ’ggplot2’. Retrieved from https://CRAN.R-project.org/package=ggthemes

Arslan, R. (2014). formr: Formr survey framework.

Bates, D., Mächler, M., Bolker, B., & Walker, S. (2015). Fitting linear mixed-effects models using lme4. Journal of Statistical Software, 67, 1–48. doi:10.18637/jss.v067.i01

Bernaards, C. A., & I.Jennrich, R. (2005). Gradient projection algorithms and software for arbitrary rotation criteria in factor analysis. Educational and Psychological Measurement, 65, 676–696.

Bürkner, P.-C. (n.d.). brms: An R package for bayesian multilevel models using stan. Journal of Statistical Software.

Cheng, J., & Xie, Y. (2016). leaflet: Create interactive web maps with the javascript ’leaflet’ library. Retrieved from https://CRAN.R-project.org/package=leaflet

Daróczi, G., & Tsegelskyi, R. (2015). pander: An R pandoc writer. Retrieved from https://CRAN.R-project.org/package=pander

Dowle, M., & Srinivasan, A. (2016). data.table: Extension of ‘data.frame‘. Retrieved from https://CRAN.R-project.org/package=data.table

Dragulescu, A. A. (2014). xlsx: Read, write, format excel 2007 and excel 97/2000/xp/2003 files. Retrieved from https://CRAN.R-project.org/package=xlsx

Fox, J. (2003). Effect displays in R for generalised linear models. Journal of Statistical Software, 8, 1–27. Retrieved from http://www.jstatsoft.org/v08/i15/

Fox, J., & Weisberg, S. (2011). An R companion to applied regression (Second.). Thousand Oaks CA: Sage. Retrieved from http://socserv.socsci.mcmaster.ca/jfox/Books/Companion

Gabry, J. (2017). bayesplot: Plotting for Bayesian models. Retrieved from http://mc-stan.org/

Grolemund, G., & Wickham, H. (2011). Dates and times made easy with lubridate. Journal of Statistical Software, 40, 1–25. Retrieved from http://www.jstatsoft.org/v40/i03/

Harrell Jr, F. E., Charles Dupont, & others. (2016). Hmisc: Harrell miscellaneous. Retrieved from https://CRAN.R-project.org/package=Hmisc

Kuznetsova, A., Bruun Brockhoff, P., & Haubo Bojesen Christensen, R. (2016). lmerTest: Tests in linear mixed effects models. Retrieved from https://CRAN.R-project.org/package=lmerTest

Lüdecke, D. (2017). sjPlot: Data visualization for statistics in social science. Retrieved from https://CRAN.R-project.org/package=sjPlot

Müller, K., & Wickham, H. (2017). tibble: Simple data frames. Retrieved from https://CRAN.R-project.org/package=tibble

Ooms, J. (2014). The jsonlite package: A practical and consistent mapping between json data and R objects. arXiv:1403.2805 [stat.CO]. Retrieved from https://arxiv.org/abs/1403.2805

Pinheiro, J., Bates, D., DebRoy, S., Sarkar, D., & R Core Team. (2017). nlme: Linear and nonlinear mixed effects models. Retrieved from https://CRAN.R-project.org/package=nlme

R Core Team. (2016). R: A language and environment for statistical computing. Vienna, Austria: R Foundation for Statistical Computing. Retrieved from https://www.R-project.org/

Re, A. C. D. (2013). compute.es: Compute effect sizes. R Package. Retrieved from http://cran.r-project.org/web/packages/compute.es

Revelle, W. (2017). psych: Procedures for psychological, psychometric, and personality research. Evanston, Illinois: Northwestern University. Retrieved from https://CRAN.R-project.org/package=psych

Robinson, D. (2017). broom: Convert statistical analysis objects into tidy data frames. Retrieved from https://CRAN.R-project.org/package=broom

Schönbrodt, F. D. (2016). RSA: An R package for response surface analysis (version 0.9.10). Retrieved from https://cran.r-project.org/package=RSA

Selker, R., Love, J., & Dropmann, D. (2017). jmv: The ’jamovi’ analyses. Retrieved from https://CRAN.R-project.org/package=jmv

Singmann, H., Bolker, B., Westfall, J., & Aust, F. (2016). afex: Analysis of factorial experiments. Retrieved from https://CRAN.R-project.org/package=afex

Sveidqvist, K., Bostock, M., Pettitt, C., Daines, M., Kashcha, A., & Iannone, R. (2017). DiagrammeR: Create graph diagrams and flowcharts using R. Retrieved from https://CRAN.R-project.org/package=DiagrammeR

Torchiano, M. (2017). effsize: Efficient effect size computation. Retrieved from https://CRAN.R-project.org/package=effsize

Urbanek, S., & Horner, J. (2015). Cairo: R graphics device using cairo graphics library for creating high-quality bitmap (png, jpeg, tiff), vector (pdf, svg, postscript) and display (x11 and win32) output. Retrieved from https://CRAN.R-project.org/package=Cairo

Ushey, K., McPherson, J., Cheng, J., Atkins, A., & Allaire, J. (2016). packrat: A dependency management system for projects and their R package dependencies. Retrieved from https://CRAN.R-project.org/package=packrat

Vaidyanathan, R., Xie, Y., Allaire, J., Cheng, J., & Russell, K. (2016). htmlwidgets: HTML widgets for R. Retrieved from https://CRAN.R-project.org/package=htmlwidgets

Venables, W. N., & Ripley, B. D. (2002a). Modern applied statistics with s (Fourth.). New York: Springer. Retrieved from http://www.stats.ox.ac.uk/pub/MASS4

Venables, W. N., & Ripley, B. D. (2002b). Modern applied statistics with s (Fourth.). New York: Springer. Retrieved from http://www.stats.ox.ac.uk/pub/MASS4

Viechtbauer, W. (2010). Conducting meta-analyses in R with the metafor package. Journal of Statistical Software, 36, 1–48. Retrieved from http://www.jstatsoft.org/v36/i03/

Wand, M. (2015). KernSmooth: Functions for kernel smoothing supporting wand & jones (1995). Retrieved from https://CRAN.R-project.org/package=KernSmooth

Weston, S. (2014). doMPI: Foreach parallel adaptor for the rmpi package. Retrieved from https://CRAN.R-project.org/package=doMPI

Wickham, H. (2007). Reshaping data with the reshape package. Journal of Statistical Software, 21, 1–20. Retrieved from http://www.jstatsoft.org/v21/i12/

Wickham, H. (2009). ggplot2: Elegant graphics for data analysis. Springer-Verlag New York. Retrieved from http://ggplot2.org

Wickham, H. (2011). The split-apply-combine strategy for data analysis. Journal of Statistical Software, 40, 1–29. Retrieved from http://www.jstatsoft.org/v40/i01/

Wickham, H. (2016a). dtplyr: Data table back-end for ’dplyr’. Retrieved from https://CRAN.R-project.org/package=dtplyr

Wickham, H. (2016b). httr: Tools for working with urls and http. Retrieved from https://CRAN.R-project.org/package=httr

Wickham, H. (2016c). scales: Scale functions for visualization. Retrieved from https://CRAN.R-project.org/package=scales

Wickham, H. (2016d). lazyeval: Lazy (non-standard) evaluation. Retrieved from https://CRAN.R-project.org/package=lazyeval

Wickham, H. (2017a). stringr: Simple, consistent wrappers for common string operations. Retrieved from https://CRAN.R-project.org/package=stringr

Wickham, H. (2017b). tidyr: Easily tidy data with ’spread()’ and ’gather()’ functions. Retrieved from https://CRAN.R-project.org/package=tidyr

Wickham, H., & Chang, W. (2016). devtools: Tools to make developing R packages easier. Retrieved from https://CRAN.R-project.org/package=devtools

Wickham, H., & Francois, R. (2016). dplyr: A grammar of data manipulation. Retrieved from https://CRAN.R-project.org/package=dplyr

Wickham, H., Henry, L., Luciani, T. J., Decorde, M., & Lise, V. (2016a). svglite: An ’svg’ graphics device. Retrieved from https://CRAN.R-project.org/package=svglite

Wickham, H., Hester, J., & Francois, R. (2016b). readr: Read tabular data. Retrieved from https://CRAN.R-project.org/package=readr

Wickham, H., & Miller, E. (2016). haven: Import and export ’spss’, ’stata’ and ’sas’ files. Retrieved from https://CRAN.R-project.org/package=haven

Winston Chang. (2014). extrafont: Tools for using fonts. Retrieved from https://CRAN.R-project.org/package=extrafont

Wood, S. N. (2011). Fast stable restricted maximum likelihood and marginal likelihood estimation of semiparametric generalized linear models. Journal of the Royal Statistical Society (B), 73, 3–36.

Xie, Y. (2016a). knitr: A general-purpose package for dynamic report generation in R. Retrieved from http://yihui.name/knitr/

Xie, Y. (2016b). formatR: Format R code automatically. Retrieved from https://CRAN.R-project.org/package=formatR

Xie, Y. (2016c). DT: A wrapper of the javascript library ’datatables’. Retrieved from https://CRAN.R-project.org/package=DT