The results, as reported, are not statistically significant.
We can arrive at this conclusion (and better understand how it is meant to be interpreted) in steps. The first step is to take to heart Scortchi's comment,
Beware of data dredging.
This is the process of looking for "patterns" in data, finding one, and then applying a formal statistical test to determine its "significance." This would be an abuse of statistical testing, as has been amply explained and demonstrated in many places.
The second step is to ask whether the pattern found in these data is nevertheless so striking that it would be reasonable to take it as evidence of a meaningful variation in birth month. Some patterns are perfectly obvious, no matter what! Let's screen the results, using crude approximations and statistical models, to see how strong the results might be. Suppose that
The data could be conceived of as a random, representative sample of a well-defined population, such as "all champion professional boxers." Although this is obviously not a random sample, it is plausible to treat it as if it were, at least for these screening purposes.
Birth months are divided into four contiguous non-overlapping seasons (without reference to the data values).
As a null hypothesis (tentatively held, to be evaluated in light of the data), all variation observed in these seasonal totals is random.
With these assumptions, the count for any individual season has a Binomial$(67, 1/4)$ distribution. A Normal approximation to this distribution, which has a mean of $67/4\approx 17$ and standard deviation of $\sqrt{67(1/4)(1-1/4)}\approx 3.5$, suggests that values within a couple SDs of the mean should be expected as a result of sampling variation. This is the interval $[10, 24]$, having a width of $14$ (equal to $21\%$ of the total).
Although the quoted statistic of $40\% - 12\%$ = $28\%$ for the range, equal to $19$, is larger than $14$ (and therefore on the high side), it isn't that high. Variations in natural birth rates as well, variations in the lengths of quarters (which range from $90$ to $92$ days), and the fact there are $12$ (not just $4$) possible three-month sequences to look at, all suggest that $19$ might be on the margin of being statistically significant.
This takes us to the third step: let's try to reproduce the data evaluation that actually occurred. If one were exploring birth date data to look for patterns, the most powerful methods would look at individual dates. I will suppose, though, that this was not performed and that initially dates were summarized by month. One might then plot frequencies by month and look for patterns of highs and lows, much as described in the question. Plausibly, such a "pattern" would consist of some contiguous series of months with high average counts and some other contiguous series of months with low average counts.
We could generously characterize this search for patterns as a systematic statistical procedure. One way would be to look for statistically significant differences (at some desired level $\alpha$, such as $\alpha = 0.05 = 5\%$) among the individual months. If such differences did not appear, one would look for significant differences among windowed monthly sums using a two-month window, then a three-month window, and so on. (It is intuitively obvious that no more information is gained beyond a six-month window.)
The statistic for this procedure will be a vector $\mathbf t = (t_1, t_2, \ldots, t_6)$ giving the observed ranges of windowed means for windows of lengths $1, 2, \ldots, 6$ months. For, example, consider these simulated monthly counts (which occurred in the second of $1,000,000$ iterations of this experiment):
Mar Apr May Jun Jul Aug Sep Oct Nov Dec Jan Feb
0 8 8 10 9 5 3 6 5 7 3 3
Their range is $t_1 = 10 - 0=10$. Their two-month sums (given by Mar+Apr, Apr+May, ..., Jan+Feb, Feb+Mar) are
8 16 18 19 14 8 9 11 12 10 6 3
The range of those is $t_2 = 19-3=16$. Continuing like this through the six-month sums gives the vector of ranges
$$\mathbf t = (10,16,21,22,22,19).$$
Such a statistic will be considered "significant" if, as one scans through it, any of its components $t_k$ is in the critical region for a size-$\alpha$ test for windowed sums of width $k$. Because we are looking at ranges, the critical region of unusually high ranges for each $k$ can be described by a single number $c_k$. If any of the $t_k$ exceed $c_k$, one would have noticed a "pattern."

