Skip to content

Commit 30b7ee7

Browse files
author
miranov25
committed
tests(quantile_fit_nd): handle Poisson via randomized PIT pre-processing
- Use Q = F(k-1) + U*(F(k)-F(k-1)) for Poisson synthetic data - Ensures continuous ranks and informative Δq windows - Keeps fitter unchanged; diagnostics remain valid
1 parent 5d9cacd commit 30b7ee7

File tree

1 file changed

+4
-5
lines changed

1 file changed

+4
-5
lines changed

UTILS/dfextensions/quantile_fit_nd/test_quantile_fit_nd.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
fit_quantile_linear_nd,
88
QuantileEvaluator,
99
)
10+
from dfextensions.quantile_fit_nd.utils import discrete_to_uniform_rank_poisson
11+
1012

1113
RNG = np.random.default_rng(42)
1214

@@ -16,11 +18,8 @@ def gen_Q_from_distribution(dist: str, n: int, params: dict) -> np.ndarray:
1618
return RNG.uniform(0.0, 1.0, size=n)
1719
elif dist == "poisson":
1820
lam = params.get("lam", 20.0)
19-
m = RNG.poisson(lam, size=n)
20-
from math import erf
21-
z = (m + 0.5 - lam) / np.sqrt(max(lam, 1e-6))
22-
cdf = 0.5 * (1.0 + np.array([erf(zi / np.sqrt(2)) for zi in z]))
23-
return np.clip(cdf, 0.0, 1.0)
21+
k = RNG.poisson(lam, size=n)
22+
return discrete_to_uniform_rank_poisson(k, lam, mode="randomized", rng=RNG)
2423
elif dist == "gaussian":
2524
mu = params.get("mu", 0.0)
2625
sigma = params.get("sigma", 1.0)

0 commit comments

Comments
 (0)