All 9 other K=10 parameters fixed at v7 iter 26 checkpoint. One full backward induction per grid point per group.
| c_change | LL | ΔLL from peak | n persons | Note |
|---|
Previous runs (before the zone-agnostic fix) built WORK states only at Person 0's zone. Workers at any other zone had their observed WORK steps silently dropped from Uobs. With WORK steps missing, the LL numerator had no penalty for excessive trip-chaining, and c_change drifted to −∞ to suppress V(s0).
After the zone-agnostic fix (v6/v7), WORK states are built at all 144 zones. Uobs now captures the actual switching costs on observed paths — creating a genuine signal in both numerator and denominator. This produces the well-defined peak here.
The gap is only 1.6 LL units across 569 persons (0.003 nats/person). BFGS with gradient clipping (norm ≤ 5) iterates in rescaled steps — when the full gradient vector is large, all components are proportionally shrunk. Near a ridge (c_change is correlated with delta and beta1_leis), the clipped steps can overshoot and settle in a nearby sub-optimal basin.
Warm-starting from the checkpoint gives BFGS a clean slate with the correct Hessian approximation rebuilt from scratch, allowing it to converge to the joint MLE in the c_change ∈ [−0.7, −0.5] region.
The right side (c_change → 0) drops far more steeply than the left. At c_change = −0.05, LL = −8337 — nearly as bad as c_change = −2.5. Near-zero switching costs allow the model to chain trips freely, inflating V(s0) while Uobs gains little (observed persons already face real switching costs).
This is a profile LL — 9 params fixed at v7 iter 26 values, only c_change swept. The joint MLE may differ slightly because c_change co-moves with delta (work utility), beta1_leis, and beta0_shop in the full optimization.
Nevertheless, the profile peak (−0.615) is a strong prior for the warm-start. The 1D profile surface being unimodal and well-separated from the HH prior confirms identification is not fragile.
After backward induction, a person contributes to the log-likelihood only if their observed path can be matched to the state-action graph and the graph's value function is finite at those states. Three structural reasons cause a skip:
| Skip type | Cause | Effect |
|---|---|---|
| A — No matched steps | Observed path states/actions not found in the zone-agnostic graph (e.g. activity type not modelled, discretization mismatch) | Zero valid (state, action) pairs → person excluded from LL sum |
| B — Home zone not in V | Person's home zone has no value function tensor — BI did not reach it (very rare; affects groups where that zone has no reachable states) | V(s₀) undefined → LL term undefined → person excluded |
| C — All V = −∞ | Matched states all have V = −∞ (BI converged to −∞ at those states; typically due to no feasible continuation path from those states) | LL numerator = −∞ → person excluded |
All parameters below were held constant throughout the scan. Only c_change was swept.
| Parameter | Value | Description |
|---|---|---|
| delta | 0.04739 | WORK/SCHOOL on-schedule marginal utility (per min) |
| alpha | 0.001581 | Earliness penalty rate |
| beta | 0.003045 | Lateness penalty rate |
| beta1_shop | 0.3563 | SHOPPING attractiveness × P_open sensitivity |
| beta0_shop | −0.3464 | SHOPPING base marginal utility (per min) |
| beta1_leis | 0.1814 | LEISURE attractiveness × P_open sensitivity |
| beta0_leis | −0.2189 | LEISURE base marginal utility (per min) |
| mu_home | 0.0 | HOME marginal utility (per min) — at data-driven zero |
| theta_travel | 0.9093 | Travel disutility scalar (1.0 = HH MNL baseline) |