SPB Git

spb/wp29_uqo

Public

# F1-conf-03 — Leverage and next-year default (simulated panel)

# Question

How is a firm's leverage at the end of year t associated with default in year t+1, conditional on cash ratio and log sales, using only information available at the end of year t? Estimand: the coefficient on leverage in a linear probability model estimated by OLS, SEs clustered by firm. Data are synthetic.

# Data and exclusions

data/firm_panel.csv has 2140 data rows (n_input_rows) for 300 firms, 2016–2022. Steps (see out/exclusions.csv):

  1. Column rating_2025 dropped (no rows removed): it was assigned in 2025 using each firm's realised default history through 2022 and its sample-average leverage, so it was not known at the end of year t and leaks the outcome. In the raw file only D-rated firms ever default. Listed in variables_excluded.
  2. 40 exact duplicate rows removed (assembly error; 2140 → 2100). After this every firm has exactly 7 years.
  3. 300 firm-years with unobserved default_next removed (all origin year 2022, because the outcome year 2023 falls after the data cut). Outcomes were not imputed. 2100 → 1800.
  4. No rows had missing predictors (1800 → 1800).

The estimation sample has n_analysed = 1800 firm-years from n_firms = 300 firms, origin years 2016–2021. Every detected problem is listed in data_issues. One of them is a mass point of leverage at 0.02, which was kept as recorded.

# Method

OLS of default_next on an intercept, leverage, cash_ratio and log_sales (predictors_used), using statsmodels with cluster-robust covariance by firm_id and its default small-sample correction. Baselines: the unconditional default rate (default_rate) and a bivariate slope on leverage (baseline_beta_leverage_bivariate). No randomness is used (random_seed = null). out/analysis.py regenerates every output deterministically.

# Results

  • Default rate in the estimation sample: 0.121 (default_rate).
  • Coefficient on leverage: 0.264 (beta_leverage). Holding cash ratio and log sales fixed, a firm with leverage 0.10 higher has an estimated next-year default probability about 2.6 percentage points higher. The bivariate baseline slope is nearly the same at 0.267 (baseline_beta_leverage_bivariate).
  • Other coefficients (coef_all): cash_ratio −0.186, log_sales −0.0073, intercept 0.090.
  • In-sample R² = 0.035 (r2).

# Uncertainty

The firm-clustered SE of the leverage coefficient is 0.0408 (se_leverage_cluster), giving a 95% CI of [0.184, 0.344] (ci95_leverage_cluster). The non-robust OLS SE is smaller, at 0.0358 (se_leverage_nonrobust), which is consistent with within-firm correlation. With 300 clusters, cluster-robust inference should be reliable.

# Limitations and open issues

  • The data are simulated. The coefficient is a conditional association from a linear probability model, not a causal effect, and an LPM can produce fitted probabilities outside [0,1].
  • The duplicates were treated as assembly errors because they were identical on every column. We kept the first copy of each.
  • The codebook does not say whether firms remain in the panel after they default. All firm-years with an observed outcome were kept, as the task specifies.
  • Leverage shows a floor at 0.02 (data_issues). This may be censoring in how the data were generated. It was left untreated.
  • Feasibility: complete (feasibility).
Files · 152a55b8fa2830f50fa35e5aed99c0037f713345
Menu

Theme