econirl.TransitionEstimator

class econirl.TransitionEstimator(n_states=90, max_increase=2)[source]

Bases: object

Sklearn-style estimator for mileage transition probabilities.

Estimates the distribution of mileage increments from panel data, following the first-stage estimation in Rust (1987).

Parameters:
  • n_states (int, default=90) – Number of discrete mileage states.

  • max_increase (int, default=2) – Maximum mileage bin increase per period. Larger increments are clamped to this value.

Variables:
  • probs (tuple of float) – Estimated probabilities (theta_0, theta_1, theta_2) after fitting.

  • matrix (ndarray of shape (n_states, n_states)) – Transition probability matrix P(s'|s, a=keep) after fitting.

  • n_transitions (int) – Number of valid transitions used for estimation.

Examples

>>> from econirl.transitions import TransitionEstimator
>>> from econirl.simulation.synthetic import simulate_panel
>>> from econirl.environments.rust_bus import RustBusEnvironment
>>> env = RustBusEnvironment()
>>> panel = simulate_panel(env, n_individuals=100, n_periods=100)
>>> estimator = TransitionEstimator(n_states=90, max_increase=2)
>>> estimator.fit(panel)
>>> print(f"theta = {estimator.probs_}")
>>> print(estimator.summary())
__init__(n_states=90, max_increase=2)[source]
Parameters:
  • n_states (int)

  • max_increase (int)

Return type:

None

fit(data, state=None, id=None, action=None)[source]

Fit the transition estimator to panel data.

Counts state transitions for observations where action=0 (keep/no replacement) and estimates the probability distribution over increments.

Parameters:
  • data (Panel) – Panel data containing trajectories of state-action-next_state.

  • state (str, optional) – Ignored. For API compatibility with DataFrame-based methods.

  • id (str, optional) – Ignored. For API compatibility with DataFrame-based methods.

  • action (str, optional) – Ignored. For API compatibility with DataFrame-based methods.

Returns:

self – Returns self for method chaining.

Return type:

TransitionEstimator

summary()[source]

Return a formatted summary of the estimated transition probabilities.

Returns:

summary – Human-readable summary of the estimation results.

Return type:

str