SPB Git

spb/wp29_uqo

Public

# Report — F5-conf-03: sums of normal random variables

# Question

Decide whether (A) normal X and Y imply X + Y normal, and (B) independent normal X and Y imply X + Y normal. Prove the true one(s); give a concrete, simulated counterexample for the false one(s).

# Data and exclusions

data/propositions.csv (2 rows) and data/design.csv (2 rows; seed 20261029, n 100000) — n_input_rows. No data problems (data_issues is empty), no exclusions (out/exclusions.csv); the simulated sample has n_analysed = 100000 rows with random_seed = 20261029.

# Method

The verdicts come from mathematical argument (out/argument.md). For A, the counterexample is X ~ N(0,1), S an independent Rademacher sign, Y = S·X (counterexample_values.construction). out/analysis.py draws X and then S from numpy.random.default_rng(seed), writes out/counterexample.csv, and computes sample means and SDs (ddof=1) and the KS distance of x+y to the normal with its sample mean and SD. As a baseline for B, it then draws independent X, Y ~ N(0,1) from the same generator and computes the same KS statistic (baseline_independent_sum).

# Results

  • A is false (statement_true = false). Y = S·X is N(0,1) by symmetry, but X + Y = (1+S)X is 0 with probability 1/2 and 2X otherwise. That makes it a mixture with an atom and variance 2, so it is neither normal nor constant (counterexample_provided = true).
  • Simulated sample: mean_x −0.0033, sd_x 0.9982, mean_y −0.0002, sd_y 0.9982 (counterexample_values.mean_x/sd_x/mean_y/sd_y). The marginal KS distances to N(0,1) are 0.0028 and 0.0016 (counterexample_values.ks_x_vs_std_normal, ks_y_vs_std_normal), below the approximate 5% critical value 0.0043 (counterexample_values.ks_critical_5pct_approx).
  • Sum: mean −0.0036, sd 1.4059, against a theoretical √2 ≈ 1.414 (counterexample_values.mean_sum, sd_sum). KS to the fitted normal is 0.2508 (counterexample_values.ks_sum_vs_normal), in line with the theoretical lower bound of 1/4. A fraction of 0.50047 of the sums are exactly 0 (counterexample_values.frac_sum_exactly_zero).
  • B is true (statement_b_true = true): the characteristic-function proof is in argument.md. In the baseline with independent draws, KS of the sum is 0.0020 (baseline_independent_sum.ks_sum_vs_normal), about 125 times smaller than for the counterexample.

# Uncertainty

The verdicts are deductive and carry no statistical uncertainty. The simulated statistics are subject to Monte Carlo error of order 1/√n ≈ 0.003. The KS gap (0.25 vs a critical value ≈ 0.004) is far beyond sampling noise. The usual KS critical value is only approximate when parameters are estimated from the data, which does not affect the conclusion.

# Limitations and open issues

  • What the illustration shows: at the design n, the sample behaves as theory predicts. The marginals cannot be told apart from N(0,1) by KS, while the sum is grossly non-normal (an atom at 0 holding half the mass).
  • What it does not show: a finite sample cannot prove that the marginals are normal or that B holds. Those facts rest on the arguments in out/argument.md.
  • The extra diagnostics (marginal KS, fraction of zeros, approximate critical value) and the baseline_independent_sum block are supplementary keys added beyond the required schema.
Files · main
Menu

Theme