Probabilistic Cycle Model: Uncertainty-Aware Menstrual Cycle Prediction#12
Open
Probabilistic Cycle Model: Uncertainty-Aware Menstrual Cycle Prediction#12
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Branch: probabilistic-cycle-model
Title
Probabilistic Cycle Model: Uncertainty-Aware Menstrual Cycle Prediction
Description
This branch introduces a probabilistic, uncertainty-aware mathematical model for menstrual cycle prediction in ROS Cycle.
Earlier versions of ROS Cycle relied primarily on deterministic date arithmetic: given a last menstrual period and an average cycle length, future dates were projected using fixed offsets. While simple and transparent, that approach implicitly treated the menstrual cycle as regular and predictable.
This branch explicitly acknowledges that human biological cycles are variable, even in healthy individuals. Instead of hiding that variability, the model makes it visible, measurable, and explainable.
What Changes in This Branch
1. Deterministic Baseline Remains
The system still computes a clear deterministic baseline:
These components provide structural clarity and prevent the model from becoming opaque.
2. Ovulation as a Likelihood Curve
Ovulation is no longer represented as a single predicted day.
Instead, the model represents ovulation timing as a continuous likelihood curve centered around a biological prior (approximately 14 days before the next period). A Gaussian-style function is used to assign relative likelihood to each cycle day.
This curve does not claim medical certainty. It communicates relative plausibility rather than truth.
3. Fertility as Probability, Not a Binary State
Fertile days are derived from ovulation likelihood values rather than fixed windows.
This reduces false confidence and better reflects biological reality.
4. Explicit Modeling of Uncertainty
Cycle variability (± days) is treated as a first-class mathematical parameter.
Variability influences:
Higher variability produces wider, flatter probability distributions and lower confidence. Lower variability produces narrower curves and higher confidence.
5. Transparent Confidence Estimation
The model computes a confidence score derived from the ratio between variability and average cycle length.
This score is:
The goal is not reassurance, but honesty.
What This Branch Does Not Do
All computation remains local, deterministic where possible, and probabilistic where uncertainty cannot be eliminated.
Why This Branch Exists
This branch exists to solve a deeper problem than date prediction:
The probabilistic cycle model is an answer to that question — not a final one, but a principled starting point.
Impact on the Project
This branch:
It marks the transition of ROS Cycle from a calendar-based tracker to an uncertainty-aware modeling system.
Summary
The
probabilistic-cycle-modelbranch does not attempt to predict the body with certainty.It attempts something more difficult and more honest:
to represent what is known, what is uncertain, and how confident the system can reasonably be — using clear mathematics and transparent assumptions.