Marginal distributions of the ranges for windowed sums with $67$ total observations were computed by simulating $1,000,000$ samples. The observed value of $19$ is somewhat rare, as seen by its position in the tail of the "Window Width 3$ plot, but in the context of the overall search for patterns it does not appear unusual, as explained below.
Because multiple, interdependent tests are performed on the same data, the actual test size will not be the same as the nominal size of $\alpha$. The error rate will be inflated due to the repeated "dredging" that occurs during this six-step process. Simulation helps us estimate that error rate. For instance, when running all six steps at a nominal level of $\alpha=0.05$, simulations show that fully ten percent of perfectly random results appear to be "significant." To compensate for this inflation, I performed a search to find a smaller nominal $\alpha$ that leads to a five percent error rate. Based on a simulation of $1,000,000$ samples, the nominal $\alpha$ must be very close to $0.0254$. Using it, the critical vector is
$$\mathbf c = (c_1, c_2, \ldots, c_6) = (12, 16, 19, 20, 22, 23)$$
and the actual (Type I) error rate is $0.048\approx 5\%$. (It is not possible to hit $5\%$ exactly due to the discrete nature of the distribution.)
The one thing we know about the actual data is that $t_3 = 19$. Because this does not exceed $c_3$, we do not reject the null hypothesis. In other words, none of the information disclosed in the question is strong enough to convince us of the need for any explanation of the data behavior beyond natural, random chance variation.
The fourth step is to consider whether the previous conclusion should be modified due to departures between reality and our models of the data and the data-exploration process. The binomial model is fairly good: it accounts adequately for major behaviors in birth rates (but ignores small fluctuations in overall birth rates in the population and temporal correlation in those rates). The sequential pattern-seeking model is likely inadequate: it cannot reflect all the different ways these data might have been looked at to seek patterns. Both limitations of the models suggest they are not sufficiently conservative. We should therefore require strongly significant results before we are comfortable concluding that there is any temporal pattern to professional boxing birth rates at all.
One could conduct more powerful exploration of these data, but given that they have already been worked over so well, it seems unlikely that any new results would be strong enough to change our negative conclusion. The best use of these data might be to provide corroborative evidence to support conclusions from another related dataset that is carefully and formally evaluated.
R
code to reproduce the simulation.
It requires about one second per $100,000$ iterations. Set n.iter
accordingly.
#
# Precalculate coefficients for a width-k circular neighborhood sum.
#
focal.coeff <- function(n, k) {
outer(1:n, 1:n, function(i,j) {
m <- (j - i + floor((k-1)/2)) %% n
0 <= m & m < k
})
}
#
# Return days per month.
#
month.days <- function() {
months.per.year <- 12
days.per.year <- 365.25
days.per.month <- ceiling(days.per.year / months.per.year)
# This is the pattern:
d <- round(days.per.month - (((1:months.per.year-1) * 3) %% 5) / 5, 0)
# Adjust the last month to correct the total:
d[months.per.year] <- days.per.year - sum(d) + d[months.per.year]
names(d) <- c("Mar", "Apr", "May", "Jun", "Jul", "Aug",
"Sep", "Oct", "Nov", "Dec", "Jan", "Feb")
return(d)
}
#
# Multinomial simulation.
#
set.seed(17)
size <- 67
n.iter <- 1e6
p <- month.days()
x <- matrix(rmultinom(n.iter, size, p), nrow=length(p), dimnames=list(names(p)))
#
# Find the ranges of windowed sums.
#
m <- floor(length(p)/2)
ranges <- matrix(NA, m, n.iter)
for (k in 1:m) {
stats <- apply(focal.coeff(dim(x)[1], k) %*% x, 2, range)
ranges[k, ] <- stats[2, ] - stats[1, ]
}
#
# Study them.
#
# par(mfrow=c(2,3))
# range.max <- max(ranges)
# colors <- hsv(0:(m-1)/m, 0.7, 0.8)
# invisible(sapply(1:m, function(k)
# hist(ranges[k, ], breaks=(0:range.max)+1/2, xlim=c(0, 32),
# border="#e0e0e0", col=colors[k],
# xlab="Range", freq=FALSE,
# main=paste("Window width", k))))
#
# Critical values.
#
alpha <- 0.0254
(critical.values <- apply(ranges, 1, quantile, probs=1-alpha))
#
# Sequential error rates.
# The Type I error rate is the maximum of these six rates.
#
(rowMeans(apply(ranges > critical.values, 2, cumsum) > 0))
[self-study]
tag & read its wiki. $\endgroup$