SPB Git

spb/wp29_uqo

Public

# F5-conf-03 — Sums of normal random variables

# Question

Two propositions are given in data/propositions.csv:

  • A: if X and Y are each normal, then X + Y is normal. A constant counts as a degenerate normal.
  • B: if X and Y are independent and each normal, then X + Y is normal.

For each one, decide whether it is true or false. For a false proposition, give a concrete counterexample and illustrate it numerically.

# Data and exclusions

  • propositions.csv: 2 rows (A and B).
  • design.csv: 2 rows, giving seed = 20261029 and n = 100000.

No rows were excluded and no data problems were found (data_issues = []).

# Method

The verdicts rest on mathematical proof, which is set out in full in out/argument.md:

  • A is false. Counterexample: X ~ N(0,1), W an independent random sign, Y = W·X. Y is N(0,1) because the N(0,1) law is symmetric. But X + Y = (1+W)X has an atom of mass 1/2 at 0 and is not constant, so it is neither a non-degenerate nor a degenerate normal.
  • B is true. Under independence the characteristic functions multiply, and Lévy's uniqueness theorem then gives X + Y ~ N(μ₁+μ₂, σ₁²+σ₂²).

The numerical illustration uses numpy.random.default_rng(20261029):

  • It draws n = 100000 values of x ~ N(0,1), then independent signs w, and sets y = w·x. The (x, y) pairs are written to out/counterexample.csv.
  • It reports sample means and standard deviations (ddof = 1) of x, y and x + y.
  • It computes the KS distance between x + y and the normal with the sample mean and sd of x + y, as required.
  • As extra diagnostics, it computes the KS distances of x and y from N(0,1) and the share of exact zeros in x + y.

Running out/analysis.py regenerates everything deterministically.

# Results

quantity value
verdict A (statement_true) false
verdict B (statement_b_true) true
mean_x, sd_x −0.0033, 0.9982
mean_y, sd_y −0.0002, 0.9982
mean_sum, sd_sum −0.0036, 1.4059 (theory: 0, √2 ≈ 1.414)
KS(x vs N(0,1)), KS(y vs N(0,1)) 0.0028, 0.0016
share of x + y exactly 0 0.5005 (theory 0.5)
KS(x + y vs fitted normal) 0.2508
approx. 5% KS critical value, 1.358/√n 0.0043
  • Marginals: the KS distances of x and y from N(0,1) are below the critical value, which is consistent with normality.
  • Sum: the sum departs from normality by a wide margin. Half of the sum's mass sits exactly at 0, and its KS distance is about 58 times the critical value.

# Uncertainty

  • The verdicts are mathematical facts and carry no sampling uncertainty.
  • Sampling variation affects only the summary numbers; for example, the share of zeros has standard error √(0.25/n) ≈ 0.0016.
  • The KS critical value above is the textbook figure for a fully specified null. Because the comparison normal for the sum was fitted to the same data (Lilliefors setting), the true critical value is smaller, which only strengthens the rejection.

# Limitations and open issues

  • What the illustration does not show: a finite sample cannot prove that the marginals are exactly normal, and it does not prove the verdicts. The proofs are in out/argument.md.
  • What it does show: the simulated construction behaves as the proof predicts. The marginals look normal at n = 100000, and the sum is clearly non-normal, with an atom at 0 of about half the mass.
  • Choice of counterexample: this is one of many possible counterexamples. Another is Y = X when |X| ≤ c and Y = −X otherwise. The random-sign version was chosen because its departure from normality is the most visible.
  • Extra keys: a few diagnostic keys were added inside counterexample_values (marginal KS distances, share of zeros, critical value) alongside the required ones.
Files · main
Menu

Theme