SPB Git

spb/wp29_uqo

Public
3.3 KB · 33 lines markdown
1# F1-conf-03 — Leverage and next-year default (simulated panel)23## Question4How 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.56## Data and exclusions7`data/firm_panel.csv` has 2140 data rows (`n_input_rows`) for 300 firms, 2016–2022. Steps (see `out/exclusions.csv`):81. 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`.92. 40 exact duplicate rows removed (assembly error; 2140 → 2100). After this every firm has exactly 7 years.103. 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.114. No rows had missing predictors (1800 → 1800).1213The 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.1415## Method16OLS 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.1718## Results19- Default rate in the estimation sample: 0.121 (`default_rate`).20- 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`).21- Other coefficients (`coef_all`): cash_ratio −0.186, log_sales −0.0073, intercept 0.090.22- In-sample R² = 0.035 (`r2`).2324## Uncertainty25The 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.2627## Limitations and open issues28- 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].29- The duplicates were treated as assembly errors because they were identical on every column. We kept the first copy of each.30- 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.31- Leverage shows a floor at 0.02 (`data_issues`). This may be censoring in how the data were generated. It was left untreated.32- Feasibility: complete (`feasibility`).33
Files · main
Menu

Theme