Rust Bus Engine Example

Interpretation

The Rust bus reward specification estimates two parameters. The first is the operating cost slope over mileage states. The second is the replacement cost. The fitted policy gives the replacement probability by mileage state.

for state, row in zip(
    [0, 10, 50, 89],
    model.predict_proba([0, 10, 50, 89]),
    strict=True,
):
    print(f"{state}: keep={row[0]:.6f}, replace={row[1]:.6f}")

Result

0: keep=0.955732, replace=0.044268
10: keep=0.947600, replace=0.052400
50: keep=0.912779, replace=0.087221
89: keep=0.884699, replace=0.115301

Counterfactual Replacement Cost

cf = model.counterfactual(replacement_cost=4.0)
print(f"P(replace | state=50)={cf.policy[50, 1]:.6f}")

Result

P(replace | state=50)=0.054908

Raising replacement cost from the fitted value to 4.0 reduces the replacement probability at state 50 from 0.087221 to 0.054908.

Replication Boundary

This page is a package smoke example, not the full historical Rust replication. The printed robust standard errors are conditional pseudo-likelihood estimates. They hold the fitted transition model fixed. The reported simulation study is also synthetic and supplies the true transition tensor. The replication ledger separates two results. Its CCP/NPL section checks fixed-point equivalence to NFXP on bundled Group 4 data. On the official STORDAT panel, converged NPL reproduces the Rust Table IX estimates and joint full-likelihood standard errors. The JSON receipt records the data checksum, specification, residuals, and numerical comparisons.