https://github.com/security-decision-science/decision-security
Reusable decision-science utilities for security: Monte Carlo, Bayes, Survival, VoI, light causal helpers.
https://github.com/security-decision-science/decision-security
bayesian causal-inference cybersecurity decision-science monte-carlo risk-quantification survival-analysis value-of-information
Last synced: 6 months ago
JSON representation
Reusable decision-science utilities for security: Monte Carlo, Bayes, Survival, VoI, light causal helpers.
- Host: GitHub
- URL: https://github.com/security-decision-science/decision-security
- Owner: security-decision-science
- License: mit
- Created: 2025-10-03T14:19:16.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2025-10-16T20:39:07.000Z (9 months ago)
- Last Synced: 2026-01-08T21:39:10.569Z (6 months ago)
- Topics: bayesian, causal-inference, cybersecurity, decision-science, monte-carlo, risk-quantification, survival-analysis, value-of-information
- Language: Python
- Homepage:
- Size: 154 KB
- Stars: 2
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://pypi.org/project/decision-security/)
[](https://pypi.org/project/decision-security/)
[](https://github.com/security-decision-science/decision-security/actions/workflows/ci.yml)
[](https://scorecard.dev/viewer/?uri=github.com/security-decision-science/decision-security)
[](LICENSE)
[](https://www.linkedin.com/in/voiculaura/)
# Decision Security
Reusable **decision-science utilities for security** — Monte Carlo risk bands, Bayesian updates & calibration, survival helpers, Value of Information, light causal helpers, and visualization.
## Install
Pre-release for now:
```bash
pip install --pre decision-security
# or pin:
# pip install decision-security==0.1.0a9
```
## Quickstart
```python
import numpy as np
from decision_security.montecarlo import risk_bands, var_es, make_lognormal_severity, simulate_aggregate_losses
sev = make_lognormal_severity(meanlog=8.0, sdlog=1.2)
losses = simulate_aggregate_losses(n_periods=10000, lam=0.6, severity_sampler=sev)
print(risk_bands(losses)) # {'p50': ..., 'p90': ..., 'p95': ...}
print(var_es(losses)) # (VaR95, ES95)
```
## Modules
• synth: synthetic data (heavy-tail losses, counts, mixtures, survival with censoring, categorical/Dirichlet).
• montecarlo: Poisson frequency + severity, risk bands, VaR/ES.
• bayes: Beta-Binomial & Normal(known σ) updates, calibration helpers.
• survival: simple Kaplan–Meier & Nelson–Aalen estimates.
• voi: Expected Value of Perfect Information (EVPI) and simple ROI selection.
• causal: tiny DAG utilities (parents, descendants, naive backdoor set).
• viz: small matplotlib helpers (loss distribution, risk bands, KM curves).
## Status
0.x (APIs may change).
## Docs & examples
Security Decision Science Book and the Security Decision Labs playground (coming soon).
## Contributing
Issues and PRs welcome. For non-public questions, contact me on LinkedIn.