Simon (1955) “On a Class of Skew Distribution Functions” — the printed Yule fits, recomputed

github.com/kenrinzero/simon-yule-fits — source, data, methods, tests and audit records.
Directed by Kenrin (@kenrinzero). Analysis by AI agents under his direction: Claude (Claude Opus 5.5), with a cross-family audit by Codex (GPT-6 Astra). Full attribution and independence record.

The headline, without the technical ledger

What we found

Herbert Simon’s 1955 paper fits the Yule distribution to word counts and to counts of authors by number of papers, using one stated recipe, and calls the fit “reasonably good”. Recomputed, no convention he states reproduces any whole column except Chicago’s, and his own reading of where the fit fails partly reverses under his recipe. On the source tables, the one-parameter Yule refitted by likelihood is rejected by a pre-registered test for three of his four author tables (an iid parametric bootstrap of the refitted model, not a test of his printed estimates). Power laws with an exponential cutoff fit three of the four better, and Simon’s own two-parameter generalization is the only model not rejected on Eldridge’s word count.

What is new here

Under his own stated recipe, Simon’s sentence that the estimates are “too high for the tails” in three of four cases becomes one of four. The printed f(2) cells run low, and since every printed “11 or more” cell is the remainder after rows 1–10, the shortfall lands in the tail by construction. No stated convention reproduces any whole column except Chicago’s (of 77 estimate cells, 62 are exact or reproduce under a stated convention, 4 are rounding slips, 11 reproduce under none), and the 1957 reprint in Models of Man prints all 152 table cells unchanged, slips included. These are reproducibility findings about a 1955 hand computation, with no motive inferred; a cross-family audit re-derived the tail arithmetic from the page.

Moments against likelihood

Simon’s recipe, α = n/k, is the method-of-moments estimate of the Yule ρ; the likelihood estimate sits below it on five of six data sets. Simulated at the real sample sizes, his constant-rate process (§II) did not produce that gap in 1,000 runs for any set. The declining rate of Simon and Van Wormer (1963) is consistent with the gap and the head shape for three of the four author sets, at one or two adjacent points of a fixed grid, and none of the six settings matches Chem. This stage had a same-family code audit only.

The fit and its rivals

Sichel’s 1985 parameter for the chemistry authors, as reported by Bogachev et al. (2023), is reproduced to its five reported decimals (θ = 0.968759). The extended negative binomial beats the Yule on Chem by ΔAIC 66.6, failing a prediction made before the fit; for Chem the cutoff result agrees with Sichel (as reported) and Smolinsky (2015), and the comparison on the other author tables is new. For Physicists the Yule is not rejected by the 11-cell test (p = 0.064, 32 of 500 bootstrap replicates; simulation interval 0.044–0.089), which does not show that it fits well: the supplementary KS test rejects it.

Word counts

On three recounts of Ulysses from Project Gutenberg — not a replication of Hanley’s 1937 index — Simon’s equation (4.2) is not rejected by the 11-cell test. Only the product cβ is identified: 0.145–0.162, compatible with his c ≈ 0.2 for suitable β. For Eldridge, cβ is about 0.02 but (4.2) is rejected. “ρ about one” holds on a binned log-log slope; by likelihood only narrowly for the recounts, and not for Eldridge.

What the headline does not mean

  • The goodness-of-fit test is an iid parametric bootstrap of a newly fitted Yule, not a test of Simon’s printed estimates or of his dependent growth process, and not the only reading of “reasonably good”.
  • Not rejecting a model is not evidence that it fits; 0 of 500 exceedances bounds the bootstrap probability only below about 0.006.
  • Most checks were fresh-context reviews by the same model family. One cross-family audit (Codex) re-derived the Stage 1 tail arithmetic from the page, the Stage 4 grade table from all 20,000 saved bootstrap replicates, the P7a and P20 fits and the 198 plotted values; it did not regenerate the bootstrap, certify every rival’s optimizer, or check the Stage 3 simulations, which had a same-family code audit only. Shared blind spots of one family are not ruled out.
  • The pre-registration’s frozen versions are checkable by anyone; the freeze times are attested only by the implementing session’s own log.