SPB Git

spb/wp29_uqo

Public
5.1 KB · 67 lines markdown
1# F5-conf-04 — VFI vs closed-form policy, optimal growth with log utility23## Question4A planner maximises Σ β^t ln c_t subject to y_{t+1} = (y_t − c_t)^α (full depreciation, productivity 1). We derive the closed-form5policy and value function, solve the Bellman equation numerically by value-function iteration (VFI) on the prescribed grid, and6compare the two at y = 0.5, 1, 2 (policy) and y = 1 (value).78## Data and exclusions9Only `data/model.csv` (10 rows; `n_input_rows`) is used: α = 0.36, β = 0.95, grid of 400 points equally spaced in ln y on10[0.05, 5] (`grid_points_used`, `n_analysed`), VFI tolerance 1e-8 (sup norm). SHA-256 and schema are in `out/state/data_audit.md`.11No exclusions (`out/exclusions.csv`: 400 − 0 = 400). No deviation from the prescribed design was needed, so `data_issues` is empty.12The evaluation points are not grid nodes, so the numerical policy is interpolated there (allowed by TASK.md).1314## Method15**Closed form (guess and verify).** Assumptions: log utility, Cobb–Douglas technology y' = k^α with 0<α<1, full depreciation,16productivity 1, 0<β<1, interior solution 0<c<y. Guess V(y) = A + B ln y. The first-order condition of17max_c {ln c + β(A + Bα ln(y − c))} is 1/c = αβB/(y − c), so c = y/(1 + αβB). Substituting back and matching coefficients on ln y18gives B = 1 + αβB, i.e. B = 1/(1 − αβ), hence19- policy: **c(y) = (1 − αβ) y**, savings rate (y − c)/y = **αβ**;20- value: **V(y) = A + ln y /(1 − αβ)**, with A = [ln(1 − αβ) + (αβ/(1 − αβ)) ln(αβ)] / (1 − β).21The objective is strictly concave in c, so the FOC gives the maximum; the code verifies the Bellman equation holds to 3.6e-1522(`out/state/checks.md`).2324**Contraction.** On the compact grid the return ln(y − y'^{1/α}) is bounded over feasible choices, and the Bellman operator25T V(y) = max {u + β V(y')} satisfies Blackwell's sufficient conditions (monotonicity; discounting T(V + a) = TV + βa). Hence it is26a contraction in the sup norm with modulus β = 0.95 (`contraction_modulus`). (On the unbounded state space (0, ∞) log utility is27unbounded and the standard argument needs a weighted norm; the numerical problem lives on the compact grid.)2829**VFI.** State = current output y on the grid; choice = next-period output y' restricted to grid nodes, requiring capital30k = y'^{1/α} < y, consumption c = y − k (discrete choice, vectorised 400×400). Start from V0 = 0 and iterate until the sup-norm31change is below 1e-8. The policy is c at the argmax; values at y = 0.5, 1, 2 are obtained by linear interpolation in ln y32(the grid is uniform in ln y and V is linear in ln y). The closed form is never used inside the VFI. No random numbers33(`random_seed` = null). The optimal y' never hits a grid bound.3435## Results36| quantity | closed form | VFI |37|---|---|---|38| c(0.5) | 0.329 (`c_closed_y05`) | 0.32882 (`c_num_y05`) |39| c(1.0) | 0.658 (`c_closed_y1`) | 0.65899 (`c_num_y1`) |40| c(2.0) | 1.316 (`c_closed_y2`) | 1.30963 (`c_num_y2`) |41| V(1) | −19.52441 (`value_closed_y1`) | −19.52476 (`value_num_y1`) |4243- Maximum absolute policy discrepancy over the three points: 0.00637 units of output (`max_abs_error_policy`), attained at y = 2,44  i.e. about 0.5% of consumption.45- Value at y = 1 differs by about 3.4e-4 utils (`value_closed_y1`, `value_num_y1`).46- Closed-form savings rate αβ = 0.342 (`savings_rate_closed_form`) (the baseline quantity).47- Contraction modulus β = 0.95 (`contraction_modulus`); VFI converged in 361 iterations (`n_iterations`) with final sup change48  9.997e-9 < 1e-8 (`final_sup_change`); `feasibility` = "complete".4950## Uncertainty51The model is deterministic; there is no sampling uncertainty. The numerical error has two sources:521. *Iteration (truncation) error*: by the contraction property, ‖V_n − V*_grid‖ ≤ β/(1 − β)·‖V_n − V_{n−1}‖ ≤ 19 × 1e-8 ≈ 1.9e-753   utils (from `final_sup_change`, `contraction_modulus`), negligible.542. *Discretisation error*: dominant. The choice y' is restricted to grid nodes with log spacing ≈ 0.0115, i.e. capital moves in55   relative steps of ≈ 0.0115/α ≈ 3.2%, so the policy is a step function around the true linear policy; plus interpolation error at56   non-node evaluation points. On all grid nodes the maximum policy error is 0.025 and the maximum value error 4.8e-4 (diagnostic57   fields in results.json, not required keys). These errors shrink with finer grids (or continuous choice with interpolation).5859## Limitations and open issues60- The validation is for a single parameter point (α = 0.36, β = 0.95), one grid (400 log-spaced points on [0.05, 5]) and a61  discrete-choice VFI; it does not establish accuracy for other parameters, grids, or for states outside [0.05, 5].62- The size of the discrepancy depends on grid density, the discrete restriction of the choice to grid nodes, and the63  interpolation rule (linear in ln y); a different but equally defensible implementation (e.g. continuous choice) would give64  different, likely smaller, errors. No grid-refinement study was performed (not required).65- The closed form relies on log utility, Cobb–Douglas technology, full depreciation and an interior solution; it does not apply66  otherwise.67
Files · main
Menu

Theme