Dochia

A small, auditable, on-device statistical model for menstrual-cycle forecasting: a calibrated next-onset distribution, a daily onset hazard, a corrected ovulation-variance identity, a heavy-tail allowance and explicit abstention.

This is not a Transformer or a neural network. It is ~50–200 effective parameters, <10 KB, with reference implementations in PHP, Python, R, Julia and JavaScript. It runs without a network, permissions or an ML runtime.

Intended use

Educational/research wellness forecasting: show a calibrated range and probability, a daily onset hazard, and abstain when the history is insufficient. Not a medical device, not contraception, not a fertility diagnostic.

Results (external research validation)

On 283 held-out women / 858 forecasts from the public Creighton cycle-length corpus (CC BY-NC 3.0; data not included):

  • MAE 2.67 d; median AE 1.48 d; 3-in-4 within 3 days.
  • 80% interval coverage 82.0%; 95% coverage 94.4%.
  • Point accuracy is at parity with a standard normal hierarchical baseline; calibration is the improvement.

DOI: 10.5281/zenodo.23956336

Full methods, synthetic stress results and limits: docs/VALIDATION.md and docs/MODEL_CARD.md in this repo.

Files

  • params/dochia-v1.json β€” ship-safe published priors (no fitted weights).
  • src/ β€” PHP reference (Dochia).
  • python/dochia.py β€” Python reference.
  • r/dochia.R, julia/dochia.jl, javascript/dochia.mjs β€” R, Julia, JavaScript references.
  • docs/MODEL_CARD.md, docs/VALIDATION.md, NOTICE, LICENSE.

Usage

$model = new \Dochia\MicroModel(
    \Dochia\ModelParamsFactory::literature()
);
$f = $model->forecast([29, 28, 30, 27, 31, 29], currentDay: 12);

Citation

See CITATION.cff. Cite the primary sources listed in NOTICE.

Licence

Code MIT; documentation/model card CC BY 4.0. No real cycle data are included.

Source

github.com/danielpetrica/dochia-cycle-model

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support