From 7b31a45d067c12c7135d161666a073c46b6ab321 Mon Sep 17 00:00:00 2001 From: John Stachurski Date: Wed, 15 Jul 2026 14:10:41 +0900 Subject: [PATCH 1/2] prob_dist: add motivating height example and Japan age distribution Rework the opening of the Probability Distributions lecture with two real-data illustrations: - Outline: histograms of US adult male/female heights (NHANES), fitted by a normal distribution, to motivate why a two-parameter density is a useful summary and why we study named distribution families. - Discrete distributions: the fraction of the Japanese population at each age (2024, Japanese nationals) as a first concrete PMF example. Data files are stored under _static/lecture_specific/prob_dist/ and read via relative paths for now; these should move to a canonical datasets repo and be referenced by stable URL once one exists (QuantEcon/meta#336). Co-Authored-By: Claude Opus 4.8 --- .../prob_dist/japan_population_by_age.xlsx | Bin 0 -> 20353 bytes .../prob_dist/us_adult_heights.csv | 10479 ++++++++++++++++ lectures/prob_dist.md | 101 +- 3 files changed, 10579 insertions(+), 1 deletion(-) create mode 100644 lectures/_static/lecture_specific/prob_dist/japan_population_by_age.xlsx create mode 100644 lectures/_static/lecture_specific/prob_dist/us_adult_heights.csv diff --git a/lectures/_static/lecture_specific/prob_dist/japan_population_by_age.xlsx b/lectures/_static/lecture_specific/prob_dist/japan_population_by_age.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..3fcb2a16fc92913c539f2564cf0c1eab0dca58d0 GIT binary patch literal 20353 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 Date: Wed, 15 Jul 2026 15:01:10 +0900 Subject: [PATCH 2/2] prob_dist: attribute Japan source and tidy fit-loop variable - Credit the Statistics Bureau of Japan for the age data. - Rename the height-fit loop variable data -> sample to avoid shadowing. Co-Authored-By: Claude Opus 4.8 --- lectures/prob_dist.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lectures/prob_dist.md b/lectures/prob_dist.md index dac89178..f94fadba 100644 --- a/lectures/prob_dist.md +++ b/lectures/prob_dist.md @@ -83,9 +83,9 @@ tags: [hide-input] --- fig, ax = plt.subplots() x_grid = np.linspace(130, 205, 200) -for data, color, label in ((male, 'C0', 'male'), (female, 'C1', 'female')): - ax.hist(data, bins=40, density=True, alpha=0.4, color=color) - u = scipy.stats.norm(data.mean(), data.std()) +for sample, color, label in ((male, 'C0', 'male'), (female, 'C1', 'female')): + ax.hist(sample, bins=40, density=True, alpha=0.4, color=color) + u = scipy.stats.norm(sample.mean(), sample.std()) ax.plot(x_grid, u.pdf(x_grid), color=color, lw=2, label=label) ax.set_xlabel('height (cm)') ax.set_ylabel('density') @@ -119,6 +119,8 @@ $$ For example, the next figure shows the fraction of people at each age in Japan in 2024 (Japanese nationals), from 0 to 100 and over. +The data come from the [Statistics Bureau of Japan](https://www.stat.go.jp/english/data/jinsui/index.html). + ```{code-cell} ipython3 --- mystnb: