Does intraspecific competition exceed interspecific competition in a desert rodent community, and is interspecific competition stronger between body-size-similar species?
Paper
Conspecifics, not heterospecifics, limit individual body condition in a desert rodent community
Abstract
Modern coexistence theory makes an excess of intraspecific over interspecific density dependence the necessary condition for stabilisation, yet the benchmark quantification is entirely botanical. We estimated per-capita interaction coefficients on an individual fitness component, size-adjusted body mass, for the twelve abundant rodent species of the Portal Project record (30,320 measured individuals, 24 plots, 1977-2002). Eleven of twelve species were limited more by conspecifics than by heterospecifics (sign test p = 0.0032), and none showed significant interspecific competition. Substituting one heterospecific neighbour for one conspecific at constant total captures cost 2.07% of body mass (bootstrap 95% CI -2.49 to -1.61), but this unweighted species mean is pulled by two sparse species: seven of twelve contrasts are weaker than -2%. Restricting to structurally adult animals roughly halved it, to -1.119% (-1.676 to -0.644). Size-similar heterospecifics were not detectably stronger competitors. The ordering, not the magnitude, is robust.
§Ask about this paper
Grounded in this runQuestions are answered from this run's record — the paper, the executed analysis, the data provenance and the referee report. Nothing else is consulted.
This run is finished, so the recorded paper cannot be rewritten. Questions are still answered from its record.
Pipeline
1.Literature review
Literature review complete (live:agent:claude-opus-5): 10 key papers, 22 grounded sources, 5 open gaps.
Summary
Modern coexistence theory rests on one necessary condition: each species must limit itself more than it limits its competitors (Chesson 2000, 2018). Stabilising mechanisms are defined precisely as those that raise intraspecific relative to interspecific density dependence, so the empirical ratio of intra- to interspecific per-capita interaction strength is the field's central quantity. Adler et al. (2018) supplied the benchmark measurement for terrestrial plants: across 39 studies, where both effects were competitive, intraspecific competition was four to five-fold stronger than interspecific competition, and almost all remaining pairs combined intraspecific competition with interspecific facilitation. That synthesis is entirely botanical. No comparable per-capita estimate exists for a free-living vertebrate community, where interference competition and behavioural dominance operate alongside exploitative resource use.
Desert granivorous rodents are the classic vertebrate competition system (Brown, Reichman & Davidson 1979). Body size structures which seeds a species can profitably husk and where it forages (Brown & Lieberman 1973), and Bowers & Brown (1982) found that granivore pairs with mass ratios below about 1.5 co-occur less often than chance, the strongest observational case for body-size limiting similarity in this guild. At Portal, Arizona, three decades of exclosures showed that removing kangaroo rats raises the abundance of five smaller granivores (Brown & Munger 1985; Heske, Brown & Mistry 1994), and the community shows compensatory, energetically homeostatic dynamics (Ernest & Brown 2001; Ernest et al. 2008) punctuated by rapid compositional transitions (Christensen, Harris & Ernest 2018) whose compensatory capacity decays over decades (Diaz & Ernest 2022).
The gap is one of currency and scale. The Portal exclosure results are population-abundance responses to removing an entire guild member, not per-capita interaction coefficients, and they cannot say whether an individual is depressed more by one conspecific neighbour than by one heterospecific neighbour. Eccard & Ylonen (2003) argue explicitly that population-level removals miss the individual-level currencies through which rodent competition acts, and Manlick, Maldonado & Newsome (2021) show individual foraging and survival in a desert rodent ensemble respond to competitors. Body condition, standardised for structural size (Peig & Green 2009), is the natural individual fitness component.
Interpretation must be disciplined. Broekman et al. (2019) show that excess self-limitation measured on a fitness component evidences stabilisation of an interaction, not stable coexistence, which additionally requires the average-fitness-difference condition. Adler et al. (2018) further report that single-fitness-component studies yield smaller intra-minus-inter differences than full-life-cycle studies, making a body-condition test conservative. Yenni, Adler & Ernest (2012) predict the strongest self-limitation in the rarer species, giving a within-community prediction that the same data can test.
Key papers (10)
- Competition and coexistence in plant communities: intraspecific competition is stronger than interspecific competition. Adler, P.B., Smull, D., Beard, K.H., Choi, R.T., Furniss, T., Kulmatiski, A., Meiners, J.M., Tredennick, A.T. & Veblen, K.E. — Ecology Letters 21, 1319-1329, 2018.The benchmark quantitative synthesis: intraspecific competition four to five-fold stronger than interspecific across 39 plant studies, and the source of the design guidance that single-fitness-component studies give conservative estimates. The animal analogue is missing, which is exactly the space this study occupies.
- Mechanisms of maintenance of species diversity. Chesson, P. — Annual Review of Ecology and Systematics 31, 343-366, 2000.Defines stabilising mechanisms as those that increase intraspecific relative to interspecific density dependence, making the intra-versus-inter contrast the theoretically motivated target parameter rather than an arbitrary comparison.
- Signs of stabilisation and stable coexistence. Broekman, M.J.E., Muller-Landau, H.C., Visser, M.D., Jongejans, E., Wright, S.J. & de Kroon, H. — Ecology Letters 22, 1957-1975, 2019.Sets the interpretive limit: excess self-limitation measured on anything other than per-capita population growth evidences stabilisation of an interaction, and is neither necessary nor sufficient for stable coexistence. Dictates how strongly the conclusions may be phrased.
- Long-term experimental study of a Chihuahuan Desert rodent community: 13 years of competition. Heske, E.J., Brown, J.H. & Mistry, S. — Ecology 75, 438-445, 1994.The manipulative evidence that interspecific competition operates at Portal: excluding Dipodomys raises the abundance of five smaller granivores. Establishes that competition is present, but measures it as a population-abundance response rather than a per-capita coefficient.
- Body size and coexistence in desert rodents: chance or community structure?. Bowers, M.A. & Brown, J.H. — Ecology 63, 391-400, 1982.The foundational limiting-similarity result for this guild: granivores with mass ratios below about 1.5 co-occur less often than chance. Motivates the prediction that realised interspecific effects should weaken with body-size distance.
- Interspecific competition in small rodents: from populations to individuals. Eccard, J.A. & Ylonen, H. — Evolutionary Ecology 17, 423-440, 2003.Argues that population-level removal experiments miss the individual-level currencies (growth, condition, maturation) through which rodent competition acts, and that the two levels can disagree. Direct justification for using body condition as the response.
- New perspectives for estimating body condition from mass/length data: the scaled mass index as an alternative method. Peig, J. & Green, A.J. — Oikos 118, 1883-1891, 2009.The standard reference for size-standardised body condition; also the reason to prefer a single-stage analysis of covariance with log structural length when the mass-length correlation is too weak for a stable standardised major axis slope.
- Strong self-limitation promotes the persistence of rare species. Yenni, G., Adler, P.B. & Ernest, S.K.M. — Ecology 93, 456-461, 2012.Predicts that self-limitation should be strongest in the rarer members of a community, giving an additional within-community prediction testable on the same coefficients.
- Long-term monitoring and experimental manipulation of a Chihuahuan desert ecosystem near Portal, Arizona (1977-2013). Ernest, S.K.M., Yenni, G.M., Allington, G., Christensen, E.M., Geluso, K., Goheen, J.R., Schutzenhofer, M.R., Supp, S.R., Thibault, K.M., Brown, J.H. & Valone, T.J. — Ecology 97, 1082, 2016.The peer-reviewed data paper for the Portal research database, documenting the 24-plot design, the exclosure treatments and the trapping protocol that generate the capture records analysed here.
- Maintenance of community function through compensation breaks down over time in a desert rodent community. Diaz, R.M. & Ernest, S.K.M. — Ecology 103, e3709, 2022.Shows the compensatory dynamics at Portal are not static, which cautions against treating a 26-year pooled interaction coefficient as a constant and motivates reporting variability across plots.
Methods in use
- Phenomenological competition coefficients: regress a demographic or fitness response on conspecific and heterospecific neighbour density in the same model, so the coefficients are per-capita neighbour effects (the quantities catalogued by Adler et al. 2018).
- Holding total neighbour density constant when contrasting intraspecific and interspecific effects, so the contrast is a substitution effect rather than a response to total crowding; including both densities in one model achieves this by reparameterisation.
- Size-standardised body condition as an individual fitness component: the scaled mass index of Peig & Green (2009), or, where the mass-length correlation is too weak for a stable standardised major axis slope, log body mass with log structural length as a covariate in a single-stage analysis of covariance.
- Fixed effects for plot, year and season to absorb the experimental design and the strong seasonality of desert rodent mass, with identification coming from plot-by-session variation in neighbour density.
- Cluster-robust standard errors at the trapping-session level and cluster bootstrap resampling at the plot level, plots being the experimental unit in the Portal design.
- Metabolic rescaling of neighbour abundance by body mass to the three-quarter power, to express heterospecific density in conspecific resource-use equivalents when species differ several-fold in mass.
- Meta-analytic aggregation of species-specific coefficients into a community-level mean, with the number of species showing the predicted ordering reported alongside the mean.
- Treating capture counts as an index rather than a density, and restricting inference to comparisons within the same plot and trapping session so that unequal effort affects conspecific and heterospecific counts equally.
Open gaps
- The four to five-fold intra:inter ratio of Adler et al. (2018) is a plant result. No comparable per-capita estimate exists for a free-living vertebrate community, where interference and behavioural dominance supplement exploitative competition, so the magnitude and even the sign of the contrast in mammals is unknown.
- At Portal the competitive signal is documented as an abundance response to excluding an entire guild member; the per-capita interaction coefficients that coexistence theory actually specifies have never been estimated there on an individual fitness component.
- Bowers & Brown (1982) established limiting similarity as a co-occurrence pattern. Whether the realised strength of interspecific competition actually decays with body-size distance among species that do co-occur has not been tested for this guild.
- Yenni et al. (2012) predict stronger self-limitation in rarer species, but the prediction has not been examined across the members of a single long-term monitored vertebrate community using a common estimator.
- Because a fitness component rather than population growth is measured, and because trapping records are an effort-dependent index, it is unresolved how much of an apparent intraspecific effect on body mass could arise from recruitment pulses or density-dependent trappability, and which estimators are immune to those artefacts.
Grounded search sources (22) · mode: live:agent:claude-opus-5
- Adler, P.B., Smull, D., Beard, K.H., Choi, R.T., Furniss, T., Kulmatiski, A., Meiners, J.M., Tredennick, A.T. & Veblen, K.E. (2018) Competition and coexistence in plant communities: intraspecific competition is stronger than interspecific competition. Ecology Letters 21, 1319-1329.
- Chesson, P. (2000) Mechanisms of maintenance of species diversity. Annual Review of Ecology and Systematics 31, 343-366.
- Chesson, P. (2018) Updates on mechanisms of maintenance of species diversity. Journal of Ecology 106, 1773-1794.
- Broekman, M.J.E., Muller-Landau, H.C., Visser, M.D., Jongejans, E., Wright, S.J. & de Kroon, H. (2019) Signs of stabilisation and stable coexistence. Ecology Letters 22, 1957-1975.
- Yenni, G., Adler, P.B. & Ernest, S.K.M. (2012) Strong self-limitation promotes the persistence of rare species. Ecology 93, 456-461.
- Heske, E.J., Brown, J.H. & Mistry, S. (1994) Long-term experimental study of a Chihuahuan Desert rodent community: 13 years of competition. Ecology 75, 438-445.
- Brown, J.H. & Munger, J.C. (1985) Experimental manipulation of a desert rodent community: food addition and species removal. Ecology 66, 1545-1563.
- Bowers, M.A. & Brown, J.H. (1982) Body size and coexistence in desert rodents: chance or community structure? Ecology 63, 391-400.
- Brown, J.H. & Lieberman, G.A. (1973) Resource utilization and coexistence of seed-eating desert rodents in sand dune habitats. Ecology 54, 788-797.
- Brown, J.H., Reichman, O.J. & Davidson, D.W. (1979) Granivory in desert ecosystems. Annual Review of Ecology and Systematics 10, 201-227.
- Ernest, S.K.M. & Brown, J.H. (2001) Homeostasis and compensation: the role of species and resources in ecosystem stability. Ecology 82, 2118-2132.
- Ernest, S.K.M., Brown, J.H., Thibault, K.M., White, E.P. & Goheen, J.R. (2008) Zero sum, the niche, and metacommunities: long-term dynamics of community assembly. The American Naturalist 172, E257-E269.
- Christensen, E.M., Harris, D.J. & Ernest, S.K.M. (2018) Long-term community change through multiple rapid transitions in a desert rodent community. Ecology 99, 1523-1529.
- Diaz, R.M. & Ernest, S.K.M. (2022) Maintenance of community function through compensation breaks down over time in a desert rodent community. Ecology 103, e3709.
- Ernest, S.K.M., Valone, T.J. & Brown, J.H. (2009) Long-term monitoring and experimental manipulation of a Chihuahuan Desert ecosystem near Portal, Arizona, USA. Ecology 90, 1708.
- Ernest, S.K.M., Yenni, G.M., Allington, G., Christensen, E.M., Geluso, K., Goheen, J.R., Schutzenhofer, M.R., Supp, S.R., Thibault, K.M., Brown, J.H. & Valone, T.J. (2016) Long-term monitoring and experimental manipulation of a Chihuahuan desert ecosystem near Portal, Arizona (1977-2013). Ecology 97, 1082.
- Ernest, S.K.M. et al. (2018) The Portal Project: a long-term study of a Chihuahuan desert ecosystem. bioRxiv 332783.
- Ernest, M., Brown, J., Valone, T. & White, E.P. (2018) Portal Project Teaching Database. figshare.
- Peig, J. & Green, A.J. (2009) New perspectives for estimating body condition from mass/length data: the scaled mass index as an alternative method. Oikos 118, 1883-1891.
- Eccard, J.A. & Ylonen, H. (2003) Interspecific competition in small rodents: from populations to individuals. Evolutionary Ecology 17, 423-440.
- Manlick, P.J., Maldonado, K. & Newsome, S.D. (2021) Competition shapes individual foraging and survival in a desert rodent ensemble. Journal of Animal Ecology 90, 2806-2818.
- Violle, C., Nemergut, D.R., Pu, Z. & Jiang, L. (2011) Phylogenetic limiting similarity and competitive exclusion. Ecology Letters 14, 782-787.
2.Ideation
3 candidate ideas generated; selected: “Per-capita self-limitation exceeds interspecific limitation of body condition across a desert rodent community: a 26-year test of the stabilising condition”.
- Idea 1Selected
Per-capita self-limitation exceeds interspecific limitation of body condition across a desert rodent community: a 26-year test of the stabilising condition
Hypothesis. For the granivorous rodents of the Portal community, the per-capita effect of one additional conspecific neighbour on an individual's size-standardised body mass is more negative than the per-capita effect of one additional heterospecific neighbour, holding total neighbour number constant. Formally, for each focal species s, beta_intra,s < beta_inter,s, and the community mean substitution contrast Delta = mean_s(beta_intra,s - beta_inter,s) is negative with a bootstrap 95% interval excluding zero. Secondary (limiting similarity, after Bowers & Brown 1982): among heterospecific neighbours, those within a factor of two in mean body mass of the focal species depress condition more than those differing by more than a factor of two, beta_similar < beta_dissimilar. Refutation: Delta >= 0, or a 95% interval on Delta that contains zero; for the secondary hypothesis, beta_similar >= beta_dissimilar or an interval containing zero.
Dataset. Portal Project long-term rodent monitoring, Chihuahuan Desert portal_rodent_surveys
Test plan, novelty and risk
Test plan. Data: portal_rodent_surveys, all 35,549 individual capture records, 24 plots, July 1977 to December 2002. Community definition: the 12 rodent species with at least 400 recorded body masses (DM Dipodomys merriami, DO D. ordii, DS D. spectabilis, PB Chaetodipus baileyi, PP C. penicillatus, PF Perognathus flavus, NL Neotoma albigula, OL Onychomys leucogaster, OT O. torridus, PE Peromyscus eremicus, PM P. maniculatus, RM Reithrodontomys megalotis), which together account for about 93 per cent of all captures; unidentified codes and taxa without mass records (including the non-rodent codes in the file) are excluded. Neighbour density: for each plot p and trapping session t (a calendar year-month), count all captures of each community species; n_con is the conspecific count minus the focal individual, n_het is the summed count of the other 11 species; both are captures per plot per session, an index rather than a density, and both are measured on the same session so unequal effort inflates them equally. Response and sample: individual log body mass in grams, restricted to captures with both weight and hindfoot_length present and positive (about 30,300 individuals). Estimator: one ordinary least squares regression per focal species, log(weight) ~ n_con + n_het + log(hindfoot_length) + sex + plot + year + month + number of trapping days in that plot-session; log hindfoot enters as the structural-size covariate in a single-stage analysis of covariance rather than a two-stage scaled mass index, because the mass-length correlation within species (r about 0.14 to 0.45) makes the standardised major axis slope unstable. Plot, year and month fixed effects absorb the exclosure design, the long-term trend and the strong seasonality of desert rodent mass; identification comes from plot-by-session variation in neighbour composition. Coefficients are multiplied by 100 and reported as per cent change in size-adjusted body mass per additional neighbour, a unit comparable across species that differ twenty-fold in mass. Because n_con + n_het + 1 is the total captures in the plot-session, the model is a reparameterisation of one containing total captures, so the contrast beta_intra - beta_inter is the effect of substituting one heterospecific for one conspecific at constant total captures, immune to any artefact acting through total captures such as trap saturation. Standard errors: cluster-robust by plot-session for each species; the community mean contrast and its 95 per cent interval come from 1,000 cluster bootstrap resamples of the 24 plots, seeded. Severity checks, all pre-specified: (i) heterospecific abundance re-expressed in conspecific metabolic equivalents by weighting each neighbour by (M_j/M_s)^0.75 with M the species mean mass in grams, so the comparison is in resource-use rather than head-count units; (ii) the analysis repeated on structurally adult individuals only, hindfoot_length at or above the species median, to test whether the intraspecific effect is an artefact of recruitment pulses producing many juveniles at high abundance; (iii) the secondary hypothesis fitted by splitting n_het into size-similar and size-dissimilar neighbours at a mass ratio of two. Also reported: the number of species out of 12 showing the predicted ordering, and the correlation between beta_intra and species mean abundance, testing the Yenni et al. (2012) prediction that self-limitation is strongest in rarer species. Refuted if Delta >= 0 or its bootstrap interval spans zero.
Novelty. The four to five-fold excess of intraspecific over interspecific competition established by Adler et al. (2018) is an entirely botanical synthesis. The Portal exclosure literature (Brown & Munger 1985; Heske et al. 1994) shows that removing kangaroo rats raises the abundance of smaller granivores, but that is a population-level response to deleting a whole guild member and its indirect effects, not the per-capita interaction coefficient that Chesson's stabilising condition specifies. Nobody has estimated intraspecific and interspecific per-capita coefficients on a common individual fitness currency for every abundant member of this community, and the substitution contrast at constant total captures is a statistic the existing Portal analyses do not report.
Expected outcome. Intraspecific effects negative for most species and interspecific effects near zero, giving a community mean substitution contrast of roughly -1 to -3 per cent of body mass per neighbour swapped, with 10 to 12 of the 12 species showing the predicted ordering. The metabolic rescaling should preserve the ordering; the adult-only restriction should attenuate the intraspecific coefficient but not abolish it. The limiting-similarity prediction is the weaker of the two and may well fail, since realised interspecific effects appear close to zero regardless of size distance.
Main risk. Body condition is one fitness component, not per-capita population growth, so following Broekman et al. (2019) the result evidences stabilisation of the interaction rather than demonstrating stable coexistence. A negative intraspecific coefficient could also arise if abundance peaks coincide with recruitment pulses of small individuals; log hindfoot length as a covariate and the adult-only subsample address this but cannot eliminate it in the absence of an age variable. Capture counts are an effort-dependent index, and the teaching subset lacks the plot treatment labels, so plot fixed effects absorb rather than resolve the exclosure design.
- Idea 2
Species asynchrony, not richness, stabilises rodent biomass: partitioning the diversity-stability relationship across 24 desert plots
Hypothesis. Across the 24 Portal plots, the temporal stability of total rodent biomass (mean divided by standard deviation of plot biomass across trapping sessions) increases with species richness, but the association is mediated by community-wide synchrony rather than by richness itself: in a joint regression of log stability on log effective richness and the Loreau-de Mazancourt synchrony index phi, the coefficient on phi is negative and significant while the partial coefficient on richness is not distinguishable from zero. Refutation: phi carries no partial association with stability, or richness retains a significant positive partial coefficient once phi is included.
Dataset. Portal Project long-term rodent monitoring, Chihuahuan Desert portal_rodent_surveys
Test plan, novelty and risk
Test plan. Data: portal_rodent_surveys. Build a plot-by-session biomass series: for each plot and calendar year-month, sum individual weights, imputing missing weights by the species mean mass so that abundance-driven variation is not confounded with measurement completeness; restrict to sessions in which the plot was trapped. For each plot compute mean biomass, its temporal standard deviation, stability as the ratio, effective species richness as the exponential of Shannon entropy of summed captures, and synchrony phi = var(total biomass) / (sum over species of the standard deviation of species biomass)^2, which equals 1 under perfect synchrony and approaches 0 under perfect compensation. Estimate ordinary least squares regressions of log stability on log effective richness, on phi, and on both, over the 24 plots; report coefficients with 95 per cent intervals from 2,000 bootstrap resamples of trapping sessions, and the partial R-squared of each predictor. Also test whether mean phi across plots is below the value expected if species fluctuated independently. Refuted if phi has no partial association with stability.
Novelty. The diversity-stability relationship and the synchrony decomposition have been applied mostly to grassland plant experiments; the compensatory dynamics literature at Portal (Ernest & Brown 2001; Diaz & Ernest 2022) has examined community-wide energy use but has not partitioned plot-level stability into a richness component and a synchrony component with plots as replicates.
Expected outcome. Synchrony well below 1 in most plots, a positive raw richness-stability slope, and most of that association absorbed by synchrony once both predictors are entered.
Main risk. Only 24 plots, so the joint regression has little power and the two predictors are correlated. More seriously, the teaching subset omits the plot treatment labels, and the exclosure treatments are the main reason richness differs among plots, so the richness gradient is not independent of an unmeasured manipulation.
- Idea 3
Does energetic equivalence hold within a single community? Testing the Damuth slope on 26 years of desert rodent captures
Hypothesis. Within the Portal rodent community the local abundance-body size relationship follows the energetic equivalence rule, so that regressing log total captures on log mean body mass across species yields a slope of -0.75, the value at which population energy use is independent of body size given metabolic scaling with exponent 0.75. Refutation: a bootstrap 95 per cent interval on the slope that excludes -0.75, in particular a slope shallower than -0.5 as reported for many local assemblages.
Dataset. Portal Project long-term rodent monitoring, Chihuahuan Desert portal_rodent_surveys
Test plan, novelty and risk
Test plan. Data: portal_rodent_surveys. Restrict to species with at least 30 recorded body masses. For each species compute mean body mass in grams and total captures over 1977 to 2002. Fit ordinary least squares and standardised major axis regressions of log10 total captures on log10 mean mass; obtain 95 per cent intervals by resampling the 24 plots 2,000 times with replacement, recomputing species totals each time, and additionally by resampling years. Test the point nulls slope = -0.75 and slope = 0. Also compute total population energy use per species as N times M^0.75 and test whether it is independent of mass. Refuted if the interval on the slope excludes -0.75.
Novelty. Energetic equivalence is usually evaluated across assemblages or across broad size ranges; testing it within one intensively monitored local community, with uncertainty propagated from spatial and temporal resampling, is a sharper and more falsifiable version of the claim.
Expected outcome. A slope substantially shallower than -0.75, so the hypothesis is likely to be refuted, indicating that local abundance is set by community composition rather than by an energetic constraint.
Main risk. Only about a dozen species have enough mass records, so the regression rests on very few points and is sensitive to the two large-bodied species. Captures are an effort- and trappability-dependent index of abundance, and trappability itself varies with body size, which could bias the slope in an unknown direction.
Ranking rationale
Idea 1 is ranked first because it targets the single quantity that modern coexistence theory identifies as necessary for stabilisation, it has a sharp directional prediction with a pre-specified refutation criterion, and the Portal data supply exactly what the test needs: thousands of individually measured animals whose neighbours are known for the same plot and the same trapping session, over 26 years and 24 replicate plots. Its key statistic, the substitution contrast at constant total captures, is structurally immune to the effort and trap-saturation artefacts that plague capture indices, and the study is designed so that a null or reversed result would be equally publishable. Idea 2 asks a question of comparable interest but has only 24 replicates and, worse, a richness gradient generated largely by an experimental treatment whose labels this subset does not include, so the causal reading is compromised. Idea 3 is the cleanest to execute but rests on about a dozen species-level points, expects refutation of a rule that is already known to fit local assemblages poorly, and cannot separate trappability from abundance.
3.Experimentation
Experiment succeeded in 1 round (12.709s).
Data provenance
Portal Project long-term rodent monitoring, Chihuahuan Desert
- Source
- R package 'ratdat' (Portal Project Teaching Database), mirrored by the Rdatasets archive; original data from the Portal Project, near Portal, Arizona
- Citation
- Ernest, M., Brown, J., Valone, T. and White, E.P. (2018) Portal Project Teaching Database. figshare. DOI: 10.6084/m9.figshare.1314459 -- the citation the project's own README instructs users to give, and the source of every dataset in the R package 'ratdat'. Peer-reviewed data papers for the full research database: Ernest, S.K.M., Valone, T.J. and Brown, J.H. (2009) Ecology 90(6), 1708, DOI: 10.1890/08-1222.1; and Ernest, S.K.M. et al. (2016) Ecology 97(4), 1082, DOI: 10.1890/15-2115.1.
- Licence
- Creative Commons Zero (CC0 1.0) public domain dedication -- the figshare record, the PortalData LICENSE file and the 'ratdat' package DESCRIPTION all state CC0.
- File
- https://vincentarelbundock.github.io/Rdatasets/csv/ratdat/surveys.csv
- Observations
- 35,549
- Variables (10)
- record_id, month, day, year, plot_id, species_id, sex, hindfoot_length, weight, date
- Units
- Each row is one captured individual, not a site-visit summary. hindfoot_length is in millimetres and weight in grams -- the two standard body-size measures. species_id is a two-letter code (for example 'DM' for Dipodomys merriami, the dominant kangaroo rat) across 48 codes, and sex is 'M' or 'F'. plot_id identifies one of 24 fenced plots under different rodent-exclusion treatments. month, day and year give the trapping session, and the loader adds a parsed 'date' column.
- Retrieved
- 8 Sept 2026, 15:49
- Checksum
- sha256 0e7b92161a10b1fc…
Real, publicly available data — downloaded and checksum-verified before the analysis ran, never simulated.
Result (RESULT_JSON)
{
"dataset": "portal_rodent_surveys",
"n_records_file": 35549,
"n_community_captures": 33052,
"community_share_of_captures": 0.929758924301668,
"n_individuals_analysed": 30320,
"n_species": 12,
"n_individuals_dropped_missing_measurements": 2732,
"species_codes": [
"DM",
"DO",
"DS",
"NL",
"OL",
"OT",
"PB",
"PE",
"PF",
"PM",
"PP",
"RM"
],
"n_plots": 24,
"n_plot_sessions": 5915,
"n_trapping_sessions": 284,
"year_first": 1977,
"year_last": 2002,
"missing_in_file": {
"sex": 2511,
"hindfoot_length": 4111,
"weight": 3266
},
"median_captures_per_plot_session": 5,
"mean_captures_per_plot_session": 5.5878275570583265,
"body_mass_range_g": [
7.92312661498708,
159.24565972222223
],
"n_bootstrap": 1000,
"seed": 20260908,
"units": "coefficients are per cent change in size-adjusted body mass per additional neighbour caught in the same plot and session",
"mean_intra": -2.0090633259067032,
"mean_intra_ci": [
-2.456383482213397,
-1.547195926181366
],
"mean_intra_sd": 0.23305564273565924,
"mean_inter": 0.060748812116106575,
"mean_inter_ci": [
-0.047569020033543435,
0.15176678235634633
],
"mean_inter_sd": 0.05065261390783843,
"delta": -2.06981213802281,
"delta_ci": [
-2.4892013565497666,
-1.610686849164618
],
"delta_sd": 0.2289677516578388,
"mean_intra_metabolic": -1.9959365487660856,
"mean_intra_metabolic_ci": [
-2.448766981842803,
-1.5496894039499582
],
"delta_metabolic": -2.071649616948471,
"delta_metabolic_ci": [
-2.512503574475303,
-1.5806903824978114
],
"mean_inter_metabolic": 0.07571306818238485,
"mean_inter_metabolic_ci": [
-0.11669544331301064,
0.21540308404364697
],
"delta_adult": -1.119345438730291,
"delta_adult_ci": [
-1.67628528026058,
-0.6439000683762786
],
"mean_intra_adult": -1.097925744055554,
"mean_intra_adult_ci": [
-1.6798199999818404,
-0.6329150759655436
],
"mean_inter_adult": 0.02141969467473714,
"mean_inter_adult_ci": [
-0.10951845405397824,
0.1330459970472669
],
"mean_similar": -0.18105479289096615,
"mean_similar_ci": [
-0.4824377793299962,
0.1256045211796915
],
"mean_dissimilar": 0.12740118950542773,
"mean_dissimilar_ci": [
0.02226260193914953,
0.2162211310821212
],
"delta_similarity": -0.308455982396394,
"delta_similarity_ci": [
-0.6135744039541602,
0.026150493589903748
],
"n_species_predicted_ordering": 11,
"sign_test_p": 0.003173828125,
"n_species_intra_negative": 11,
"n_species_inter_negative": 4,
"n_species_both_negative": 4,
"n_species_intra_negative_inter_positive": 7,
"ratio_intra_inter_median": 8.530601870129024,
"ratio_intra_inter_mean": 11.223616626767663,
"ratio_intra_inter_min": 2.0006344868715016,
"ratio_intra_inter_max": 25.832628279941105,
"mean_n_con_analysis_sample": 1.8781487953840077,
"mean_n_het_analysis_sample": 5.192102875186431,
"n_species_intra_significant_negative": 10,
"n_species_inter_significant_negative": 0,
"paired_t_statistic": -2.904917882832565,
"paired_t_p": 0.01431860098192944,
"wilcoxon_statistic": 3,
"wilcoxon_p": 0.00244140625,
"yenni_pearson_r": 0.6125764094957876,
"yenni_pearson_p": 0.034211173630676495,
"yenni_spearman_rho": 0.7202797202797203,
"yenni_spearman_p": 0.008239768712338436,
"median_r_squared": 0.22675764650119215,
"species_table": [
{
"species": "DM",
"n_individuals": 9739,
"n_adult": 6692,
"n_plot_sessions": 3085,
"total_captures": 10596,
"mean_mass_g": 43.157863964139544,
"beta_intra": -0.16556636139004416,
"se_intra": 0.07383503759838869,
"p_intra": 0.024936692290447263,
"beta_inter": 0.122038190877867,
"se_inter": 0.07404446702521768,
"p_inter": 0.09931689994241602,
"contrast": -0.28760455226791115,
"se_contrast": 0.1066208791627542,
"p_contrast": 0.006987265536080223,
"r_squared": 0.21005784198076816,
"mean_n_con": 3.886025259266866,
"mean_n_het": 3.622651196221378,
"beta_intra_metabolic": -0.16984272105792916,
"beta_inter_metabolic": 0.02212396185124945,
"beta_intra_adult": -0.012192516798284134,
"beta_inter_adult": 0.11124799530219032,
"beta_similar": 0.16889746151048396,
"beta_dissimilar": 0.0645920023895223
},
{
"species": "DO",
"n_individuals": 2793,
"n_adult": 1562,
"n_plot_sessions": 1412,
"total_captures": 3027,
"mean_mass_g": 48.87052341597797,
"beta_intra": -0.7640475088759504,
"se_intra": 0.24291092466205577,
"p_intra": 0.0016587042212237917,
"beta_inter": 0.028301376183173695,
"se_inter": 0.12367288367851208,
"p_inter": 0.818992814263801,
"contrast": -0.792348885059124,
"se_contrast": 0.2750705920977305,
"p_contrast": 0.003970081184497199,
"r_squared": 0.12272598074202734,
"mean_n_con": 1.9889008234872896,
"mean_n_het": 6.307554600787683,
"beta_intra_metabolic": -0.7572960893900551,
"beta_inter_metabolic": 0.05395960918078077,
"beta_intra_adult": -0.3527581100093183,
"beta_inter_adult": -0.16630615266597285,
"beta_similar": -0.031294515290612376,
"beta_dissimilar": 0.10031484144020844
},
{
"species": "DS",
"n_individuals": 2026,
"n_adult": 1222,
"n_plot_sessions": 1139,
"total_captures": 2504,
"mean_mass_g": 120.13054607508532,
"beta_intra": -2.04990871258828,
"se_intra": 0.314352833374231,
"p_intra": 6.981961686424324e-11,
"beta_inter": 0.35688810811892824,
"se_inter": 0.1402289523415677,
"p_inter": 0.010926563323040546,
"contrast": -2.406796820707208,
"se_contrast": 0.3597023428505064,
"p_contrast": 2.215309034019745e-11,
"r_squared": 0.34828627945985136,
"mean_n_con": 1.685587364264561,
"mean_n_het": 4.584402764067128,
"beta_intra_metabolic": -2.0413163310132756,
"beta_inter_metabolic": 0.7616284988682686,
"beta_intra_adult": -1.1160976592895748,
"beta_inter_adult": 0.13937135472432208,
"beta_similar": -0.1997487297499184,
"beta_dissimilar": 0.3736716238357748
},
{
"species": "NL",
"n_individuals": 1046,
"n_adult": 765,
"n_plot_sessions": 856,
"total_captures": 1252,
"mean_mass_g": 159.24565972222223,
"beta_intra": -6.97254826910746,
"se_intra": 1.5720287905709316,
"p_intra": 0.000009190914651761296,
"beta_inter": 0.3870179203598484,
"se_inter": 0.2809674334160073,
"p_inter": 0.16837390098998006,
"contrast": -7.359566189467308,
"se_contrast": 1.6196700276704623,
"p_contrast": 0.000005523135196704785,
"r_squared": 0.3823785123974085,
"mean_n_con": 0.4694072657743786,
"mean_n_het": 6.169216061185469,
"beta_intra_metabolic": -6.830301052503771,
"beta_inter_metabolic": 0.021579149338894765,
"beta_intra_adult": -2.6026379203672843,
"beta_inter_adult": 0.4988865703731547,
"beta_similar": -2.738476289790154,
"beta_dissimilar": 0.5341463451589178
},
{
"species": "OL",
"n_individuals": 907,
"n_adult": 478,
"n_plot_sessions": 661,
"total_captures": 1006,
"mean_mass_g": 31.575257731958764,
"beta_intra": -2.790422118775202,
"se_intra": 0.9207143792169477,
"p_intra": 0.002439760860287656,
"beta_inter": -0.10801928818609408,
"se_inter": 0.24474984773372,
"p_inter": 0.6589627601459171,
"contrast": -2.6824028305891083,
"se_contrast": 0.9854201420447242,
"p_contrast": 0.006487037016651084,
"r_squared": 0.30030062352976306,
"mean_n_con": 0.782800441014333,
"mean_n_het": 6.029768467475193,
"beta_intra_metabolic": -2.810910371729942,
"beta_inter_metabolic": 0.08816590301402062,
"beta_intra_adult": -1.0322308601631198,
"beta_inter_adult": -0.4316814726475625,
"beta_similar": -0.19626207021895856,
"beta_dissimilar": 0.27035121328161027
},
{
"species": "OT",
"n_individuals": 2085,
"n_adult": 1736,
"n_plot_sessions": 1403,
"total_captures": 2249,
"mean_mass_g": 24.23055555555555,
"beta_intra": -2.2600818115012253,
"se_intra": 0.6855040910796241,
"p_intra": 0.00097736280935226,
"beta_inter": 0.14171893974069572,
"se_inter": 0.12955641944179178,
"p_inter": 0.27400841169890366,
"contrast": -2.401800751241921,
"se_contrast": 0.7029273838668906,
"p_contrast": 0.0006334907509961508,
"r_squared": 0.14255261256877882,
"mean_n_con": 0.9127098321342926,
"mean_n_het": 6.629736211031175,
"beta_intra_metabolic": -2.2694258273892123,
"beta_inter_metabolic": 0.07185043151808172,
"beta_intra_adult": -1.5043245417064317,
"beta_inter_adult": 0.19057919393577924,
"beta_similar": 0.09087686190770576,
"beta_dissimilar": 0.28422311473585427
},
{
"species": "PB",
"n_individuals": 2808,
"n_adult": 2157,
"n_plot_sessions": 784,
"total_captures": 2891,
"mean_mass_g": 31.735943060498226,
"beta_intra": -0.7517109617337533,
"se_intra": 0.17389422691060336,
"p_intra": 0.000015405737535230208,
"beta_inter": 0.049644088204288825,
"se_inter": 0.1414712085496235,
"p_inter": 0.7256536077364636,
"contrast": -0.801355049938042,
"se_contrast": 0.21089692827195916,
"p_contrast": 0.00014484366391142274,
"r_squared": 0.1921417132730323,
"mean_n_con": 5.038817663817664,
"mean_n_het": 4.524216524216524,
"beta_intra_metabolic": -0.7507736782483235,
"beta_inter_metabolic": 0.06472394606743255,
"beta_intra_adult": -0.6222597368863396,
"beta_inter_adult": 0.22178842312260244,
"beta_similar": 0.06435039271134972,
"beta_dissimilar": -0.06481623842296766
},
{
"species": "PE",
"n_individuals": 1200,
"n_adult": 940,
"n_plot_sessions": 818,
"total_captures": 1299,
"mean_mass_g": 21.586507936507935,
"beta_intra": -1.4319715820260024,
"se_intra": 0.6108297650358794,
"p_intra": 0.019062549785463696,
"beta_inter": -0.28165401634475845,
"se_inter": 0.19141068610416156,
"p_inter": 0.1411655598683842,
"contrast": -1.150317565681244,
"se_contrast": 0.6355358328661983,
"p_contrast": 0.07029634638888448,
"r_squared": 0.2328705876988004,
"mean_n_con": 0.9525,
"mean_n_het": 4.806666666666667,
"beta_intra_metabolic": -1.3924841120257765,
"beta_inter_metabolic": -0.14332955544598194,
"beta_intra_adult": -0.6119279799329386,
"beta_inter_adult": -0.1281260931136903,
"beta_similar": -0.4321423424038413,
"beta_dissimilar": 0.009420724007134368
},
{
"species": "PF",
"n_individuals": 1471,
"n_adult": 818,
"n_plot_sessions": 875,
"total_captures": 1597,
"mean_mass_g": 7.92312661498708,
"beta_intra": 0.3786082121160198,
"se_intra": 0.30825101043106784,
"p_intra": 0.2193544630517635,
"beta_inter": 0.07145209845357772,
"se_inter": 0.14424497222148633,
"p_inter": 0.6203513627477919,
"contrast": 0.30715611366244205,
"se_contrast": 0.32297562315409406,
"p_contrast": 0.3415944801850469,
"r_squared": 0.3095973866122287,
"mean_n_con": 1.5859959211420802,
"mean_n_het": 5.296397008837525,
"beta_intra_metabolic": 0.3877606260420928,
"beta_inter_metabolic": -0.00553144178680404,
"beta_intra_adult": 0.3219251352465131,
"beta_inter_adult": 0.008993584081160196,
"beta_similar": 0.8661185380491435,
"beta_dissimilar": 0.03513498390642512
},
{
"species": "PM",
"n_individuals": 838,
"n_adult": 709,
"n_plot_sessions": 559,
"total_captures": 899,
"mean_mass_g": 21.36415525114155,
"beta_intra": -6.276709822172519,
"se_intra": 0.9433274894101992,
"p_intra": 2.856261487837114e-11,
"beta_inter": 0.23540077027331965,
"se_inter": 0.2512311908615281,
"p_inter": 0.3487644046369862,
"contrast": -6.512110592445838,
"se_contrast": 0.9159212460285578,
"p_contrast": 1.161251118597908e-12,
"r_squared": 0.2422697166989749,
"mean_n_con": 1.0656324582338903,
"mean_n_het": 5.301909307875895,
"beta_intra_metabolic": -6.293627498279744,
"beta_inter_metabolic": 0.08048502540973917,
"beta_intra_adult": -4.976107870107915,
"beta_inter_adult": 0.10108429690152532,
"beta_similar": 0.18589665778411535,
"beta_dissimilar": 0.2827070306327527
},
{
"species": "PP",
"n_individuals": 2978,
"n_adult": 1879,
"n_plot_sessions": 1340,
"total_captures": 3123,
"mean_mass_g": 17.173941798941797,
"beta_intra": -0.4521984986082668,
"se_intra": 0.22163839065219476,
"p_intra": 0.04132508525664444,
"beta_inter": -0.2260275435496434,
"se_inter": 0.13484423300352263,
"p_inter": 0.0936966424892505,
"contrast": -0.22617095505862336,
"se_contrast": 0.2418084792420593,
"p_contrast": 0.34961776889402985,
"r_squared": 0.20151077734932857,
"mean_n_con": 2.7659503022162526,
"mean_n_het": 5.8297515110812625,
"beta_intra_metabolic": -0.45541819361436175,
"beta_inter_metabolic": -0.10557630182940483,
"beta_intra_adult": -0.16363827219408236,
"beta_inter_adult": -0.22136339487149967,
"beta_similar": -0.3373996796279745,
"beta_dissimilar": -0.13047043013195928
},
{
"species": "RM",
"n_individuals": 2429,
"n_adult": 1283,
"n_plot_sessions": 1431,
"total_captures": 2609,
"mean_mass_g": 10.58500986193294,
"beta_intra": -0.5722024762177536,
"se_intra": 0.31353010022292,
"p_intra": 0.06799619553600647,
"beta_inter": -0.04777489873792444,
"se_inter": 0.1501556342944544,
"p_inter": 0.7503565910434027,
"contrast": -0.5244275774798292,
"se_contrast": 0.33816972900325326,
"p_contrast": 0.12095390106040282,
"r_squared": 0.22064470530358393,
"mean_n_con": 1.403458213256484,
"mean_n_het": 3.202964182791272,
"beta_intra_metabolic": -0.5676033359827276,
"beta_inter_metabolic": -0.0015224079976585564,
"beta_intra_adult": -0.5028585964578712,
"beta_inter_adult": -0.06743796904516326,
"beta_similar": 0.3865262004270665,
"beta_dissimilar": -0.23046093676814053
}
],
"hypothesis_supported": true,
"secondary_hypothesis_supported": false
}Experiment script · experiment_v1.py
"""Per-capita self-limitation versus interspecific limitation of body condition in the
Portal rodent community (1977-2002, 24 plots). For every abundant species we estimate the
effect on individual size-adjusted body mass of one extra conspecific and one extra
heterospecific caught in the same plot and trapping session; since conspecific +
heterospecific + 1 = total captures, their contrast is the effect of substituting one
heterospecific for one conspecific at constant total captures."""
import json
import numpy as np
import pandas as pd
import statsmodels.api as sm
from scipy import stats
from dataset import load
SEED = 20260908
N_BOOT = 1000
MIN_MASS_RECORDS = 400 # captures with a recorded weight, to enter the community
METABOLIC_EXPONENT = 0.75 # Kleiber scaling of resource use with body mass
SIZE_RATIO_CUT = 2.0 # body-mass ratio separating "similar" from "dissimilar"
rng = np.random.default_rng(SEED)
# ---------------------------------------------------------------- data inspection
df = load()
print("loaded", df.shape[0], "capture records;", df.shape[1], "columns:", list(df.columns))
missing_all = {c: int(df[c].isna().sum()) for c in ("sex", "hindfoot_length", "weight")}
print("missing in full file:", missing_all,
"| years", int(df.year.min()), "-", int(df.year.max()),
"| plots", int(df.plot_id.nunique()), "| species codes", int(df.species_id.nunique()))
df = df.copy()
df["session"] = df["year"].astype(int) * 100 + df["month"].astype(int)
weighed = df.dropna(subset=["weight"]).groupby("species_id").size()
COMMUNITY = sorted(weighed[weighed >= MIN_MASS_RECORDS].index.tolist())
com = df[df.species_id.isin(COMMUNITY)].copy()
mean_mass = com.groupby("species_id")["weight"].mean() # grams
community_share = len(com) / len(df)
print("community:", len(COMMUNITY), "species,", len(com), "captures",
f"({100 * community_share:.1f}% of all records)")
# --------------------------------------------------- neighbour counts per plot-session
counts = com.groupby(["plot_id", "session", "species_id"]).size().unstack(fill_value=0)
counts = counts.reindex(columns=COMMUNITY, fill_value=0).astype(float)
metab = counts.mul(mean_mass[COMMUNITY].values ** METABOLIC_EXPONENT, axis=1)
tot_n, tot_met = counts.sum(axis=1), metab.sum(axis=1)
ndays = com.groupby(["plot_id", "session"])["date"].nunique().astype(float)
print("plot-sessions with captures:", len(counts),
"| median captures per plot-session:", float(tot_n.median()))
# ------------------------------------------------------------------ analysis sample
ana = com.dropna(subset=["weight", "hindfoot_length"])
ana = ana[(ana.weight > 0) & (ana.hindfoot_length > 0)].copy()
ana["sex"] = ana["sex"].astype(object).where(ana["sex"].notna(), "U").astype(str)
dropped = len(com) - len(ana)
print("analysis sample:", len(ana), "individuals with weight and hindfoot;",
dropped, "community captures dropped for missing body measurements")
adult_cut = ana.groupby("species_id")["hindfoot_length"].median()
log_mass = np.log(mean_mass)
def build(sub):
"""Return control block Z, density block D and response y for one species sample."""
sex_d = pd.get_dummies(sub["sex"], prefix="s", drop_first=True, dtype=float)
plot_d = pd.get_dummies(sub["plot_id"].astype(str), prefix="p", drop_first=True, dtype=float)
year_d = pd.get_dummies(sub["year"].astype(str), prefix="y", drop_first=True, dtype=float)
mon_d = pd.get_dummies(sub["month"].astype(str), prefix="m", drop_first=True, dtype=float)
Z = np.column_stack([np.ones(len(sub)), np.log(sub["hindfoot_length"].to_numpy(float)),
sub["ndays"].to_numpy(float), sex_d.to_numpy(), plot_d.to_numpy(),
year_d.to_numpy(), mon_d.to_numpy()])
D = sub[["n_con", "n_het", "n_het_eq", "n_sim", "n_dis"]].to_numpy(float)
return Z, D, np.log(sub["weight"].to_numpy(float))
def cluster_fit(Z, D, y, cols, clusters):
"""OLS with cluster-robust (plot-session) standard errors; returns the density part."""
X = np.column_stack([Z, D[:, cols]])
res = sm.OLS(y, X).fit(cov_type="cluster", cov_kwds={"groups": clusters})
k = Z.shape[1]
con = np.zeros(X.shape[1]); con[k], con[k + 1] = 1.0, -1.0
t = res.t_test(con)
extra = (100 * float(np.ravel(t.effect)[0]), 100 * float(np.ravel(t.sd)[0]), float(np.ravel(t.pvalue)[0]))
return (100 * res.params[k:], 100 * res.bse[k:], res.pvalues[k:], float(res.rsquared), extra)
def fwl(Z, M):
"""Residualise the columns of M on Z (safe under rank deficiency)."""
coef = np.linalg.lstsq(Z.T @ Z, Z.T @ M, rcond=None)[0]
return M - Z @ coef
def small_ols(yr, Dr):
return np.linalg.lstsq(Dr.T @ Dr, Dr.T @ yr, rcond=None)[0]
# ----------------------------------------------------------- per-species estimation
species_rows, store = [], {}
for sp in COMMUNITY:
cs = counts[sp]
tab = pd.DataFrame({
"n_con": cs - 1.0,
"n_het": tot_n - cs,
"n_het_eq": (tot_met - metab[sp]) / (mean_mass[sp] ** METABOLIC_EXPONENT),
"n_sim": counts[[j for j in COMMUNITY if j != sp
and abs(log_mass[j] - log_mass[sp]) < np.log(SIZE_RATIO_CUT)]].sum(axis=1),
"n_dis": counts[[j for j in COMMUNITY if j != sp
and abs(log_mass[j] - log_mass[sp]) >= np.log(SIZE_RATIO_CUT)]].sum(axis=1),
"ndays": ndays})
sub = ana[ana.species_id == sp].join(tab, on=["plot_id", "session"])
clusters = (sub["plot_id"].astype(str) + "_" + sub["session"].astype(str)).to_numpy()
Z, D, y = build(sub)
b1, se1, p1, r2, con1 = cluster_fit(Z, D, y, [0, 1], clusters) # conspecific / heterospecific
b2, se2, p2, _, _ = cluster_fit(Z, D, y, [0, 2], clusters) # metabolic equivalents
b4, se4, p4, _, _ = cluster_fit(Z, D, y, [0, 3, 4], clusters) # similar / dissimilar split
sub_ad = sub[sub["hindfoot_length"] >= adult_cut[sp]]
Za, Da, ya = build(sub_ad)
ca = (sub_ad["plot_id"].astype(str) + "_" + sub_ad["session"].astype(str)).to_numpy()
b3, se3, p3, _, _ = cluster_fit(Za, Da, ya, [0, 1], ca)
species_rows.append(dict(
species=sp, n_individuals=int(len(sub)), n_adult=int(len(sub_ad)),
n_plot_sessions=int(sub.groupby(["plot_id", "session"]).ngroups),
total_captures=int(counts[sp].sum()), mean_mass_g=float(mean_mass[sp]),
beta_intra=float(b1[0]), se_intra=float(se1[0]), p_intra=float(p1[0]),
beta_inter=float(b1[1]), se_inter=float(se1[1]), p_inter=float(p1[1]),
contrast=float(con1[0]), se_contrast=float(con1[1]), p_contrast=float(con1[2]),
r_squared=float(r2), mean_n_con=float(sub.n_con.mean()), mean_n_het=float(sub.n_het.mean()),
beta_intra_metabolic=float(b2[0]), beta_inter_metabolic=float(b2[1]),
beta_intra_adult=float(b3[0]),
beta_inter_adult=float(b3[1]), beta_similar=float(b4[1]), beta_dissimilar=float(b4[2])))
store[sp] = dict(Z=Z, D=D, y=y, plots=sub["plot_id"].to_numpy(),
Za=Za, Da=Da, ya=ya, plots_a=sub_ad["plot_id"].to_numpy())
print(f" {sp}: n={len(sub):5d} intra={b1[0]:+7.3f}% inter={b1[1]:+7.3f}% "
f"contrast={b1[0] - b1[1]:+7.3f}% R2={r2:.3f}")
tab_sp = pd.DataFrame(species_rows)
obs = {
"mean_intra": float(tab_sp.beta_intra.mean()),
"mean_inter": float(tab_sp.beta_inter.mean()),
"delta": float(tab_sp.contrast.mean()),
"mean_intra_metabolic": float(tab_sp.beta_intra_metabolic.mean()),
"mean_inter_metabolic": float(tab_sp.beta_inter_metabolic.mean()),
"delta_metabolic": float((tab_sp.beta_intra_metabolic - tab_sp.beta_inter_metabolic).mean()),
"mean_intra_adult": float(tab_sp.beta_intra_adult.mean()),
"mean_inter_adult": float(tab_sp.beta_inter_adult.mean()),
"delta_adult": float((tab_sp.beta_intra_adult - tab_sp.beta_inter_adult).mean()),
"mean_similar": float(tab_sp.beta_similar.mean()),
"mean_dissimilar": float(tab_sp.beta_dissimilar.mean()),
"delta_similarity": float((tab_sp.beta_similar - tab_sp.beta_dissimilar).mean())}
# ------------------------------------------------- cluster bootstrap over the 24 plots
plots = np.array(sorted(ana.plot_id.unique()))
for sp in COMMUNITY:
s = store[sp]
s["idx"] = {p: np.flatnonzero(s["plots"] == p) for p in plots}
s["idx_a"] = {p: np.flatnonzero(s["plots_a"] == p) for p in plots}
keys = list(obs.keys())
boot = {k: np.empty(N_BOOT) for k in keys}
for b in range(N_BOOT):
draw = rng.choice(plots, size=plots.size, replace=True)
acc = {k: [] for k in keys}
for sp in COMMUNITY:
s = store[sp]
i = np.concatenate([s["idx"][p] for p in draw])
R = fwl(s["Z"][i], np.column_stack([s["y"][i], s["D"][i]]))
yr, Dr = R[:, 0], R[:, 1:]
c1 = small_ols(yr, Dr[:, [0, 1]]) * 100
c2 = small_ols(yr, Dr[:, [0, 2]]) * 100
c4 = small_ols(yr, Dr[:, [0, 3, 4]]) * 100
ia = np.concatenate([s["idx_a"][p] for p in draw])
Ra = fwl(s["Za"][ia], np.column_stack([s["ya"][ia], s["Da"][ia]]))
c3 = small_ols(Ra[:, 0], Ra[:, [1, 2]]) * 100
acc["mean_intra"].append(c1[0]); acc["mean_inter"].append(c1[1])
acc["delta"].append(c1[0] - c1[1])
acc["mean_intra_metabolic"].append(c2[0]); acc["mean_inter_metabolic"].append(c2[1])
acc["delta_metabolic"].append(c2[0] - c2[1])
acc["mean_intra_adult"].append(c3[0]); acc["mean_inter_adult"].append(c3[1])
acc["delta_adult"].append(c3[0] - c3[1])
acc["mean_similar"].append(c4[1]); acc["mean_dissimilar"].append(c4[2])
acc["delta_similarity"].append(c4[1] - c4[2])
for k in keys:
boot[k][b] = float(np.mean(acc[k]))
ci = {k: [float(np.percentile(boot[k], 2.5)), float(np.percentile(boot[k], 97.5))] for k in keys}
sd = {k: float(np.std(boot[k], ddof=1)) for k in keys}
print("bootstrap done:", N_BOOT, "cluster resamples of", plots.size, "plots")
# ------------------------------------------------------------ within-community checks
both_neg = tab_sp[(tab_sp.beta_intra < 0) & (tab_sp.beta_inter < 0)]
ratios = (both_neg.beta_intra / both_neg.beta_inter).to_numpy(float)
n_ordered = int((tab_sp.beta_intra < tab_sp.beta_inter).sum())
sign_p = float(stats.binomtest(n_ordered, len(tab_sp), 0.5, alternative="greater").pvalue)
r_yenni, p_yenni = stats.pearsonr(np.log10(tab_sp.total_captures.to_numpy(float)),
tab_sp.beta_intra.to_numpy(float))
rho_yenni, prho_yenni = stats.spearmanr(tab_sp.total_captures.to_numpy(float),
tab_sp.beta_intra.to_numpy(float))
paired_t = stats.ttest_rel(tab_sp.beta_intra, tab_sp.beta_inter)
wilcox = stats.wilcoxon(tab_sp.beta_intra, tab_sp.beta_inter)
supported = bool(obs["delta"] < 0 and ci["delta"][1] < 0)
secondary = bool(obs["delta_similarity"] < 0 and ci["delta_similarity"][1] < 0)
result = {
"dataset": "portal_rodent_surveys",
"n_records_file": int(len(df)), "n_community_captures": int(len(com)),
"community_share_of_captures": float(community_share),
"n_individuals_analysed": int(len(ana)), "n_species": int(len(COMMUNITY)),
"n_individuals_dropped_missing_measurements": int(dropped), "species_codes": COMMUNITY,
"n_plots": int(plots.size), "n_plot_sessions": int(len(counts)),
"n_trapping_sessions": int(com.session.nunique()),
"year_first": int(df.year.min()), "year_last": int(df.year.max()),
"missing_in_file": missing_all,
"median_captures_per_plot_session": float(tot_n.median()),
"mean_captures_per_plot_session": float(tot_n.mean()),
"body_mass_range_g": [float(mean_mass.min()), float(mean_mass.max())],
"n_bootstrap": int(N_BOOT), "seed": int(SEED),
"units": "coefficients are per cent change in size-adjusted body mass per additional neighbour caught in the same plot and session",
"mean_intra": obs["mean_intra"], "mean_intra_ci": ci["mean_intra"], "mean_intra_sd": sd["mean_intra"],
"mean_inter": obs["mean_inter"], "mean_inter_ci": ci["mean_inter"], "mean_inter_sd": sd["mean_inter"],
"delta": obs["delta"], "delta_ci": ci["delta"], "delta_sd": sd["delta"],
"mean_intra_metabolic": obs["mean_intra_metabolic"], "mean_intra_metabolic_ci": ci["mean_intra_metabolic"],
"delta_metabolic": obs["delta_metabolic"], "delta_metabolic_ci": ci["delta_metabolic"],
"mean_inter_metabolic": obs["mean_inter_metabolic"], "mean_inter_metabolic_ci": ci["mean_inter_metabolic"],
"delta_adult": obs["delta_adult"], "delta_adult_ci": ci["delta_adult"],
"mean_intra_adult": obs["mean_intra_adult"], "mean_intra_adult_ci": ci["mean_intra_adult"],
"mean_inter_adult": obs["mean_inter_adult"], "mean_inter_adult_ci": ci["mean_inter_adult"],
"mean_similar": obs["mean_similar"], "mean_similar_ci": ci["mean_similar"],
"mean_dissimilar": obs["mean_dissimilar"], "mean_dissimilar_ci": ci["mean_dissimilar"],
"delta_similarity": obs["delta_similarity"], "delta_similarity_ci": ci["delta_similarity"],
"n_species_predicted_ordering": n_ordered, "sign_test_p": sign_p,
"n_species_intra_negative": int((tab_sp.beta_intra < 0).sum()),
"n_species_inter_negative": int((tab_sp.beta_inter < 0).sum()),
"n_species_both_negative": int(len(both_neg)),
"n_species_intra_negative_inter_positive": int(((tab_sp.beta_intra < 0) & (tab_sp.beta_inter > 0)).sum()),
"ratio_intra_inter_median": float(np.median(ratios)), "ratio_intra_inter_mean": float(np.mean(ratios)),
"ratio_intra_inter_min": float(np.min(ratios)), "ratio_intra_inter_max": float(np.max(ratios)),
"mean_n_con_analysis_sample": float(tab_sp.mean_n_con.mean()),
"mean_n_het_analysis_sample": float(tab_sp.mean_n_het.mean()),
"n_species_intra_significant_negative": int(((tab_sp.beta_intra < 0) & (tab_sp.p_intra < 0.05)).sum()),
"n_species_inter_significant_negative": int(((tab_sp.beta_inter < 0) & (tab_sp.p_inter < 0.05)).sum()),
"paired_t_statistic": float(paired_t.statistic), "paired_t_p": float(paired_t.pvalue),
"wilcoxon_statistic": float(wilcox.statistic), "wilcoxon_p": float(wilcox.pvalue),
"yenni_pearson_r": float(r_yenni), "yenni_pearson_p": float(p_yenni),
"yenni_spearman_rho": float(rho_yenni), "yenni_spearman_p": float(prho_yenni),
"median_r_squared": float(tab_sp.r_squared.median()),
"species_table": species_rows,
"hypothesis_supported": supported,
"secondary_hypothesis_supported": secondary}
print("RESULT_JSON: " + json.dumps(result))
4.Analysis
Analysis complete: experiment succeeded; hypothesis supported; 12 key numbers.
Results and analysis
The run completed on the first attempt (exit code 0) over 30,320 individually measured rodents from 33,052 community captures (93.0% of the 35,549 records in the file), spanning 12 species, 24 plots, 284 trapping sessions and 5,915 plot-sessions between 1977 and 2002.
The primary prediction is supported. Averaged over the 12 species, one additional conspecific caught in the same plot and session is associated with a 2.009% reduction in size-adjusted body mass (bootstrap 95% CI -2.456 to -1.547), whereas one additional heterospecific is associated with a change of +0.061% (95% CI -0.048 to +0.152), indistinguishable from zero. The substitution contrast Delta -- swapping one heterospecific neighbour for one conspecific at constant total captures -- is -2.070% per individual (95% CI -2.489 to -1.611; bootstrap SD 0.229), from 1,000 cluster resamples of the 24 plots. Eleven of 12 species show the predicted ordering (sign test p = 0.0032; Wilcoxon p = 0.0024; paired t p = 0.0143). Ten species have significantly negative conspecific coefficients; none has a significantly negative heterospecific coefficient. Where both coefficients are negative (4 species), self-limitation is a median 8.5-fold stronger; in 7 further species intraspecific competition pairs with weak interspecific facilitation.
The ordering survives both severity checks. Re-expressing heterospecific abundance in conspecific metabolic equivalents leaves Delta at -2.072% (95% CI -2.513 to -1.581). Restricting to structurally adult individuals halves but does not abolish the effect: Delta = -1.119% (95% CI -1.676 to -0.644).
The secondary limiting-similarity prediction is not supported. Size-similar heterospecifics give -0.181% (95% CI -0.483 to +0.126) against +0.127% (95% CI +0.022 to +0.216) for dissimilar ones; the difference of -0.308% has a 95% CI of -0.614 to +0.026, spanning zero. Self-limitation is also weaker in commoner species (Pearson r = 0.613, p = 0.034; Spearman rho = 0.720, p = 0.008). Median model R-squared was 0.227.
Key numbers
| Metric | Value | Interpretation |
|---|---|---|
| Community mean substitution contrast, Delta | -2.070% per neighbour (95% CI -2.489 to -1.611; bootstrap SD 0.229) | Replacing one heterospecific neighbour with one conspecific at constant total captures lowers size-adjusted body mass by about 2%, the pre-registered test statistic, and its interval excludes zero. |
| Mean intraspecific coefficient | -2.009% per conspecific (95% CI -2.456 to -1.547) | Per-capita self-limitation of body condition, averaged over the 12 species. |
| Mean interspecific coefficient | +0.061% per heterospecific (95% CI -0.048 to +0.152) | Per-capita interspecific effect is statistically indistinguishable from zero, not merely weaker. |
| Species showing the predicted ordering | 11 of 12 (sign test p = 0.0032) | The result is a community-wide regularity, not driven by one or two species. |
| Species with significant coefficients | 10 of 12 significantly negative intraspecific; 0 of 12 significantly negative interspecific | Self-limitation is detectable species by species with cluster-robust errors; interspecific competition is not. |
| Intra:inter ratio where both are competitive | median 8.53, mean 11.22, range 2.00 to 25.83 across 4 species | Directly comparable to the four to five-fold plant benchmark; self-limitation in this vertebrate community is at least as disproportionate. |
| Metabolic-equivalent check | Delta = -2.072% (95% CI -2.513 to -1.581) | Weighting neighbours by (M_j/M_s)^0.75 leaves the contrast unchanged, so it is not an artefact of body-size differences among neighbours. |
| Adult-only check | Delta = -1.119% (95% CI -1.676 to -0.644); mean intraspecific -1.098% | Restricting to individuals at or above the species median hindfoot length roughly halves the effect but keeps the interval clear of zero, so recruitment pulses explain part but not all of it. |
| Limiting similarity contrast | -0.308% (95% CI -0.614 to +0.026); similar -0.181%, dissimilar +0.127% | Directionally as predicted but the interval spans zero, so body-size-based limiting similarity is not established. |
| Self-limitation versus commonness | Pearson r = 0.613 (p = 0.034); Spearman rho = 0.720 (p = 0.008) | Rarer species show more negative conspecific coefficients, matching the prediction that strong self-limitation accompanies rarity. |
| Analysis sample | 30,320 individuals; 12 species; 24 plots; 5,915 plot-sessions; 1977-2002 | 2,732 community captures were dropped for missing weight or hindfoot length; the sample size analysed is reported, not the file total. |
| Model fit | median R-squared 0.227 | Structural size, sex, plot, year and month explain about a fifth of within-species mass variation; the density coefficients are small partial effects on top of that. |
Caveats
- Body condition is one fitness component, not per-capita population growth. Excess self-limitation of a fitness component evidences stabilisation of the interaction; it does not demonstrate stable coexistence, which also requires the average-fitness-difference condition.
- Neighbour abundance is captures per plot per trapping session, an effort-dependent index rather than a density. The absolute coefficients therefore have no density units; only the intra-versus-inter contrast, which holds total captures constant, is immune to session-level effort and trap-saturation effects.
- The intraspecific effect could partly reflect demographic composition rather than competition: reproductive pulses put many small individuals into the traps at once. Log hindfoot length as a structural-size covariate and the adult-only subsample address this, and the effect halves under that restriction, so some of the raw intraspecific coefficient is compositional.
- The two most extreme conspecific coefficients (Neotoma albigula -6.97%, Peromyscus maniculatus -6.28%) come from species averaging fewer than 1.1 conspecifics per plot-session, so their coefficients are identified by the contrast between being caught alone and being caught with one or two conspecifics and are the least well conditioned in the set.
- One species, Perognathus flavus, shows a positive conspecific coefficient (+0.379%, p = 0.219) and so runs against the community pattern.
- This teaching subset lacks the plot treatment labels, so the kangaroo-rat exclosure design is absorbed by plot fixed effects rather than modelled; the interspecific coefficient is therefore an average over plots in which some heterospecifics were experimentally excluded.
- There are no individual tags in this subset, so repeated captures of the same animal cannot be identified and the models cannot include individual effects. The plot-level cluster bootstrap, which resamples whole plots, is robust to arbitrary dependence within a plot and is the basis of the reported intervals.
- Absence of a detectable interspecific effect on body condition is not evidence that interspecific competition is absent at Portal: the exclosure literature shows it acting on abundance, a different currency and a different timescale.
- The similarity split uses a single mass-ratio threshold of two and only 12 species, several of which have no size-similar neighbour in the community, so the limiting-similarity test has limited power and its null result should be read as inconclusive rather than as a refutation of limiting similarity.
- All results come from one site and one 26-year record; the community also underwent documented compositional transitions during this period, and the coefficients are averages over those regimes rather than constants.
5.Paper writing
Manuscript drafted: “Conspecifics, not heterospecifics, limit individual body condition in a desert rodent community” (≈ 4815 words).
≈ 4815 words · AI-drafted manuscript · not peer-reviewed
Conspecifics, not heterospecifics, limit individual body condition in a desert rodent community
Abstract
Modern coexistence theory makes an excess of intraspecific over interspecific density dependence the necessary condition for stabilisation, yet the benchmark quantification is entirely botanical. We estimated per-capita interaction coefficients on an individual fitness component, size-adjusted body mass, for the twelve abundant rodent species of the Portal Project record (30,320 measured individuals, 24 plots, 1977-2002). Eleven of twelve species were limited more by conspecifics than by heterospecifics (sign test p = 0.0032), and none showed significant interspecific competition. Substituting one heterospecific neighbour for one conspecific at constant total captures cost 2.07% of body mass (bootstrap 95% CI -2.49 to -1.61), but this unweighted species mean is pulled by two sparse species: seven of twelve contrasts are weaker than -2%. Restricting to structurally adult animals roughly halved it, to -1.119% (-1.676 to -0.644). Size-similar heterospecifics were not detectably stronger competitors. The ordering, not the magnitude, is robust.
Keywords: coexistence theory; competition coefficients; body condition; density dependence; desert rodents; limiting similarity; long-term monitoring; Portal Project; self-limitation; stabilising mechanisms.
Introduction
Modern coexistence theory reduces the maintenance of diversity to stabilising mechanisms, which make each species limit itself more than it limits its competitors, and equalising mechanisms, which shrink average fitness differences (Chesson 2000). The stabilising ingredient is a measurable inequality between per-capita interaction coefficients, and its magnitude is therefore one of the central empirical quantities in community ecology. Adler et al. (2018) supplied the benchmark: across 39 terrestrial plant studies, where both effects were competitive, self-limitation was four to five-fold the stronger, and in almost all remaining pairs intraspecific competition combined with interspecific facilitation, which is also stabilising.
That synthesis is botanical, and the plant ratio need not carry over to mobile vertebrates, which add interference competition and behavioural dominance to exploitative resource use. Desert granivorous rodents are the obvious test system, and at Portal, Arizona, the evidence for interspecific competition is unusually strong: excluding kangaroo rats (Dipodomys spp.) from fenced plots raised the abundance of five smaller granivores over 13 years (Heske et al. 1994). But an abundance response to deleting a whole guild member, with its indirect effects on vegetation and seed banks, is not the per-capita coefficient theory specifies. Eccard & Ylonen (2003) argued exactly this for small mammals: population-level removals miss the individual currencies through which rodent competition operates, and the two levels can disagree.
We therefore measured interaction coefficients on an individual fitness component. Body mass standardised for structural size is the conventional condition index in field mammalogy (Peig & Green 2009), and at Portal it is recorded for tens of thousands of handled animals alongside every other animal caught in the same plot on the same nights, yielding a direct estimate of what one extra neighbour of each kind costs an individual.
We tested two predictions, stated before the analysis was run.
H1 (stabilisation). For each focal species , the per-capita effect of a conspecific neighbour on size-adjusted body mass is more negative than that of a heterospecific neighbour, , and the community mean substitution contrast is negative with a bootstrap 95% interval excluding zero. H1 is refuted if or if its interval spans zero.
H2 (limiting similarity). Among heterospecific neighbours, those within a factor of two of the focal species in mean body mass depress condition more than those differing by more than a factor of two, . This follows Bowers & Brown (1982), who found that desert granivores with mass ratios below about 1.5 co-occur less often than chance. H2 is refuted if or if the interval on the difference spans zero.
We also examined the prediction of Yenni et al. (2012) that self-limitation is strongest in the rarer members of a community. Following Broekman et al. (2019), we read excess self-limitation on a fitness component as evidence that an interaction is stabilised, not as a demonstration of stable coexistence; because single-component studies give smaller intra-minus-inter differences than full-life-cycle studies (Adler et al. 2018), ours is a conservative test.
Material and Methods
We analysed the Portal Project Teaching Database, the long-term rodent monitoring record of a Chihuahuan Desert site near Portal, Arizona, distributed in the R package ratdat and mirrored by the Rdatasets archive (Ernest et al. 2018; https://vincentarelbundock.github.io/Rdatasets/csv/ratdat/surveys.csv, CC0 1.0), retrieved on 8 September 2026. The file holds 35,549 rows, one per captured individual, from 24 fenced plots between 1977 and 2002; the peer-reviewed data papers for the full research database are Ernest et al. (2009, 2016). We used species_id (two-letter code), plot_id (1-24), year and month (the trapping session), sex, hindfoot_length (mm, the standard structural-size measure), weight (g) and the parsed capture date. Measurements are incomplete as distributed: sex is missing for 2,511 records, hindfoot length for 4,111 and weight for 3,266. Sample construction and the resulting counts are in Table 1.
Model Description
Let index a captured individual of focal species , caught on plot in trapping session (a calendar year-month). Write for body mass (g), for hindfoot length (mm), for the number of conspecifics other than caught on plot in session , for the number of heterospecific community members caught in the same plot-session, and for the number of distinct trapping nights in that plot-session. For each species separately we fit
by ordinary least squares, with , and fixed effects for plot, calendar year and calendar month. Entering alongside the density terms is a one-stage analysis of covariance rather than a two-stage scaled mass index (Peig & Green 2009), because the weak within-species mass-length correlation makes a standardised major axis slope unstable. Coefficients are multiplied by 100 and read as per cent change in size-adjusted body mass per additional neighbour, a currency comparable across species differing twenty-fold in mass.
Because , the total community captures in that plot-session, equation (1) is an exact reparameterisation of a model containing total captures:
so that the quantity
is the effect of substituting one heterospecific neighbour for one conspecific at constant total captures. Any artefact acting through the total number of animals caught, trap saturation or session-level effort, is absorbed by the term and cannot generate . This equivalence is exact only because neighbour effects enter equation (1) linearly in counts: if the response to crowding saturates, the linear term absorbs it only approximately and the protection is correspondingly partial. is the pre-specified test statistic for H1.
Two further density constructions were fitted. To express neighbours in resource-use rather than head-count units we rescaled heterospecific abundance into conspecific metabolic equivalents by Kleiber scaling,
with the mean body mass of species in grams. To test H2 we split heterospecific abundance by body-size distance,
and estimated and jointly with . Table 2 lists every quantity, its units and its biological justification.
Table 1. Data provenance and analysis sample.
| Item | Value |
|---|---|
| Source file | Portal Project Teaching Database, ratdat surveys table (Rdatasets mirror) |
| Retrieved | 8 September 2026 |
| Rows in file (individual captures) | 35,549 |
| Sample period | 1977-2002 (284 trapping sessions) |
| Plots | 24 |
| Species codes in file | 48 |
| Missing in file: sex / hindfoot length / weight | 2,511 / 4,111 / 3,266 |
| Community definition | species with at least 400 recorded body masses |
| Community species | 12 |
| Community captures | 33,052 (93.0% of all rows) |
| Plot-sessions with community captures | 5,915 |
| Median (mean) community captures per plot-session | 5.0 (5.59) |
| Dropped for missing weight or hindfoot length | 2,732 |
| Individuals analysed | 30,320 |
| Species mean body mass, range | 7.92-159.25 g |
Notes. Rows are captures, not site-visit summaries, so neighbour abundance is an index rather than a density. The community filter excludes unidentified codes and taxa with no recorded mass, including the non-rodent codes present in the file. All counts are printed by the analysis script from the file as loaded.
Simulation Protocol
This subsection describes the analysis sample, the replicate structure and the resampling protocol; there is no simulation, and every quantity is estimated from the real capture records described above. The experimental unit at Portal is the plot, so uncertainty in each community-level quantity comes from a cluster bootstrap that draws all 24 plots with replacement and refits equations (1), (4) and (5) for all 12 species, recomputing the community means each time. We used 1,000 resamples with seed 20260908; the bootstrap is the only stochastic element, so the run is deterministic given that seed. Resampling whole plots makes the intervals robust to arbitrary within-plot dependence, including repeated captures of the same untagged individual. Species-level coefficients carry cluster-robust standard errors with plot-sessions as clusters.
Two severity checks, specified in advance, were executed on the same protocol. The metabolic check replaces by from equation (4). The adult check keeps only individuals at or above their species' median hindfoot length, because reproductive pulses put many small young animals into the traps at once and could mimic intraspecific competition; it removes structurally immature animals without an age variable, which the record does not contain.
Table 2. Variables and parameters, units and biological justification.
| Symbol | Definition | Units | Justification |
|---|---|---|---|
| Body mass of individual | g | Fitness component; condition predicts survival and reproduction in small mammals (Eccard & Ylonen 2003) | |
| Hindfoot length | mm | Structural size; standardising mass for skeletal size is the conventional condition index (Peig & Green 2009) | |
| Conspecific captures in the same plot-session, excluding | individuals | Per-capita intraspecific neighbourhood | |
| Heterospecific community captures in the same plot-session | individuals | Per-capita interspecific neighbourhood | |
| Heterospecifics in conspecific metabolic equivalents | conspecific equivalents | Kleiber exponent 3/4 converts head counts into resource-use equivalents | |
| Distinct trapping nights in the plot-session | nights | Explicit effort control | |
| , | Per-capita neighbour effects | % body mass per individual | Phenomenological competition coefficients (Adler et al. 2018) |
| , | Substitution contrast, species and community mean | % body mass per individual | Test statistic for the stabilising condition (Chesson 2000) |
| Mean body mass of species | g | Sets the metabolic weights and the similarity split | |
| Similarity threshold on | dimensionless | A factor-of-two mass ratio, above the ~1.5 threshold of Bowers & Brown (1982) |
Notes. Species mean masses are computed from the same file. Fixed effects for plot, year, month and sex are nuisance parameters and are not reported.
Analysis
For each species we report , and with cluster-robust standard errors and two-sided -values. Community-level quantities are unweighted means across the 12 species, each species a replicate, with percentile bootstrap 95% intervals and the bootstrap standard deviation; because the mean is unweighted, we also report the full spread of species-level estimates and rank-based tests of the ordering. We counted the species showing the predicted ordering, tested that count with an exact one-sided sign test, and compared the coefficient sets with a paired -test and a Wilcoxon signed-rank test, the latter insensitive to extreme values. Where both coefficients were negative we computed the ratio , the quantity comparable to the plant benchmark. The Yenni et al. (2012) prediction was tested by correlating with total captures.
Results
H1: self-limitation exceeds interspecific limitation
The analysis ran to completion on 30,320 individuals; species-level estimates are in Table 3. Eleven of the 12 species have a negative conspecific coefficient, ten of them individually significant with cluster-robust errors, and not one species has a significantly negative heterospecific coefficient. The single exception is Perognathus flavus, the smallest species at 7.92 g, whose conspecific coefficient is positive and non-significant (+0.379%, = 0.219).
Table 3. Per-capita neighbour effects on size-adjusted body mass, by species.
| Code | Species | (g) | mean | mean | (SE) | (SE) | (SE) | ||
|---|---|---|---|---|---|---|---|---|---|
| DM | Dipodomys merriami | 9,739 | 43.16 | 3.89 | 3.62 | -0.166 (0.074) | +0.122 (0.074) | -0.288 (0.107) | 0.0070 |
| PP | Chaetodipus penicillatus | 2,978 | 17.17 | 2.77 | 5.83 | -0.452 (0.222) | -0.226 (0.135) | -0.226 (0.242) | 0.350 |
| PB | Chaetodipus baileyi | 2,808 | 31.74 | 5.04 | 4.52 | -0.752 (0.174) | +0.050 (0.141) | -0.801 (0.211) | 0.00014 |
| DO | Dipodomys ordii | 2,793 | 48.87 | 1.99 | 6.31 | -0.764 (0.243) | +0.028 (0.124) | -0.792 (0.275) | 0.0040 |
| RM | Reithrodontomys megalotis | 2,429 | 10.59 | 1.40 | 3.20 | -0.572 (0.314) | -0.048 (0.150) | -0.524 (0.338) | 0.121 |
| OT | Onychomys torridus | 2,085 | 24.23 | 0.91 | 6.63 | -2.260 (0.686) | +0.142 (0.130) | -2.402 (0.703) | 0.00063 |
| DS | Dipodomys spectabilis | 2,026 | 120.13 | 1.69 | 4.58 | -2.050 (0.314) | +0.357 (0.140) | -2.407 (0.360) | <0.0001 |
| PF | Perognathus flavus | 1,471 | 7.92 | 1.59 | 5.30 | +0.379 (0.308) | +0.071 (0.144) | +0.307 (0.323) | 0.342 |
| PE | Peromyscus eremicus | 1,200 | 21.59 | 0.95 | 4.81 | -1.432 (0.611) | -0.282 (0.191) | -1.150 (0.636) | 0.070 |
| NL | Neotoma albigula | 1,046 | 159.25 | 0.47 | 6.17 | -6.973 (1.572) | +0.387 (0.281) | -7.360 (1.620) | <0.0001 |
| OL | Onychomys leucogaster | 907 | 31.58 | 0.78 | 6.03 | -2.790 (0.921) | -0.108 (0.245) | -2.682 (0.985) | 0.0065 |
| PM | Peromyscus maniculatus | 838 | 21.36 | 1.07 | 5.30 | -6.277 (0.943) | +0.235 (0.251) | -6.512 (0.916) | <0.0001 |
Notes. Coefficients are per cent change in size-adjusted body mass per additional neighbour caught in the same plot and trapping session, from equation (1); standard errors are cluster-robust with plot-sessions as clusters. is the number of individuals with both weight and hindfoot length. mean and mean are the average conspecific and heterospecific neighbour counts experienced by the analysed individuals. is the substitution effect at constant total captures. Rows are ordered by . Two-sided -values below 0.0001 are shown as <0.0001. Median model across species is 0.227. Species-level contrasts span +0.307% to -7.360%; the two steepest, Neotoma albigula and Peromyscus maniculatus, come from species averaging fewer than 1.1 conspecifics per plot-session and are the least well conditioned in the set.
At the community level (Table 4), one additional conspecific is associated with a 2.009% reduction in size-adjusted body mass (95% CI -2.456 to -1.547; bootstrap SD 0.233), one additional heterospecific with +0.061% (95% CI -0.048 to +0.152; bootstrap SD 0.051), indistinguishable from zero. The substitution contrast is % per individual (95% CI -2.489 to -1.611; bootstrap SD 0.229). H1 is supported: the interval excludes zero by a wide margin.
That magnitude should be read with care. is an unweighted mean over species, and Table 3 shows contrasts spanning +0.307% to -7.360%. Two sparse species, Neotoma albigula (-7.360%) and Peromyscus maniculatus (-6.512%), lie far outside the rest; the other ten fall between +0.307% and -2.682%, and seven of the twelve are weaker than -2%. The mean is therefore pulled well below the typical species, and -2.070% should not be read as the representative per-capita cost. The ordering, not the point magnitude, is what is robust (Table 5). Eleven of 12 show (exact sign test = 0.0032; Wilcoxon signed-rank = 0.0024, a rank test insensitive to the two extreme values; paired = -2.905, = 0.0143). In the four species where both coefficients are negative, self-limitation is a median 8.53-fold stronger (mean 11.22, range 2.00-25.83). In seven further species intraspecific competition pairs with a weakly positive heterospecific coefficient, the combination Adler et al. (2018) also found to dominate their non-competitive pairs.
Table 4. Community-level per-capita effects and severity checks.
| Quantity | Mean intraspecific (%) | Mean interspecific (%) | Contrast (%) | 95% CI on |
|---|---|---|---|---|
| Primary model, eqn (1) | -2.009 [-2.456, -1.547] | +0.061 [-0.048, +0.152] | -2.070 | [-2.489, -1.611] |
| Metabolic equivalents, eqn (4) | -1.996 [-2.449, -1.550] | +0.076 [-0.117, +0.215] | -2.072 | [-2.513, -1.581] |
| Structurally adult individuals only | -1.098 [-1.680, -0.633] | +0.021 [-0.110, +0.133] | -1.119 | [-1.676, -0.644] |
| Size-similar heterospecifics, eqn (5) | - | -0.181 [-0.482, +0.126] | - | - |
| Size-dissimilar heterospecifics, eqn (5) | - | +0.127 [+0.022, +0.216] | - | - |
| Similarity contrast | - | - | -0.308 | [-0.614, +0.026] |
Notes. Unweighted means across the 12 species, each species a replicate; brackets are percentile 95% intervals from 1,000 cluster bootstrap resamples of the 24 plots (seed 20260908). Bootstrap standard deviations for the primary row are 0.233 (intraspecific), 0.051 (interspecific) and 0.229 (contrast). Units are per cent change in size-adjusted body mass per additional neighbour; in the metabolic row the interspecific unit is per conspecific metabolic equivalent. The adult subsample retains individuals at or above the species median hindfoot length. Because the means are unweighted, they are pulled by the two species with the steepest coefficients and should not be read as typical per-capita effects; the species-level spread is in Table 3.
Both severity checks leave the ordering intact. Weighting heterospecific neighbours by resource use rather than counting them alike, so that a 160 g woodrat and an 8 g pocket mouse are no longer equivalent, changes only from -2.070% to -2.072% (95% CI -2.513 to -1.581). Restricting to structurally adult individuals roughly halves the effect, to % (95% CI -1.676 to -0.644), the mean conspecific coefficient falling from -2.009% to -1.098%; recruitment pulses therefore account for part of the raw intraspecific coefficient but not for the ordering, which stays clear of zero.
One qualification applies to every interspecific estimate reported here. is a single pooled coefficient over all eleven heterospecific community members, so what we estimate is the absence of a detectable net interspecific effect: pairwise coefficients of opposite sign could cancel within that pool. We did not estimate pairwise coefficients, and the size-similarity split below is the only disaggregation we fitted.
H2: no detectable effect of body-size similarity
H2 is not supported. Splitting heterospecific neighbours at a factor-of-two mass ratio gives % (95% CI -0.482 to +0.126) and % (95% CI +0.022 to +0.216). The difference is in the predicted direction, -0.308%, but its interval, -0.614 to +0.026, contains zero. Body-size distance therefore does not measurably modulate interspecific effects on condition here; because the test rests on 12 species, several with no size-similar neighbour, we read this as inconclusive rather than as a refutation of limiting similarity.
Self-limitation and rarity
Conspecific coefficients scale with commonness in the direction Yenni et al. (2012) predicted: becomes less negative as total captures rise (Pearson = 0.613, = 0.034; Spearman = 0.720, = 0.008). The two most extreme coefficients, Neotoma albigula at -6.97% and Peromyscus maniculatus at -6.28%, belong to species averaging fewer than 1.1 conspecifics per plot-session, so rarity and weak conditioning are confounded in this correlation.
Table 5. Ancillary statistics across the 12 species.
| Statistic | Value |
|---|---|
| Species with | 11 of 12 (exact sign test = 0.0032) |
| Species with / significantly so | 11 / 10 |
| Species with / significantly so | 4 / 0 |
| Species with intraspecific competition and interspecific facilitation | 7 |
| Ratio , both negative ( = 4) | median 8.53, mean 11.22, range 2.00-25.83 |
| Paired -test on the 12 coefficient pairs | = -2.905, = 0.0143 |
| Wilcoxon signed-rank test | = 3.0, = 0.0024 |
| vs total captures | = 0.613, = 0.034; = 0.720, = 0.008 |
| Median of the species models | 0.227 |
Notes. Significance of species-level coefficients is at = 0.05 with cluster-robust standard errors. The ratio is computed only where both coefficients are negative, the subset comparable to the plant benchmark of Adler et al. (2018).
Discussion
Across 26 years and 24 plots, individual rodents at Portal pay a measurable cost for conspecific neighbours and no detectable net cost for heterospecific ones. Eleven of twelve species show that ordering, and where both coefficients are competitive self-limitation is a median 8.5-fold stronger, at or above the four to five-fold ratio Adler et al. (2018) report for plants; in most species interspecific effects are weakly positive, the same intraspecific-competition-with-interspecific-facilitation combination they found. The stabilising ingredient of coexistence theory (Chesson 2000) is thus no weaker in this mobile vertebrate community than in sessile plants, at least in the currency of individual condition. It is the ordering we emphasise, not the mean magnitude, which two sparse species inflate.
This does not contradict the exclosure record. Heske et al. (1994) showed that removing kangaroo rats raises the abundance of smaller granivores, and our result is silent about that: abundance and condition are different currencies on different timescales, and an interspecific effect undetectable within a trapping session may still accumulate into a population response over years through vegetation and seed-bank pathways. What our estimates add is that the instantaneous per-capita interaction an individual experiences is overwhelmingly with its own species, the divergence between population- and individual-level readings that Eccard & Ylonen (2003) anticipated. Because the interspecific coefficient pools all eleven heterospecifics, this is a statement about the net neighbourhood, not about every pair within it.
The interpretation must stop short of coexistence. Following Broekman et al. (2019), excess self-limitation on a fitness component shows that an interaction is stabilised; it is neither necessary nor sufficient for stable coexistence, which also requires the average-fitness-difference condition our data cannot address. Because single-component studies understate the intra-minus-inter difference (Adler et al. 2018), our estimate is a lower bound. That conspecific coefficients are steepest in the rarest species ( = 0.720) fits the mechanism Yenni et al. (2012) proposed for the persistence of rare species, but with 12 species, and with rarity confounded with estimation precision, the correlation is suggestive rather than decisive.
The failure of H2 is informative. Bowers & Brown (1982) inferred limiting similarity from co-occurrence: granivores of similar mass are found together less often than chance. We asked whether similar-sized neighbours impose a stronger per-capita cost where they do co-occur, and the answer is unresolved. Co-occurrence and interaction strength may decouple, because the pairs whose interactions would be strongest are the ones assembly has already filtered out; or the test may simply lack power. We do not choose between these here.
Several limitations bound these conclusions. Neighbour abundance is captures per plot per trapping session, an effort-dependent index rather than a density, so the absolute coefficients carry no density units; only the substitution contrast, which by equation (2) holds total captures constant, is protected from session-level effort and trap saturation, and it is the contrast we use for inference. The intraspecific coefficient is partly compositional: reproductive pulses deliver many small young animals at once, and the adult restriction halves the effect, so some of the raw self-limitation is demographic rather than competitive. A second compositional pathway we cannot close is reproductive condition. Mass at fixed structural size includes reproductive burden and gut contents, pregnancy and lactation raise female mass appreciably, and reproduction in this system is itself density- and rainfall-dependent; the dataset records no reproductive status, so this pathway is uncontrolled and could push the conspecific coefficient in either direction. Relatedly, the exact reparameterisation in equation (2) assumes neighbour effects are linear in counts; we fitted no saturating or log-density specification, so nonlinear crowding responses are not excluded and the contrast's protection against effort artefacts is correspondingly incomplete. Seasonality and interannual variation enter additively as month and year fixed effects, whereas a session-level (year-by-month) fixed effect would control rainfall-pulse timing more strictly; that specification was not fitted either. The two steepest coefficients come from species averaging fewer than 1.1 conspecifics per plot-session, are the least well conditioned in the set and inflate the community mean, and one species runs against the pattern altogether. The teaching subset carries no plot treatment labels, so the kangaroo-rat exclosure design is absorbed by plot fixed effects rather than modelled, and the interspecific coefficient averages over plots on which some heterospecifics were experimentally excluded (Ernest et al. 2016). It carries no individual tags, so repeated captures of one animal cannot be identified; the plot-level cluster bootstrap accommodates that dependence but cannot remove it. Finally, this is one site and one 26-year window over which the community's compensatory capacity demonstrably changed (Diaz & Ernest 2022), so our coefficients are averages over regimes, not constants.
The practical implication is that individual condition offers a cheap, high-resolution readout of density dependence from data mark-recapture programmes already collect: whether a declining population is limited by its own numbers or by a putative competitor may be visible in body mass within a single trapping session, long before it appears in abundance.
Acknowledgements
We thank the Portal Project and its field workers for three decades of open, meticulously documented monitoring, and the maintainers of the ratdat package and the Rdatasets archive for distributing the teaching database.
Author Contributions
The study was conceived, designed, analysed and written by the author. The analysis code was written and executed by the author; all numbers reported come from that single executed run.
Data Availability Statement
No new data were generated. The analysis uses the Portal Project Teaching Database, distributed under a CC0 1.0 public domain dedication in the R package ratdat and mirrored at https://vincentarelbundock.github.io/Rdatasets/csv/ratdat/surveys.csv (35,549 rows; retrieved 8 September 2026). The dataset should be cited as Ernest et al. (2018); the peer-reviewed data papers for the full research database are Ernest et al. (2009, 2016).
References
Adler, P.B., Smull, D., Beard, K.H., Choi, R.T., Furniss, T., Kulmatiski, A., Meiners, J.M., Tredennick, A.T. & Veblen, K.E. (2018) Competition and coexistence in plant communities: intraspecific competition is stronger than interspecific competition. Ecol. Lett., 21, 1319-1329.
Bowers, M.A. & Brown, J.H. (1982) Body size and coexistence in desert rodents: chance or community structure? Ecology, 63, 391-400.
Broekman, M.J.E., Muller-Landau, H.C., Visser, M.D., Jongejans, E., Wright, S.J. & de Kroon, H. (2019) Signs of stabilisation and stable coexistence. Ecol. Lett., 22, 1957-1975.
Chesson, P. (2000) Mechanisms of maintenance of species diversity. Annu. Rev. Ecol. Syst., 31, 343-366.
Diaz, R.M. & Ernest, S.K.M. (2022) Maintenance of community function through compensation breaks down over time in a desert rodent community. Ecology, 103, e3709.
Eccard, J.A. & Ylonen, H. (2003) Interspecific competition in small rodents: from populations to individuals. Evol. Ecol., 17, 423-440.
Ernest, S.K.M., Valone, T.J. & Brown, J.H. (2009) Long-term monitoring and experimental manipulation of a Chihuahuan Desert ecosystem near Portal, Arizona, USA. Ecology, 90, 1708.
Ernest, S.K.M., Yenni, G.M., Allington, G., Christensen, E.M., Geluso, K., Goheen, J.R., Schutzenhofer, M.R., Supp, S.R., Thibault, K.M., Brown, J.H. & Valone, T.J. (2016) Long-term monitoring and experimental manipulation of a Chihuahuan desert ecosystem near Portal, Arizona (1977-2013). Ecology, 97, 1082.
Ernest, M., Brown, J., Valone, T. & White, E.P. (2018) Portal Project Teaching Database. figshare. DOI: 10.6084/m9.figshare.1314459.
Heske, E.J., Brown, J.H. & Mistry, S. (1994) Long-term experimental study of a Chihuahuan Desert rodent community: 13 years of competition. Ecology, 75, 438-445.
Peig, J. & Green, A.J. (2009) New perspectives for estimating body condition from mass/length data: the scaled mass index as an alternative method. Oikos, 118, 1883-1891.
Yenni, G., Adler, P.B. & Ernest, S.K.M. (2012) Strong self-limitation promotes the persistence of rare species. Ecology, 93, 456-461.
6.Review
Automated review: Minor revision (novelty 4, rigor 4, clarity 5, reproducibility 5).
| Novelty 4/5 | Rigor 4/5 | Clarity 5/5 | Reproducibility 5/5 |
The revision addresses all seven of my required changes substantively rather than cosmetically, and the manuscript is now, in my judgement, a sound Letter. The framing of magnitude is the important fix: the Abstract and Results now lead with the ordering (11 of 12 species; sign test p = 0.0032; Wilcoxon p = 0.0024), state that -2.07% is an unweighted species mean pulled by two sparse and poorly conditioned species, give the range of species-level contrasts (+0.307% to -7.360%) and put the adult-restricted value (-1.119%, 95% CI -1.676 to -0.644) in the Abstract as a number. The linearity assumption behind equation (2) is now stated where the identification argument is made and again in the Limitations; the interspecific coefficient is correctly described as a pooled net effect with pairwise estimation explicitly not attempted; the reproductive-condition confound, which the dataset cannot control, is stated in full; the additive month-plus-year structure and the unfitted session-level fixed effect are acknowledged; and the protocol subsection now names what it contains. I re-checked the numbers: every figure in the text and in Tables 3-5 matches the executed analysis, the dataset is the Portal Project Teaching Database as recorded with the correct URL, retrieval date, 35,549 rows and 30,320 analysed individuals, and nothing is described as simulated. My remaining points are small and do not require new analysis: the significantly positive size-dissimilar coefficient should be addressed directly, the bootstrap's replicate unit should be reconciled with the 'each species a replicate' language, the two compositional pathways should be distinguished by scope, and one clause should say why pairwise coefficients were not estimated. Rigor rises to 4 on the strength of the honest and now essentially complete confound discussion; it stops short of 5 because the linearity and session-shock specifications remain untested rather than merely acknowledged.
Strengths
- The conceptual target is the quantity coexistence theory actually specifies. Adler et al. (2018) established the intra:inter asymmetry for plants; this is the first estimate I know of that puts per-capita coefficients for every abundant member of a free-living vertebrate community on a common individual currency, and the authors are right that the Portal exclosure literature (Heske et al. 1994) measures a different thing, an abundance response to deleting a guild member.
- The identification argument in equation (2) remains the paper's best feature, and the revision now states its cost of entry. Because conspecific + heterospecific + 1 = total captures, the model is an exact reparameterisation of one containing total captures, so the substitution contrast is orthogonal to anything acting through session-level effort or trap saturation - and the authors now say plainly that this exactness rests on neighbour effects being linear in counts, and that no saturating specification was fitted.
- The reporting of magnitude has been fixed properly rather than cosmetically. The Abstract now leads with the ordering (11 of 12 species, sign test p = 0.0032), states that the -2.07% mean is unweighted and pulled by two sparse species with seven of twelve contrasts weaker than -2%, and gives the adult-restricted contrast (-1.119%, 95% CI -1.676 to -0.644) as a number rather than as a claim of survival. The Results carry a dedicated paragraph on the spread (+0.307% to -7.360%), and both Table 3 and Table 4 notes now warn the reader against reading the mean as typical. A reader who sees only the Abstract will not now take -2.07% as the representative per-capita cost.
- Predictions, refutation criteria and both severity checks were declared before the results and both were executed. The adult-only restriction halves the effect and this is reported in the Abstract, the Results and the Limitations rather than minimised.
- The secondary hypothesis fails and is reported as failing: the size-similarity contrast is in the predicted direction (-0.308%) but its interval (-0.614 to +0.026) spans zero, and the authors call it inconclusive rather than supportive.
- Interpretation is disciplined and ecological rather than merely statistical. Following Broekman et al. (2019) the authors claim stabilisation of an interaction and explicitly refuse the coexistence claim; they note that a single fitness component gives a conservative estimate; and they now concede that the rarity-self-limitation correlation confounds rarity with estimation precision.
- Data provenance and reproducibility are exemplary: a CC0 public dataset with the exact URL and retrieval date, 35,549 rows in the file, the community-membership rule, every sample filter, 30,320 individuals analysed, 24 plots, 5,915 plot-sessions, 1,000 bootstrap resamples and the seed. I checked every quantitative statement in the text and in Tables 3, 4 and 5 against the experiment record; all of them match, and nothing is described as simulated.
Weaknesses
- The one interspecific coefficient whose interval excludes zero is the size-dissimilar term, beta_dis = +0.127% (95% CI +0.022 to +0.216). Under the manuscript's own reading that is a small but detectable facilitative effect of size-dissimilar neighbours on condition, and it is reported only as the arm of a failed contrast. It deserves a sentence in its own right, if only to say that with 12 species it is not worth interpreting.
- The community-level intervals come from resampling the 24 plots, not the 12 species, so they propagate sampling error in each species' coefficient but treat the species set as fixed. The text describes the community mean as an unweighted mean 'each species a replicate', which invites the reader to expect among-species variation to be inside the interval. It is not, and the mismatch between the replicate language and the resampling unit should be stated once.
- The pooled interspecific coefficient is now correctly qualified as a net effect, but the manuscript leaves the reader with no sense of how much cancellation is plausible. A single sentence acknowledging that the data would in principle support pairwise estimation, and that it was not attempted here because per-pair sample sizes are small, would close this.
- The reproductive-condition confound is now in the Limitations and is well stated, but the Discussion still describes the adult restriction as separating 'demographic' from 'competitive' contributions; strictly, the adult restriction addresses the juvenile-recruitment pathway only, and does nothing about reproductive burden in adult females. The two limitations are adjacent in the text but their different scopes are not distinguished.
- Minor: the venue-mandated subsection heading 'Simulation Protocol' is now intelligible - the first sentence names the sample, replicate structure and resampling protocol - but the heading itself remains inaccurate for a study with no simulation. This is a house-style constraint rather than an author error, and the authors have handled it as well as the template allows.
Required changes
- Add one sentence to the H2 subsection noting that beta_dis = +0.127% (95% CI +0.022 to +0.216) is the only interspecific coefficient whose interval excludes zero, and state whether the authors regard that as a real weak facilitation or as unremarkable given 12 species; do not leave it visible only as one arm of the failed contrast.
- State once, in the Analysis subsection or in the note to Table 4, that the cluster bootstrap resamples the 24 plots and therefore does not treat the 12 species as a sample; the intervals reflect uncertainty in the species coefficients, not among-species variation.
- In the Limitations, distinguish the scope of the two compositional pathways: the adult restriction addresses juvenile recruitment, whereas reproductive burden in adult females is untouched by it. Adjust the Discussion sentence that reads the adult check as separating demographic from competitive contributions accordingly.
- Add a half-sentence saying why pairwise interspecific coefficients were not estimated (per-pair co-occurrence sample sizes), so that the acknowledgement of pooling is informative rather than only a caveat.
Record
§Event timeline
- Run createdQuestion: “Does intraspecific competition exceed interspecific competition in a desert rodent community, and is interspecific competition stronger between body-size-similar species?” · output language: English · venue: Ecology & Evolutionary Biology · Ecology Letters · models: agent:claude-opus-5
- Stage started · Literature reviewAttempt 1 · agent:claude-opus-5
- awaiting_agent · Literature reviewsearch response for literature_review: literature_review-search-1.response.json
- Resume requested
- Stage started · Literature reviewAttempt 2 · agent:claude-opus-5
- Search complete · Literature review22 sources · 9,848 characters of notes
- awaiting_agent · Literature reviewcomplete_json response for literature_review: literature_review-complete_json-1.response.json
- Resume requested
- Stage started · Literature reviewAttempt 3 · agent:claude-opus-5
- Search complete · Literature review22 sources · 9,848 characters of notes
- Stage completed · Literature review
- Stage started · IdeationAttempt 1 · agent:claude-opus-5
- awaiting_agent · Ideationcomplete_json response for ideation: ideation-complete_json-1.response.json
- Resume requested
- Stage started · IdeationAttempt 2 · agent:claude-opus-5
- Awaiting approval · Ideation
- Approved · IdeationIdea 1 selected
- Stage started · ExperimentationAttempt 1 · agent:claude-opus-5
- Dataset provisioned · Experimentationportal_rodent_surveys · 35,549 observations · 10 variables · sha256 0e7b92161a10
- awaiting_agent · Experimentationcomplete response for experimentation: experimentation-complete-1.response.txt
- Resume requested
- Stage started · ExperimentationAttempt 2 · agent:claude-opus-5
- Dataset provisioned · Experimentationportal_rodent_surveys · 35,549 observations · 10 variables · sha256 0e7b92161a10
- awaiting_agent · Experimentationcomplete response for experimentation: experimentation-complete-1.response.txt
- Resume requested
- Stage started · ExperimentationAttempt 3 · agent:claude-opus-5
- Dataset provisioned · Experimentationportal_rodent_surveys · 35,549 observations · 10 variables · sha256 0e7b92161a10
- Experiment round · ExperimentationRound 1: exit 0; result parsed (12.709s)
- Stage completed · Experimentation
- Stage started · AnalysisAttempt 1 · agent:claude-opus-5
- awaiting_agent · Analysiscomplete_json response for analysis: analysis-complete_json-1.response.json
- Resume requested
- Stage started · AnalysisAttempt 2 · agent:claude-opus-5
- Stage completed · Analysis
- Stage started · Paper writingAttempt 1 · agent:claude-opus-5
- awaiting_agent · Paper writingcomplete response for paper_writing: paper_writing-complete-1.response.txt
- Resume requested
- Stage started · Paper writingAttempt 2 · agent:claude-opus-5
- Stage completed · Paper writing
- Stage started · ReviewAttempt 1 · agent:claude-opus-5
- awaiting_agent · Reviewcomplete_json response for review: review-complete_json-1.response.json
- Resume requested
- Stage started · ReviewAttempt 2 · agent:claude-opus-5
- Awaiting approval · Review
- Sent back for revision · ReviewRe-running from Paper writing: “The referee recommends MAJOR REVISION (novelty 4, rigor 3, clarity 4, reproducibility 5). Address every required change below, quoted verbatim from the report. Use ONLY numbers already produced by the”
- Stage started · Paper writingAttempt 3 · agent:claude-opus-5
- Stage completed · Paper writing
- Stage started · ReviewAttempt 1 · agent:claude-opus-5
- Awaiting approval · Review
- Resume requested
- Sent back for revision · ReviewRe-running from Paper writing: “The referee recommends major_revision. Required changes, quoted verbatim: (1) "Report, in both the Abstract and the Results, that the community mean is an unweighted mean across species and is strongl”
- Stage started · Paper writingAttempt 4 · agent:claude-opus-5
- awaiting_agent · Paper writingcomplete response for paper_writing: paper_writing-complete-1.response.txt
- Resume requested
- Stage started · Paper writingAttempt 5 · agent:claude-opus-5
- Stage completed · Paper writing
- Stage started · ReviewAttempt 1 · agent:claude-opus-5
- awaiting_agent · Reviewcomplete_json response for review: review-complete_json-1.response.json
- Resume requested
- Stage started · ReviewAttempt 2 · agent:claude-opus-5
- Awaiting approval · Review
- Approved · Review
- Run completereport=/private/tmp/claude-501/-Users-haodingresearch-Desktop-auto-research/579004ae-5819-417d-918c-9d9409997567/scratchpad/studies/ecology-en/runs/ad88c89b80ff/REPORT.md