# F5-conf-03 — Sums of normally distributed random variables ## Question Proposition A says that if X and Y are each normal, then X+Y is normal, with a constant counting as a degenerate normal. Proposition B says the same when X and Y are also independent. For each proposition the question is whether it is true or false. A true proposition needs a proof sketch; a false one needs a concrete, simulated counterexample. The full argument is in `out/argument.md`. ## Data and exclusions - `data/propositions.csv`: 2 rows. `data/design.csv`: 2 rows, giving seed 20261029 and n = 100000 (`n_input_rows`, `random_seed`, `counterexample_values.n`). - No data issues were found (`data_issues` = []). The SHA-256 hashes match the bundle (see `out/state/data_audit.md`). - Nothing was excluded (`out/exclusions.csv`). The analysed sample is the full simulated sample, n = 100000 (`n_analysed`). ## Method - **The verdicts come from the mathematics, not the simulation.** - B is proved with characteristic functions: under independence they multiply, and the product of two normal characteristic functions is again a normal characteristic function. - A is refuted with this construction: X ~ N(0,1), S an independent random sign (±1 with probability 1/2 each), and Y = S·X (`counterexample_values.construction`). Y ~ N(0,1) because N(0,1) is symmetric. X+Y = (1+S)X equals 0 with probability 1/2 and 2X otherwise. That law has an atom at 0, which no non-degenerate normal has, and it is not constant (variance 2). So X+Y is not normal. - **Numerical illustration.** `out/analysis.py` draws n pairs with `numpy.random.default_rng(seed)` and writes them to `out/counterexample.csv`. - It reports sample means and SDs (ddof = 1) of x, y and x+y. - It reports the KS distance between x+y and the normal with the same sample mean and SD. - Supplementary checks are under `numerical_checks`. One of them is a baseline for B: a separate stream of independent N(0,1) pairs, seeded with [seed, 1], whose sum is compared with N(0,2). ## Results - **Proposition A is false** (`statement_true` = false). A concrete counterexample is provided (`counterexample_provided` = true). - **Proposition B is true** (`statement_b_true` = true). - **Simulated counterexample (n = 100000, seed 20261029):** - Marginals: 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`). These match N(0,1). - KS distances of the marginals from their fitted normals are 0.0021 (x) and 0.0020 (y) (`numerical_checks.ks_x_vs_fitted_normal`, `numerical_checks.ks_y_vs_fitted_normal`). - KS p-values against N(0,1) are 0.40 (x) and 0.95 (y) (`numerical_checks.ks_x_vs_N01_pvalue`, `numerical_checks.ks_y_vs_N01_pvalue`). - Sum: mean_sum = -0.0036 and sd_sum = 1.4059 (`counterexample_values.mean_sum`, `.sd_sum`); the theoretical SD is √2 ≈ 1.414 (`numerical_checks.theoretical_sd_sum`). - The share of sums exactly equal to 0 is 0.50047 (`numerical_checks.frac_sum_exactly_zero`), against a theoretical 0.5. - The KS distance of the sum from its fitted normal is 0.2508 (`counterexample_values.ks_sum_vs_normal`). That is about 120 times the distance for the marginals, and close to the theoretical value of about 0.25 (half of the jump of 1/2 at 0). Its p-value is 0.0 to machine precision (`numerical_checks.ks_sum_vs_fitted_normal_pvalue`). - **Baseline for B:** the sum of independent normals is at KS distance 0.0024 from N(0,2), p = 0.62 (`numerical_checks.propB_ks_sum_independent_vs_N02`, `numerical_checks.propB_ks_pvalue`). This is consistent with B. - **Feasibility:** complete (`feasibility`). ## Uncertainty - The truth values are proved, so they carry no statistical uncertainty. - The simulated statistics do have Monte Carlo error. With n = 100000 the standard error of a sample mean is about 0.003 for x and 0.0045 for x+y, so the observed means are within about 1 SE of 0. - A 95% KS critical value at this n is about 0.0043. The marginal distances fall below it; the sum's distance (`counterexample_values.ks_sum_vs_normal`) is about 58 times larger. - When the normal's parameters are estimated from the data, the standard KS p-values are conservative (Lilliefors issue). That cannot change the conclusion for a distance of 0.25. ## Limitations and open issues - **What the illustration shows:** with the prescribed seed and n, the sampled marginals look like N(0,1), while the sum has a point mass of about one half at 0 and is far from any normal. - **What it does not show:** it does not prove that the marginals are exactly normal, that the sum is non-normal, or that B holds. A finite sample cannot establish a distributional identity. Those facts rest on the arguments in `out/argument.md`. - KS p-values with estimated parameters are only approximate. - Many other counterexamples exist; for example, Y = X when |X| ≤ c and Y = −X otherwise. The random-sign construction was chosen because its departure from normality (an atom of mass 1/2) is obvious at any sample size. - No open issues remain.