Week 8 — Data Lab · "Is the Bell Really There? The Penguins Meet the Normal Model"
Course: Introduction to Statistics (18-week generic edition)
Objective: Objective 5 (normal-distribution portion) — empirical rule, z-reasoning, assessing normality · SLO A (reason quantitatively from data)
Worth 50 points · Data labs group = 15% of the grade · Data Lab 8 · Due: end of Week 8
Format: a hands-on data lab — real research data, a spreadsheet, and the week's three normality checks run for real; then you catch the AI's mistakes when it interprets your work.
This is the course's signature weekly component. Every instructional week has a Data Lab: real, free, linked public data — nothing to buy, download from a store, or sign up for — worked in your spreadsheet, finished with an AI-critique step. Plan on 60–90 minutes.
Part 1 — The Big Picture
All week you've used the normal model on variables described to you as "approximately normal." Today you get the professional's job instead: real field data, no promises attached, and the question every analyst must answer before using a single z-based percentage — is the bell actually there?
You'll run the week's three checks — histogram shape, the actual percent within 1 and 2 SDs versus the empirical rule's 68/95, and a skew/outlier hunt — on our old friends: the 344 Palmer Station penguins from Data Lab 1. And here's the trap this lab is built around: you'll run the checks twice — once on all penguins pooled together, once on a single species — and the bell will treat the two runs very differently. Which penguins you pool decides whether the model fits. (That idea — a mixture of groups masquerading as one distribution — is the same lurking-grouping lesson from Week 4, now wearing a bell costume.)
Part 2 — The Task
The guiding question: Does penguin body mass follow a normal model — and does your answer change when you stop pooling three species into one column?
The dataset (both links are free, no login — the same dataset from Data Lab 1):
- About the data — palmerpenguins documentation
🔗 https://allisonhorst.github.io/palmerpenguins/
- The data itself (CSV file, opens as plain text)
🔗 https://raw.githubusercontent.com/allisonhorst/palmerpenguins/main/inst/extdata/penguins.csv
Part 3 — Materials & Procedure
You need: a web browser and a spreadsheet — Google Sheets (free) or Excel. Nothing else.
Warm-up (5 min, no dataset needed). Suppose a population of penguin body masses really were normal with mean 4,200 g and SD 800 g. Using only the empirical rule, write down: (a) the interval that should hold about 68% of masses, and (b) the interval that should hold about 95%. Keep your two intervals — you'll compare them to reality in a few minutes.
Now the real data:
- Import the dataset. Open the CSV link above in your browser, select all (Ctrl/Cmd-A), copy, paste into cell A1 of a blank sheet, then Data ▸ Split text to columns if needed. (Excel alternative: Data ▸ From Web, paste the CSV URL.) You should end with 8 columns and a header row:
species, island, bill_length_mm, bill_depth_mm, flipper_length_mm, body_mass_g, sex, year— body mass is column F. - Count your rows. In H1 type
=COUNTA(A2:A400)— it should return 344. In H2 type=COUNT(F2:F345)— it counts only numeric body masses and should return 342 (two penguins have NA for mass;COUNTskips them automatically, and so doAVERAGEandSTDEV). If either number differs, re-import before continuing. - Compute the full-column mean and SD. In I1:
=AVERAGE(F2:F345). In I2:=STDEV(F2:F345). Record both (1 decimal is fine). - Build the empirical-rule bounds. In I3:
=I1-I2(mean − 1 SD). In I4:=I1+I2. In I5:=I1-2*I2. In I6:=I1+2*I2. - Count how many penguins actually land inside. In I7:
=COUNTIFS(F2:F345,">="&I3,F2:F345,"<="&I4)— the count within 1 SD. In I8:=COUNTIFS(F2:F345,">="&I5,F2:F345,"<="&I6)— within 2 SDs. Convert to percents: I9:=I7/H2*100and I10:=I8/H2*100. - Draw the histogram. Select column F → Insert ▸ Chart → chart type Histogram. Look at it the way Segment 7 taught: one mound or more? symmetric or skewed? outliers? Write one honest sentence describing the shape.
- Now the single-species run. The CSV lists all Adélie penguins together in rows 2–153. Repeat the whole machine on just that block, in column K: K1
=AVERAGE(F2:F153)· K2=STDEV(F2:F153)· K3=K1-K2· K4=K1+K2· K5=K1-2*K2· K6=K1+2*K2· K7=COUNTIFS(F2:F153,">="&K3,F2:F153,"<="&K4)· K8=COUNTIFS(F2:F153,">="&K5,F2:F153,"<="&K6)· and the count of numeric masses K9=COUNT(F2:F153)(one Adélie mass is NA). Percents: K10=K7/K9*100and K11=K8/K9*100. - Histogram the Adélie block (select F2:F153 → Insert ▸ Chart ▸ Histogram) and describe its shape in one sentence.
- Fill in both scaffold tables in Part 4, then answer Part 5.
Fallback (no import available): if you can't get the CSV into a spreadsheet, use the 20-penguin table below (real Adélie masses from this dataset). Compute its mean and SD with
=AVERAGE/=STDEV(or a calculator's stats mode), build the mean ± 1 SD and mean ± 2 SD intervals, count by hand how many of the 20 values fall in each, and answer Part 5 for this mini-sample. State in your submission that you used the fallback.The table below lists the 20 fallback body masses (grams).
3750 3800 3250 3450 3650 3625 4675 3475 4250 3300 3700 3200 3800 4400 3700 3450 4500 3325 4200 3400
Part 4 — The Scaffold (complete both tables)
Table 1 captures the full-column (all 344 penguins) normality check.
| Quantity — all penguins | Value |
|---|---|
Rows of data (=COUNTA) |
______ |
Numeric body masses (=COUNT) |
______ |
| Mean body mass (g) | ______ |
| SD of body mass (g) | ______ |
| Count within mean ± 1 SD | ______ |
| Percent within 1 SD (empirical rule says ≈ 68%) | ______ |
| Count within mean ± 2 SDs | ______ |
| Percent within 2 SDs (empirical rule says ≈ 95%) | ______ |
| Histogram shape (one honest sentence) | ______ |
Table 2 captures the same check for the Adélie-only block (rows 2–153).
| Quantity — Adélie only | Value |
|---|---|
Numeric Adélie masses (=COUNT) |
______ |
| Mean body mass (g) | ______ |
| SD of body mass (g) | ______ |
| Percent within 1 SD (vs. ≈ 68%) | ______ |
| Percent within 2 SDs (vs. ≈ 95%) | ______ |
| Histogram shape (one honest sentence) | ______ |
| Verdict: is a normal model reasonable here? (yes/no + one reason) | ______ |
Part 5 — Analysis Questions
Answer in 1–3 sentences each:
- Compare your warm-up intervals (from the N(4200, 800) model) to the real full-column bounds your spreadsheet built. Close or far? What does that tell you about how well the textbook-style model anticipated the real data's center and spread?
- For the full column, your percent within 1 SD probably landed near 68 — yet your histogram almost certainly does not show one clean symmetric bell (look for the heavier right side where the Gentoos live). What does this pair of facts teach about relying on one check alone?
- For the Adélie-only block: make the call. Using all three checks (shape, 68/95 percents, outlier hunt), would you sign off on using a normal model — and z-based percentages — for Adélie body mass? Defend your verdict in plain language.
- Error hunt: name one specific way this analysis could quietly go wrong in the spreadsheet — for example, what the two NA cells would do if you divided your counts by 344 instead of
=COUNT's value, or what including header row 1 in a range would do. How would you catch your chosen error? - The bridge: next week's midterm caps the course's first half, and the review roadmap calls this week's normal model "the bridge into the second half." Based on this lab, explain in one or two sentences why a model can be useful even when it's only approximately right — and what you now check before trusting it.
Part 6 — AI-Critique Moment (required — the BYOAI step)
Now bring in your chatbot and be the analyst who checks its work.
- Paste your completed Table 1 and Table 2 into your chatbot and ask: "Based on these numbers, are the full dataset and the Adélie subset approximately normal? Check my percentages against the empirical rule, and tell me what the z-score of a 5,000 g penguin would be in each group."
- Check everything it says against your own work:
- Did it quote any z-table area from memory? Spot-check against the friendly table in Chapter 8 — memory-quoted areas routinely drift by a digit.
- Did it redo your percent arithmetic correctly (counts ÷ the=COUNTvalue, not ÷ 344)? Recompute one percent yourself.
- Did it call the pooled column "normal" just because one percentage sat near 68 — or did it weigh the histogram shape (a mixture of three species) too?
- Did it handle the two z-scores correctly — (5,000 − mean) ÷ SD with each group's own mean and SD — and does its claim match your numbers? (Watch for it silently using a population-style SD or "correcting" your=STDEVvalue.) - Write 2–3 sentences reporting what the AI got right and at least one thing you had to correct, question, or verify. If it happened to get everything right, say how you verified each claim — that's the skill.
The habit all term: the tool drafts, you judge. A chatbot will confidently mis-quote a table, bless a lumpy histogram as "normal," or fumble a percent — catching it is the point.
Part 7 — What to Submit
One document or text entry containing: your warm-up intervals, your completed Table 1 and Table 2, your Part 5 answers (1–5), and your Part 6 AI-critique paragraph. Due at the end of Week 8 · 50 points (rubric below the key).
Instructor answer key & model values — REMOVE BEFORE PUBLISHING TO STUDENTS
Students all work the same fixed dataset this week, so the computed values below are checkable — but grade the analysis and the verdicts, not decimal-matching: rounding differences and import quirks are fine. Every number below was pre-computed from the linked CSV and independently re-verified by script (
tools/checks/w08_math.py).
Warm-up (fixed — every student should match): N(4200, 800) → 68% interval 3,400 to 5,000 g (4200 ± 800); 95% interval 2,600 to 5,800 g (4200 ± 1,600). ✓
Dataset facts (verified against the linked CSV): 8 columns with headers exactly species, island, bill_length_mm, bill_depth_mm, flipper_length_mm, body_mass_g, sex, year; 344 data rows; 342 numeric body masses (2 NA); species blocks are contiguous — Adélie rows 2–153 (152 penguins, 151 numeric masses), Gentoo rows 154–277, Chinstrap rows 278–345; first data row is an Adélie from Torgersen Island (mass 3750 g); all masses are multiples of 25 g, min 2,700, max 6,300.
Table 1 model values (full column, n = 342):
| Quantity | Verified value |
|---|---|
| Mean | 4,201.75 g (students will see ≈ 4,201.8) |
SD (=STDEV, sample SD) |
801.95 g |
| Bounds ± 1 SD | 3,399.8 to 5,003.7 |
| Count / percent within 1 SD | 231 / 342 = 67.5% (vs. 68) |
| Bounds ± 2 SD | 2,597.8 to 5,805.7 |
| Count / percent within 2 SDs | 333 / 342 = 97.4% (vs. 95) |
| Histogram shape | right-skewed with a second bump in the 5,000s (the Gentoos) — not one symmetric bell |
Table 2 model values (Adélie rows 2–153, n = 151):
| Quantity | Verified value |
|---|---|
| Mean | 3,700.66 g |
| SD | 458.57 g |
| Percent within 1 SD | 99 / 151 = 65.6% (vs. 68) |
| Percent within 2 SDs | 146 / 151 = 96.7% (vs. 95) |
| Histogram shape | one roughly symmetric mound — bell-plausible |
| Verdict | Yes, reasonable — all three checks pass acceptably; accept a defended "close enough with caveats" |
Fallback table (if used): n = 20, sum 74,900 → mean 3,745 g exactly; SD ≈ 437.8 g; within 1 SD (3,307.2–4,182.8): 12/20 = 60%; within 2 SDs (2,869.4–4,620.6): 19/20 = 95%. Small samples wobble — grade the method and the honest comparison, not proximity to 68.
Part 5 expected answers:
1. Warm-up N(4200, 800) lands remarkably close to the real mean (≈ 4,201.8) and SD (≈ 802) — the model anticipated center and spread well. The point: a two-number model can summarize 342 measurements startlingly efficiently.
2. The pooled column passes the 68% check (67.5%) while overshooting the 95% check (97.4%) and failing the shape check — a mixture of three species is not one bell. Lesson: one passed check is evidence, not proof; the checks work as a panel, and the histogram gets a veto.
3. Adélie-only: one symmetric mound, 65.6% vs. 68 and 96.7% vs. 95, no extreme outliers → a normal model is a defensible judgment call. Full credit for either "yes" or a hedged yes with the three checks cited; a bare unexplained verdict earns little.
4. Any concrete, checkable error: dividing by 344 instead of 342 (inflating nothing visibly but quietly wrong — the percents shift by ~0.4 points), including the header in a range, COUNTIFS bounds typed as numbers with the & dropped, or sorting one column without its neighbors (Week 1's lesson). Full credit requires how they'd catch it (e.g., =COUNT cross-check, recomputing one value by hand).
5. Any answer connecting "approximately right is still useful" to the checks: the model compresses reality into two numbers and gives percentages that are close when the shape cooperates — so the professional habit is to check shape first, then trust, and Week 10 will lean on exactly this model for sample means.
AI-critique full credit: names a specific claim checked or corrected — most commonly a memory-quoted z-area that misses the friendly table's value, a percent recomputed against the wrong denominator (344 vs. 342), a "looks normal to me" verdict on the pooled mixture, or a z for 5,000 g computed with the wrong group's mean/SD (correct values: full data z = (5000 − 4201.75)/801.95 ≈ 1.0; Adélie z = (5000 − 3700.66)/458.57 ≈ 2.8 — an ordinary-ish Gentoo-range mass overall, but an extreme mass for an Adélie). Zero credit for "the AI agreed with everything" with no evidence of checking.
Grading rubric — 50 points
The rubric below maps each part to its points; bands are full / partial / none.
| Criterion | Full | Partial | None |
|---|---|---|---|
| Warm-up + import — both empirical-rule intervals correct (3,400–5,000; 2,600–5,800); 344/342 confirmed (5) | 5 | 3 | 0–1 |
| Full-column check (Table 1) — mean/SD/bounds/counts/percents computed as specified; honest shape sentence (10) | 10 | 5–8 | 0–4 |
| Adélie check (Table 2) — subset computed correctly (151 denominator); percents; shape; a defended verdict (10) | 10 | 5–8 | 0–4 |
| Analysis questions — Q1–Q5 hit the expected ideas, especially the one-check-isn't-proof insight (Q2) and the defended verdict (Q3) (15) | 15 | 8–12 | 0–6 |
| AI-critique — specific catch or verification reported in 2–3 sentences (10) | 10 | 5–7 | 0–4 |
Quality gate (self-checked): warm-up arithmetic re-verified (4200 ± 800; 4200 ± 1600); dataset links live and free (documentation page + raw CSV both load without login); row count, column names, species-block rows, and every model value above verified against the fetched CSV and re-verified in tools/checks/w08_math.py (mean 4,201.75 / SD 801.95 / 231 / 333 / Adélie 3,700.66 / 458.57 / 99 / 146; fallback mean 3,745 / SD 437.8 / 12 / 19); no numeric claim in the key depends on an unverified dataset-wide value; no graded-item leakage (no quiz/assignment/practice item uses the penguins data); rubric sums 5 + 10 + 10 + 15 + 10 = 50. ✓