Lesson 20 — Measuring rates across sliding intervals
BIO 202, Spring 2026, draft v0. Unit 4 opens with deep time. Rates of evolution change with the interval you measure across — and that's not a bug, it's the signal.
Draft skeleton. Stage scenarios and anchor quotes are in place; the simulator and code panels are not yet wired.
Siccar Point plays a big role in the history of geology — which means it has a big role in the history of the Industrial Revolution and economics in general. It also has a huge role in biology. This is where deep time was discovered. Charles Darwin, trained as a geologist, learned about this and studied with Adam Sedgwick. He understood the geological principles of Siccar Point, and that led him to understand deep time — which led to the theory of evolution.
— 312_lec_strat2_01
A — Rate = distance / time
Simulate a trait under Brownian motion. Measure the rate of change across a 1-generation interval, a 100-generation interval, a 10,000-generation interval. The numbers come out very different. Why?
If I told you a car was driving at 50 mph and has gone 100 miles, how long ago did it leave? You have a distance and a speed — distance divided by speed gives you time. Number of mutations is your distance. The slope of mutations versus time is your speed. Number of mutations divided by slope gives you time to most recent common ancestor.
— 202_lec20_02
10,000 generations of a Brownian-motion trait. Slide the interval length and watch the median measured rate (per generation) fall as the interval grows. This is the Gingerich decline, from one simulated lineage.
median rate at this L:—
Top: the simulated trait trajectory with two endpoints L apart highlighted. Bottom: rate distribution across all non-overlapping L-windows. As L grows, the rate distribution slides toward zero — the Brownian-motion lineage's apparent speed drops as you ask about it over longer windows.
B — Gingerich's decline
Across many species and many studies, rates of evolution decline with the interval length. The pattern is real and dependable. Show three datasets: LTEE bacteria at three interval lengths, Grant finches at 1 year, Hyopsodus over 0.5 MY. Watch them land on the same decline curve.
A lot of solids can flow more than you'd expect. You see this with windows in really old buildings — sometimes there's a thickening at the bottom. Some of it is just because they used to make windows thicker at the bottom. Some of it is that non-crystalline solids can flow a bit more than people realize. There's still motion.
— 312_lec02_03
TODO: multi-dataset rate-vs-interval plot. LTEE, Grant finches, PETS Hyopsodus.
C — Why does the rate decline?
Specify the test that distinguishes the explanations: (1) sampling — rare big moves cancel out over longer intervals; (2) reversal — the trait wanders, doesn't accumulate directionally; (3) the fossil record samples non-randomly. Run the simulator with each cause turned on and see which fits the empirical decline.
A lot of Permian things we have fossils of were burrowers. That's not necessarily because Permian things burrowed more than things today. Maybe they did, maybe they didn't. But think about how a fossil is made — something dies and gets buried. If you die in your burrow, you've skipped a step. You're already buried. So burrowers fossilize more easily. All else being equal, if you live underground, you have an easier time ending up underground when you're dead.
— 440_lec11_04
TODO: causes-of-rate-decline simulator. Three toggles (reversal, sampling, biased preservation); fit to the Gingerich curve.
D — The PETS time series — Hyopsodus across the Eocene
Run the rate analysis on data/clean/pets_timeseries.csv. Sliding windows of 0.5, 1, and 5 MY. Reproduce Gingerich's rate-vs-interval decline from one lineage.
We don't know about the alpine dinosaurs. We don't know about the rainforest dinosaurs. Those are not environments where sediments get preserved. We know about river delta dinosaurs. We know about swamp dinosaurs. We know about coastline dinosaurs.
— 312_lec22_03
TODO: load pets_timeseries.csv; sliding-window rate computation; .R export. Non-trivial code mod: bootstrap the rate-vs-interval slope and report its CI.