SPB Git

spb/wp29_uqo

Public
5.3 KB · 43 lines markdown
1# F5-conf-04 — VFI against the closed-form policy (log-utility optimal growth)23## Question4A planner maximises Σ β^t ln c_t subject to y_{t+1} = (y_t − c_t)^α (Cobb–Douglas, full depreciation, productivity 1). We derive the closed-form policy and value function, solve the Bellman equation numerically by value-function iteration (VFI) on the prescribed grid, and compare the two at y = 0.5, 1, 2 (policy) and y = 1 (value).56## Data and exclusions7Only `data/model.csv` (10 parameter rows, `n_input_rows`; SHA-256 checked, see `out/state/data_audit.md`): α = 0.36, β = 0.95, 400 grid points log-spaced on [0.05, 5] (`grid_points_used` = `n_analysed` = 400), tolerance 1e-8. No rows excluded (`out/exclusions.csv`). One design issue (`data_issues`): the evaluation points 0.5, 1, 2 are not grid nodes (log step = `diag_grid_log_step` ≈ 0.01154), so the VFI policy and value are linearly interpolated in ln y between adjacent nodes, as TASK.md allows. No other deviation from the prescribed design.89## Method10**Closed form (guess and verify).** Assumptions: log utility, Cobb–Douglas technology y' = k^α with 0<α<1, full depreciation, productivity 1, 0<β<1, interior solution 0<c<y. Guess V(y) = A + B ln y. The FOC of max_c {ln c + β(A + Bα ln(y−c))} gives 1/c = αβB/(y−c), i.e. c = y/(1+αβB). Matching the coefficient on ln y gives B = 1 + αβB ⇒ B = 1/(1−αβ), hence1112 c(y) = (1 − αβ) y,  savings rate (y−c)/y = αβ,13 A = [ln(1−αβ) + (αβ/(1−αβ)) ln(αβ)] / (1−β).1415With α=0.36, β=0.95: B = `diag_closed_form_B` ≈ 1.5198, A = `diag_closed_form_A` ≈ −19.524. The solution was verified numerically as a Bellman fixed point by independent continuous maximisation (`out/state/checks.md`, check 4). The interior solution holds for every y>0 because c/y = 1−αβ ∈ (0,1).1617**Contraction.** The Bellman operator T satisfies Blackwell's sufficient conditions on bounded functions: monotonicity (V ≤ W ⇒ TV ≤ TW) and discounting (T(V+a) = TV + βa). Hence it is a contraction in the sup norm with modulus β (`contraction_modulus` = 0.95). On the finite grid with discrete choice, utility is bounded, so this applies directly to the discretised operator, guaranteeing a unique fixed point and geometric convergence from any start.1819**VFI.** State: the 400 log-spaced y nodes. Control: next-period output y' chosen from the same grid, with consumption c = y − y'^{1/α} (infeasible pairs c ≤ 0 excluded). V_0 = 0; iterate V_{n+1}(y) = max_{y'} {ln c + β V_n(y')} until sup|V_{n+1} − V_n| < 1e-8. The policy c(y) on the grid comes from the argmax of the converged VFI (never from the closed form), then is interpolated linearly in ln y at the evaluation points. Choice-grid bounds never bind (`diag_choice_bound_binds` = 0). No randomness (`random_seed` = null). Baseline: the closed-form savings rate (`baseline_savings_rate_closed_form`).2021## Results22| y | closed form c | VFI c |23|---|---|---|24| 0.5 | 0.3290 (`c_closed_y05`) | 0.32882 (`c_num_y05`) |25| 1.0 | 0.6580 (`c_closed_y1`) | 0.65899 (`c_num_y1`) |26| 2.0 | 1.3160 (`c_closed_y2`) | 1.30963 (`c_num_y2`) |2728- Maximum absolute policy discrepancy over the three points: 0.00637 units of output (`max_abs_error_policy`), attained at y = 2 (≈0.5% relative).29- V(1): closed form −19.52441 (`value_closed_y1`), VFI −19.52476 (`value_num_y1`); gap ≈ 3.4e-4 utils.30- Closed-form savings rate αβ = 0.342 (`savings_rate_closed_form`); the average VFI savings rate over grid nodes is 0.34202 (`diag_mean_savings_rate_num_grid`).31- VFI converged in 361 iterations (`n_iterations`) with final sup-norm change 9.997e-9 (`final_sup_change`) < 1e-8.32- Over all grid nodes: max |V_num − V_closed| = 4.8e-4 (`diag_max_abs_value_error_grid`), max |c_num − c_closed| = 0.0251 (`diag_max_abs_policy_error_grid`).3334## Uncertainty35The problem is deterministic; there is no sampling uncertainty. The only errors are numerical:36(i) stopping error: by the contraction property, ‖V_n − V*_grid‖ ≤ β/(1−β)·`final_sup_change` ≈ 1.9e-7 (`diag_stopping_error_bound`), negligible relative to (ii);37(ii) discretisation error: the control y' is restricted to grid nodes (log step ≈ 0.0115), so the chosen y' can be off by up to half a step in ln y', which shifts consumption by roughly (k/α)·Δln y'/2 — growing with y (hence the largest error at y = 2 and the larger grid-wide max at high y); plus linear interpolation error between nodes at the evaluation points. The value function is much more accurate than the policy (envelope/first-order-condition argument: value errors are second order in policy errors).3839## Limitations and open issues40- Scope of the validation: one parameter point (α=0.36, β=0.95), one grid (400 log-spaced points on [0.05, 5]), discrete choice on the same grid, linear interpolation in ln y. The discrepancy figures are specific to this design; they would shrink with a finer grid or a continuous-choice (interpolated) maximisation, which were not run because they are not part of the prescribed design.41- Policy errors at the evaluation points partly reflect where 0.5, 1, 2 fall between grid nodes (they are not nodes; see `data_issues`); the reported errors are not monotone in y for that reason.42- The closed form relies on log utility, Cobb–Douglas output, full depreciation and productivity normalised to one; it does not extend to partial depreciation or CRRA ≠ 1.43
Files · 152a55b8fa2830f50fa35e5aed99c0037f713345
Menu

Theme