Species spanning the animal kingdom have evolved extravagant and costly ornaments to attract mating partners. Zahavi's handicap principle offers an elegant explanation for this: ornaments signal individual quality, and must be costly to ensure honest signalling, making mate selection more efficient. Here, we incorporate the assumptions of the handicap principle into a mathematical model and show that they are sufficient to explain the heretofore puzzling observation of bimodally distributed ornament sizes in a variety of species.
ALL-ORNAMENT-DATA
This spreadsheet contains all animal ornament data used for statistical tests. Each column is a list of ornament sizes (or other intensity measure) taken from a population of a particular ornamented species, noted in the column header. All data was either acquired directly from authors or extracted from publications, also noted in the header.
Ornament software (main)
This Matlab script will reproduce all figures in the main manuscript. The software will numerically integrate the ornament model, plot health versus steady state ornament size, analyze fixed points, etc. All code is commented for easy use.
SCDT_032514_antler_clean.m
Simulated data (fixed gamma)
This zip file contains numerically integrated steady state ornament sizes mat files for many population sizes (indicated in the file name) with fixed gamma = 3/2, s = 1/2. Each row represents one fixed point state.
simulatedData_gammaThreeHalves.zip
Simulated data (fixed population size N=1000)
This zip file contains 6 sets of numerically integrated ornament sizes for various gamma values. Each mat file within the zip file represents a steady state for N = 1000, s = 1/2.
simulatedData_variousGammaN1000.zip
bimodalTestSimulations
This Matlab function tests data for bimodality, using the least-unimodal-unimodal (LUU) distribution for comparison.
ALL-ORNAMENT-DATA (mat files)
This zip file contains all the animal ornament data used in statistical tests (this data is replicated in easier-to-read csv file ALL-ORNAMENT-DATA.csv
animalData_matfiles.zip
findGaussianMix
This Matlab function computes the best fitting Gaussian mixture model for animal data based on AIC/BIC.
plotHistograms
This Matlab function plots histograms of all animal data and overlays kernel density estimates.