Hurricane outage impact forecast

A calibrated forecast of hurricane power-outage impact. Given an approaching storm and a county, it predicts the peak number of customers without power as an 80% prediction interval (P10โ€“P90) with a P50 median. Trained on sgw-resilience-data.

How it works

  • Three LightGBM quantile regressors (P10/P50/P90) trained on log1p(peak_customers_out); predictions are back-transformed with expm1 and sorted per row so the bands never cross.
  • Asymmetric Conformalized Quantile Regression calibrates the interval to an 80% target, with offsets averaged over the evaluation folds.

Files

  • quantile_10.txt, quantile_50.txt, quantile_90.txt โ€” native LightGBM boosters.
  • config.json โ€” features, quantiles, the log transform, and the conformal offsets.
  • metrics.json, loso_per_storm.parquet โ€” evaluation results, in aggregate and per storm.

Evaluation

Leave-one-storm-out over 28 storms; each storm is held out once and scored by models trained on the others, with calibration storms disjoint from both train and test.

metric value
80% interval coverage 0.79 (target 0.80)
coverage per tail 0.11 below / 0.10 above
per-storm coverage 0.56โ€“0.92 (std 0.10)
mean interval width ~6,800 customers
P50 mean absolute error ~2,200 customers

Coverage is calibrated in aggregate but marginal, not per-storm: with only 28 storms it is estimated coarsely, and an individual storm can be materially under- or over-covered. Magnitude transfer across storms is limited by the small storm record.

Usage

import json
import lightgbm as lgb
import numpy as np

cfg = json.load(open("config.json"))
boosters = [lgb.Booster(model_file=f"quantile_{int(q * 100):02d}.txt") for q in cfg["quantiles"]]

# X: array with columns cfg["features"], in that order
log = np.sort(np.column_stack([b.predict(X) for b in boosters]), axis=1)
lo = np.minimum(log[:, 0] - cfg["offsets_log"]["lower"], log[:, 1])
hi = np.maximum(log[:, 2] + cfg["offsets_log"]["upper"], log[:, 1])
p10, p50, p90 = (np.clip(np.expm1(v), 0, None) for v in (lo, log[:, 1], hi))

Limitations

Intended for South-East and Gulf hurricanes resembling the 2014โ€“2025 record; coverage degrades for storms unlike those seen. The features use distance-decayed intensity as a proxy rather than a physical wind field. The model is MIT licensed; the training data is CC-BY-4.0.

Downloads last month
2
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support