further work on discussion
@@ -50,7 +50,8 @@
|
|||||||
Alexander Blank\\[0.5cm]
|
Alexander Blank\\[0.5cm]
|
||||||
|
|
||||||
\textbf{Supervisor:}\\
|
\textbf{Supervisor:}\\
|
||||||
Prof. Bogdan Franczyk\\[1.5cm]
|
Prof. Bogdan Franczyk\\
|
||||||
|
Dr. Christian Alvermann\\[1.5cm]
|
||||||
|
|
||||||
\textbf{Date:} September 2025\\[2cm]
|
\textbf{Date:} September 2025\\[2cm]
|
||||||
|
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 480 KiB After Width: | Height: | Size: 489 KiB |
|
After Width: | Height: | Size: 562 KiB |
|
After Width: | Height: | Size: 386 KiB |
|
After Width: | Height: | Size: 358 KiB |
|
After Width: | Height: | Size: 368 KiB |
|
After Width: | Height: | Size: 437 KiB |
|
After Width: | Height: | Size: 669 KiB |
|
Before Width: | Height: | Size: 350 KiB After Width: | Height: | Size: 350 KiB |
|
After Width: | Height: | Size: 380 KiB |
|
After Width: | Height: | Size: 380 KiB |
|
After Width: | Height: | Size: 375 KiB |
|
After Width: | Height: | Size: 429 KiB |
|
After Width: | Height: | Size: 551 KiB |
|
Before Width: | Height: | Size: 467 KiB |
|
After Width: | Height: | Size: 452 KiB |
|
After Width: | Height: | Size: 533 KiB |
@@ -487,4 +487,5 @@
|
|||||||
\textbf{Bold} values represent the best values across all models for a given metric.}
|
\textbf{Bold} values represent the best values across all models for a given metric.}
|
||||||
\label{tab:regular_vs_irregular_ov_over_results}
|
\label{tab:regular_vs_irregular_ov_over_results}
|
||||||
\end{table}
|
\end{table}
|
||||||
\end{landscape}
|
\end{landscape}
|
||||||
|
|
||||||
|
|||||||
@@ -11,11 +11,12 @@ The menstrual cycle consists of physiological changes preparing the female body
|
|||||||
typically spanning around 28 days but varying considerably among individuals.
|
typically spanning around 28 days but varying considerably among individuals.
|
||||||
It includes two main phases: the follicular phase, beginning with menstruation, and the luteal phase, following ovulation.
|
It includes two main phases: the follicular phase, beginning with menstruation, and the luteal phase, following ovulation.
|
||||||
|
|
||||||
During the follicular phase, ovarian follicles mature under the influence of rising estradiol levels, thickening the uterine lining (endometrium).
|
During the follicular phase (Figure~\ref{fig:background_menstrual_cycle_physiology} until day 14),
|
||||||
|
ovarian follicles mature under the influence of rising estradiol levels, thickening the uterine lining (endometrium).
|
||||||
Around mid-cycle, a surge of luteinizing hormone (LH) and follicle-stimulating hormone (FSH), triggered by peak estradiol,
|
Around mid-cycle, a surge of luteinizing hormone (LH) and follicle-stimulating hormone (FSH), triggered by peak estradiol,
|
||||||
induces ovulation—the release of a mature egg into the fallopian tube.
|
induces ovulation—the release of a mature egg into the fallopian tube.
|
||||||
|
|
||||||
After ovulation, the luteal phase begins.
|
After ovulation, the luteal phase begins (Figure~\ref{fig:background_menstrual_cycle_physiology} day 14 to 28).
|
||||||
Progesterone increases substantially, maintaining endometrial thickness for potential embryo implantation.
|
Progesterone increases substantially, maintaining endometrial thickness for potential embryo implantation.
|
||||||
In parallel, a subtle rise in body temperature (~0.5°C) occurs due to progesterone elevation.
|
In parallel, a subtle rise in body temperature (~0.5°C) occurs due to progesterone elevation.
|
||||||
If fertilization does not happen, progesterone and temperature decline back to baseline levels, resulting in menstruation and initiating a new cycle.
|
If fertilization does not happen, progesterone and temperature decline back to baseline levels, resulting in menstruation and initiating a new cycle.
|
||||||
@@ -55,13 +56,17 @@ The luteal phase begins at the ovulation and continues until the next menstruati
|
|||||||
|
|
||||||
|
|
||||||
While many cycles exhibit a characteristic biphasic pattern, deviations from this norm are common.
|
While many cycles exhibit a characteristic biphasic pattern, deviations from this norm are common.
|
||||||
Some remain monophasic, which might be an indication for an anovulatory cycle, which is a menstrual cycle, where no ovulation occurs.
|
Some do not show the typical temperature surge, which might be an indication for an anovulatory cycle.
|
||||||
|
Anovulatory cycles don't have an ovulation, and thus cannot result in a pregnancy.
|
||||||
Anovulation can have various causes, including hormonal imbalances, stress, or underlying health conditions~\cite{rosenfield_adolescent_2013}.
|
Anovulation can have various causes, including hormonal imbalances, stress, or underlying health conditions~\cite{rosenfield_adolescent_2013}.
|
||||||
Monophasic cycles with a confirmed ovulation event have been observed, so there seems to be no clear indication that it is a direct cause of anovulation~\cite{moghissi_accuracy_1976}.
|
Monophasic cycles with a confirmed ovulation event have also been observed, so there seems to be no clear indication that it is a direct cause of anovulation~\cite{moghissi_accuracy_1976}.
|
||||||
Thus, distinguishing between ovulatory and anovulatory cycles is challenging, as the only definitive confirmation of
|
Thus, distinguishing between ovulatory and anovulatory cycles is challenging, as the only definitive confirmation of
|
||||||
successful ovulation in a clinical sense is a pregnancy.
|
successful ovulation in a clinical sense is a pregnancy.
|
||||||
Even ultrasound imaging can only confirm that an egg was released from its follicle—not whether it was successfully implanted or fertilized.
|
Even ultrasound imaging can only confirm that an egg was released from its follicle—not whether it was successfully implanted or fertilized.
|
||||||
Figure~\ref{fig:background_anovulation} shows a cycle with a monophasic temperature pattern.
|
|
||||||
|
Figure~\ref{fig:background_labeled_cycle} shows a cycle with a typical biphasic temperature pattern.
|
||||||
|
In contrast, Figure~\ref{fig:background_anovulation} shows a cycle with a monophasic temperature pattern.
|
||||||
|
Over time, the temperature does not show any significant or longer lasting temperature changes.
|
||||||
|
|
||||||
To illustrate the diversity of real-world menstrual cycles, Figures~\ref{fig:background_long_cycle} and~\ref{fig:background_short_cycle}
|
To illustrate the diversity of real-world menstrual cycles, Figures~\ref{fig:background_long_cycle} and~\ref{fig:background_short_cycle}
|
||||||
show examples of cycles that are significantly longer or shorter than a normative 28-day cycle.
|
show examples of cycles that are significantly longer or shorter than a normative 28-day cycle.
|
||||||
@@ -107,6 +112,7 @@ Fertility varies throughout the menstrual cycle, centered around the ovulation e
|
|||||||
An egg remains viable for about 24 hours post-ovulation, while sperm can survive up to 6 days in a woman's reproductive tract,
|
An egg remains viable for about 24 hours post-ovulation, while sperm can survive up to 6 days in a woman's reproductive tract,
|
||||||
thus the fertile period extends to approximately five days prior to ovulation~\cite{dunson_day-specific_1999}.
|
thus the fertile period extends to approximately five days prior to ovulation~\cite{dunson_day-specific_1999}.
|
||||||
Consequently, the whole fertile window generally spans six days: five days preceding ovulation and one day after.
|
Consequently, the whole fertile window generally spans six days: five days preceding ovulation and one day after.
|
||||||
|
The distribution of fertility probability is not dependent on the length of the cycle.
|
||||||
|
|
||||||
\begin{figure}[htbp]
|
\begin{figure}[htbp]
|
||||||
\centering
|
\centering
|
||||||
@@ -116,7 +122,8 @@ Consequently, the whole fertile window generally spans six days: five days prece
|
|||||||
\label{fig:background_pregnancy_chance}
|
\label{fig:background_pregnancy_chance}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
Figure~\ref{fig:background_pregnancy_chance} demonstrates the probability of fertilization peaking one day before ovulation, emphasizing the critical timing for fertility prediction.
|
Figure~\ref{fig:background_pregnancy_chance} demonstrates the probability of fertilization peaking one day before ovulation,
|
||||||
|
emphasizing the critical timing for fertility prediction.
|
||||||
|
|
||||||
Fertility prediction fundamentally depends on accurate ovulation timing.
|
Fertility prediction fundamentally depends on accurate ovulation timing.
|
||||||
However, since the goal is to identify the fertile window before ovulation occurs, detection must be early and precise.
|
However, since the goal is to identify the fertile window before ovulation occurs, detection must be early and precise.
|
||||||
@@ -141,6 +148,11 @@ pregnancy effort, causing frustration or delays, but no potential dangers to the
|
|||||||
Therefore, algorithms for this group don't need to be as conservative.
|
Therefore, algorithms for this group don't need to be as conservative.
|
||||||
It remains to be seen, where the middle ground lies and how different algorithms perform for different use cases.
|
It remains to be seen, where the middle ground lies and how different algorithms perform for different use cases.
|
||||||
|
|
||||||
|
In this study, we'll focus on fertility prediction, which incorporates both use cases, and thus we will not train
|
||||||
|
different models for each use-case.
|
||||||
|
However, we will test the thresholds used for decision-making to find use-case dependent optimums.
|
||||||
|
Section~\ref{subsubsec:use_case_evaluation} will introduce the methodology in more detail.
|
||||||
|
|
||||||
\subsubsection{Physiological Signs of Ovulation}\label{subsubsec:physiological_signs}
|
\subsubsection{Physiological Signs of Ovulation}\label{subsubsec:physiological_signs}
|
||||||
Several physiological signs correlate with ovulation and can be used for prediction.
|
Several physiological signs correlate with ovulation and can be used for prediction.
|
||||||
As shown in Figure~\ref{fig:background_menstrual_cycle_physiology}, these include hormonal fluctuations (LH and FSH surges) and
|
As shown in Figure~\ref{fig:background_menstrual_cycle_physiology}, these include hormonal fluctuations (LH and FSH surges) and
|
||||||
@@ -177,7 +189,7 @@ Thanks to a battery life of at least six months, the device supports continuous
|
|||||||
|
|
||||||
A known limitation of manual cycle annotations is the potential for misalignment.
|
A known limitation of manual cycle annotations is the potential for misalignment.
|
||||||
Intermediate bleeding events unrelated to menstruation (e.g., ovulatory spotting or irregular shedding) or missing menstruation entries can lead to ambiguous cycle definitions.
|
Intermediate bleeding events unrelated to menstruation (e.g., ovulatory spotting or irregular shedding) or missing menstruation entries can lead to ambiguous cycle definitions.
|
||||||
Therefore, all user-entered cycle starts undergo manual review to reduce annotation errors.
|
Manual review of all user-entered cycle starts would improve the quality of the annotations, but is currently not done.
|
||||||
|
|
||||||
\begin{figure}[htbp]
|
\begin{figure}[htbp]
|
||||||
\centering
|
\centering
|
||||||
@@ -198,7 +210,7 @@ contained hardware-related anomalies, or fell outside a reasonable cycle length
|
|||||||
|
|
||||||
Cycles shorter than 10 days typically result from incorrect cycle start entries or premature termination of temperature recordings.
|
Cycles shorter than 10 days typically result from incorrect cycle start entries or premature termination of temperature recordings.
|
||||||
Long cycles, longer than 150 days, are often due to data entry errors or pregnancy-related recordings,
|
Long cycles, longer than 150 days, are often due to data entry errors or pregnancy-related recordings,
|
||||||
where the sensor was worn continuously throughout gestation—sometimes producing sequences up to nine months long.
|
where the sensor was worn continuously throughout gestation, sometimes producing sequences up to nine months long.
|
||||||
|
|
||||||
While such cases may still contain useful information, they were excluded from this analysis to avoid complications in preprocessing and labeling.
|
While such cases may still contain useful information, they were excluded from this analysis to avoid complications in preprocessing and labeling.
|
||||||
In most instances, only a small portion of these extended cycles contributes meaningfully to the study objectives.
|
In most instances, only a small portion of these extended cycles contributes meaningfully to the study objectives.
|
||||||
@@ -207,8 +219,10 @@ The cutoff values for cycle length are 10 and 150 days, respectively.
|
|||||||
The cleaned dataset has 40{,}266 menstrual cycles from 6{,}245 users.
|
The cleaned dataset has 40{,}266 menstrual cycles from 6{,}245 users.
|
||||||
The median number of cycles per user is 4 (IQR: 2--8) and the median cycle length is 28 days (IQR: 26--32).
|
The median number of cycles per user is 4 (IQR: 2--8) and the median cycle length is 28 days (IQR: 26--32).
|
||||||
|
|
||||||
The average data density—defined as the fraction of available measurements out of the theoretical maximum of 288 measurements per day—is 0.90.
|
The average data density, defined as the fraction of available measurements out of the theoretical maximum of 288 measurements per day, is 0.90.
|
||||||
This corresponds to an average data availability of 90\% per cycle, with an average loss of 10\%.
|
This corresponds to an average data availability of 90\% per cycle, with an average loss of 10\%.
|
||||||
|
Data loss is usually caused by users not wearing the sensor for a longer time, or an erroneous sensor that needed replacement,
|
||||||
|
but was not immediately delivered.
|
||||||
|
|
||||||
37934 cycles (94\%) were classified as biphasic and 2333 (6\%) as monophasic.
|
37934 cycles (94\%) were classified as biphasic and 2333 (6\%) as monophasic.
|
||||||
|
|
||||||
@@ -217,7 +231,7 @@ Users had a median age of 32 years (IQR: 29–36), median weight of 65 kg (IQR:
|
|||||||
\subsubsection{Irregularities and Confounding Factors}
|
\subsubsection{Irregularities and Confounding Factors}
|
||||||
Despite careful data collection, real-world measurements are subject to physiological and behavioral noise.
|
Despite careful data collection, real-world measurements are subject to physiological and behavioral noise.
|
||||||
Especially core body temperature is influenced by various factors unrelated to the menstrual cycle.
|
Especially core body temperature is influenced by various factors unrelated to the menstrual cycle.
|
||||||
Illnesses—especially those involving fever—can significantly affect temperature patterns.
|
Illnesses, especially those involving fever, can significantly affect temperature patterns.
|
||||||
This poses a challenge for any analysis relying on temperature data, as one of the key physiological indicators of ovulation is a post-ovulatory temperature rise (see Section~\ref{subsubsec:physiological_signs}).
|
This poses a challenge for any analysis relying on temperature data, as one of the key physiological indicators of ovulation is a post-ovulatory temperature rise (see Section~\ref{subsubsec:physiological_signs}).
|
||||||
|
|
||||||
Figure~\ref{fig:background_fever_cycle} shows an example of a cycle where an illness caused a marked increase in temperature.
|
Figure~\ref{fig:background_fever_cycle} shows an example of a cycle where an illness caused a marked increase in temperature.
|
||||||
@@ -403,10 +417,9 @@ In the case of machine translation, this input would be a sentence in the source
|
|||||||
|
|
||||||
|
|
||||||
The input tokens are first mapped to dense continuous vector representations (embeddings).
|
The input tokens are first mapped to dense continuous vector representations (embeddings).
|
||||||
Since the attention mechanism permutation-invariant---that is, it does not inherently encode the order of tokens in the sequence---
|
Since the attention mechanism permutation-invariant, that is, it does not inherently encode the order of tokens in the sequence,
|
||||||
\emph{positional encodings} are added to the token embeddings to provide information about the token positions in the sequence.
|
\emph{positional encodings} are added to the token embeddings to provide information about the token positions in the sequence.
|
||||||
|
|
||||||
|
|
||||||
Without positional encoding, repeated tokens such as `The` would be indistinguishable
|
Without positional encoding, repeated tokens such as `The` would be indistinguishable
|
||||||
to the model regardless of their location, even if they play different syntactic or semantic roles.
|
to the model regardless of their location, even if they play different syntactic or semantic roles.
|
||||||
Positional encodings, often based on sinusoidal functions, inject a unique position-dependent signal
|
Positional encodings, often based on sinusoidal functions, inject a unique position-dependent signal
|
||||||
@@ -419,6 +432,7 @@ In this work, we use sine and cosine functions of different frequencies:
|
|||||||
\end{align}
|
\end{align}
|
||||||
where \(i\) is the dimension of the input and \(pos\) is the position in the sequence,
|
where \(i\) is the dimension of the input and \(pos\) is the position in the sequence,
|
||||||
as in the original paper~\cite{vaswani_attention_2017}.
|
as in the original paper~\cite{vaswani_attention_2017}.
|
||||||
|
Positional encodings are added to the embedded inputs through simple addition.
|
||||||
|
|
||||||
\begin{figure}[htbp]
|
\begin{figure}[htbp]
|
||||||
\centering
|
\centering
|
||||||
@@ -562,6 +576,8 @@ These techniques reduce the computational load while maintaining salient informa
|
|||||||
|
|
||||||
Figure~\ref{fig:background_convolution_example} illustrates a simple one-dimensional convolution applied to a sequence using a filter of size 3.
|
Figure~\ref{fig:background_convolution_example} illustrates a simple one-dimensional convolution applied to a sequence using a filter of size 3.
|
||||||
The stride determines how far the filter moves at each step, affecting both the resolution and length of the resulting feature map.
|
The stride determines how far the filter moves at each step, affecting both the resolution and length of the resulting feature map.
|
||||||
|
As a recap, resolution in this context means, how many of the daily measurements (initially 288) are retained for the input of the models.
|
||||||
|
The sequence length is the overall number of measurements available.
|
||||||
|
|
||||||
\begin{figure}[htbp]
|
\begin{figure}[htbp]
|
||||||
\centering
|
\centering
|
||||||
@@ -571,6 +587,6 @@ The stride determines how far the filter moves at each step, affecting both the
|
|||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
In summary, time-series modeling offers a range of approaches, each with specific trade-offs.
|
In summary, time-series modeling offers a range of approaches, each with specific trade-offs.
|
||||||
RNNs and LSTMs provide explicit sequential modeling but suffer from training inefficiencies.
|
RNNs and LSTMs provide explicit sequential modeling but suffer from vanishing gradients, especially for longer sequences.
|
||||||
Transformers excel at long-range context capture but demand more memory and parallelization.
|
Transformers excel at long-range context capture but demand more memory and parallelization.
|
||||||
Convolutional layers offer efficient local feature extraction and often serve as useful pre-processing stages for both model families.
|
Convolutional layers might offer efficient local feature extraction and might mitigate the shortcomings of both architecture types.
|
||||||
@@ -4,6 +4,165 @@
|
|||||||
|
|
||||||
\section{Discussion}\label{sec:discussion}
|
\section{Discussion}\label{sec:discussion}
|
||||||
|
|
||||||
|
\subsection{RQ1: Model Architecture Evuation an Optimization}\label{subsec:discussion_rq1_model_evaluation}
|
||||||
|
|
||||||
|
|
||||||
|
The first research objective considered different model architectures and how they perform
|
||||||
|
under various hyperparameter configurations, with respect to the optimization goals of this study.
|
||||||
|
|
||||||
|
We found that non-convolutional models performed best with medium resolutions and longer input windows,
|
||||||
|
where they also outperformed their convolutional counterparts.
|
||||||
|
This suggests that including more historical context improves prediction accuracy.
|
||||||
|
However, there appears to be a trade-off:
|
||||||
|
while more information can improve predictions, it also introduces additional noise, which the models struggle to handle effectively.
|
||||||
|
The strong performance at medium resolutions indicates a possible sweet spot—balancing information richness with model capacity and generalization.
|
||||||
|
|
||||||
|
The convolutional variants performed best with medium-length input windows, which was somewhat surprising.
|
||||||
|
One would expect convolutional downsampling to enable more efficient data representation,
|
||||||
|
allowing the model to extract relevant patterns from high-resolution data and to perform better on longer sequences.
|
||||||
|
However, this was not observed in our experiments.
|
||||||
|
Instead, convolutional models performed worse than non-convolutional models on longer input windows,
|
||||||
|
suggesting that the benefits of downsampling may be offset by limitations in capturing long-range dependencies.
|
||||||
|
For medium and short input windows, however, convolutional models did outperform the non-convolutional
|
||||||
|
variants—indicating that the convolution itself provides an advantage when input length is limited.
|
||||||
|
|
||||||
|
To our knowledge, no prior studies have compared different deep learning architectures for real-time fertility prediction.
|
||||||
|
This highlights both the novelty and the exploratory nature of our approach.
|
||||||
|
|
||||||
|
All these results must be interpreted with caution, as they are based on single-shot experiments and are not statistically robust.
|
||||||
|
A more rigorous evaluation would involve training all models multiple times to minimize the
|
||||||
|
impact of random initialization and other stochastic processes in training.
|
||||||
|
For most metrics, differences in performance were small, often less than 1\%, and could easily be attributed to such variability.
|
||||||
|
|
||||||
|
We are also aware of potential losses in predictive quality due to class imbalance in the labels.
|
||||||
|
Especially in long cycles, the targets are mostly zero, except for a narrow window around ovulation
|
||||||
|
(for the fertility-probability target) or the area after ovulation (for the ov-over target).
|
||||||
|
Positive-to-negative target ratios can reach 10–20:1 in long cycles, meaning for each non-zero target day,
|
||||||
|
there are 10 to 20 days with all-zero targets.
|
||||||
|
This imbalance may introduce instability during training and reduce predictive performance.
|
||||||
|
Future iterations of this study could incorporate class-weighting or loss-balancing mechanisms to address this issue.
|
||||||
|
|
||||||
|
Future work should include a more thorough parameter search and statistically more robust evaluation methodology.
|
||||||
|
A more sophisticated hyperparameter search may be necessary to identify globally optimal configurations for each model architecture.
|
||||||
|
Time and resource constraints could be alleviated using more efficient search algorithms such as Bayesian Optimization,
|
||||||
|
Genetic Algorithms, or Neural Architecture Search (NAS) to better explore the joint parameter space.
|
||||||
|
|
||||||
|
Additionally, we only focused on basic models—LSTMs and Transformers, with convolutional hybrids.
|
||||||
|
A closer look into alternative architectures, or tailoring architectures more specifically
|
||||||
|
to the characteristics of menstrual cycle data, could significantly improve predictions.
|
||||||
|
Recent Transformer variants for time series modeling, such as \emph{TimeXer}~\cite{wang_timexer_2024}
|
||||||
|
or \emph{MAMBA}~\cite{wang_is_2024}, may offer better performance.
|
||||||
|
Alternatively, a custom architecture could be developed to reflect the domain-specific structure of biological temperature data more closely.
|
||||||
|
This could be combined with a more sophisticated convolutional setup or preprocessing strategy
|
||||||
|
to handle high-resolution inputs more efficiently.
|
||||||
|
Such preprocessing might help overcome computational bottlenecks that raw LSTMs and Transformers encounter when dealing with large input sequences.
|
||||||
|
|
||||||
|
Moreover, a more statistically grounded approach to feature selection could further improve predictive performance.
|
||||||
|
Both raw and engineered features could be evaluated for their impact on model output.
|
||||||
|
Especially promising are intermediate features such as cycle-level aggregates,
|
||||||
|
temperature accumulation over time or space, and static user-level characteristics.
|
||||||
|
The database used in this study also contains an extensive set of user-logged marker events, such as intercourse,
|
||||||
|
intermediate bleeding, or illnesses, which could help the models learn correlations between these events and temperature fluctuations.
|
||||||
|
|
||||||
|
Finally, exploring alternative prediction targets may help address some of the core challenges of fertility prediction.
|
||||||
|
Beyond the fertility-probability and ov-over indicators used in this study,
|
||||||
|
targets such as the number of days to the next ovulation (or since the last), or the ovulation day
|
||||||
|
as a direct regression target, might prove more stable and informative.
|
||||||
|
As we will see in the next section, the current targets are highly sensitive to anomalies,
|
||||||
|
which may not be the case for alternative formulations.
|
||||||
|
|
||||||
|
\subsection{RQ2: Factors and Patterns that Influence Prediction}\label{susbsec:discussion_rq2_factors_and_patterns}
|
||||||
|
|
||||||
|
Our second research objective focused on identifying potential factors and patterns in the data
|
||||||
|
that influence fertility prediction.
|
||||||
|
|
||||||
|
To our knowledge, no prior work has explicitly analyzed the relationship between temperature patterns
|
||||||
|
and ovulation—including the corresponding fertile window—in a way that could directly inform machine learning models.
|
||||||
|
This underscores the exploratory nature of this analysis.
|
||||||
|
|
||||||
|
We identified a consistent pre-ovulatory temperature dip that aligned closely with the ground-truth fertility curve.
|
||||||
|
This drop was particularly pronounced in short and regular cycles.
|
||||||
|
In contrast, irregular cycles often exhibited too much variability and noise in the follicular phase
|
||||||
|
for the models to reliably detect this temperature drop, or to associate it meaningfully with increased fertility probability.
|
||||||
|
Interestingly, the magnitude of the temperature dip was strongly correlated with the predicted fertility probability:
|
||||||
|
larger dips tended to produce higher model confidence.
|
||||||
|
|
||||||
|
This observed correlation may be coincidental, or it may indicate a meaningful biological marker
|
||||||
|
for fertility and successful ovulation.
|
||||||
|
We hypothesize that there is a real association between the magnitude of the pre-ovulatory temperature dip and the likelihood of ovulation.
|
||||||
|
|
||||||
|
However, our method has a critical limitation: the ground-truth labels used were not based on clinically confirmed ovulation events.
|
||||||
|
This limitation may result not only in fertility-probability curves that are arbitrarily offset from their true value,
|
||||||
|
but also in the inclusion of cycles labeled as ovulatory that in fact were anovulatory.
|
||||||
|
As shown in Section~\ref{subsubsec:physiological_signs}, the only reliable indicator
|
||||||
|
of ovulation is daily transvaginal ultrasound, which was not feasible given the scale of our dataset.
|
||||||
|
|
||||||
|
Future studies could apply the current model to a smaller subset of cycles with clinically
|
||||||
|
confirmed ovulation and/or cycles exhibiting a clear temperature rise, to test the hypothesis
|
||||||
|
that a significant pre-ovulatory temperature drop is either necessary for ovulation or strongly correlated with fertility.
|
||||||
|
|
||||||
|
This approach may also help clarify the role of temperature anomalies in fertility prediction,
|
||||||
|
for example, the sharp spike shown in Figure~\ref{fig:results_rq2_anomaly_in_temperature_drop}.
|
||||||
|
Anomalies like this, which may be due to illness with fever symptoms, likely affect both
|
||||||
|
the menstrual cycle and the model's ability to detect pre-ovulatory fertility.
|
||||||
|
This case highlights that body temperature is highly sensitive to external physiological factors
|
||||||
|
that cannot be inferred from the temperature curve alone.
|
||||||
|
|
||||||
|
It is likely that many additional patterns or confounding factors in
|
||||||
|
the temperature data directly or indirectly affect model predictions.
|
||||||
|
Future research could explore this further, ideally in collaboration with experts in reproductive health.
|
||||||
|
This could lead to a more biologically grounded interpretation of the patterns uncovered by the models.
|
||||||
|
|
||||||
|
Moreover, improvements in label quality will naturally improve the interpretability and accuracy of predictions.
|
||||||
|
Better labels would also allow more reliable medical interpretation of the prediction outputs and the patterns driving them, as previously discussed.
|
||||||
|
|
||||||
|
\subsection{RQ3: Performance Across Regular and Irregular Cycles}\label{subsec:discussion_rq3_regular_vs_irregular}
|
||||||
|
|
||||||
|
The third research objective of this study was to compare model performance across subsets of users
|
||||||
|
with regular and irregular menstrual cycles.
|
||||||
|
|
||||||
|
We found that predictive performance is clearly sensitive to cycle irregularity.
|
||||||
|
Both overall accuracy and the improvement in performance over a growing user history
|
||||||
|
were substantially better for regular cycles compared to irregular ones.
|
||||||
|
This suggests that past cycles contain valuable information that helps the models
|
||||||
|
predict the current cycle more reliably, especially when those past cycles follow consistent patterns.
|
||||||
|
|
||||||
|
Some of this improvement can also be attributed to static features, several of which are
|
||||||
|
derived from aggregated past cycles, such as average cycle length or average ovulation day.
|
||||||
|
These features appear to be more informative and stable in the regular cycle group.
|
||||||
|
|
||||||
|
Based on the clear difference in performance, we hypothesize, that all models rely more on those static features
|
||||||
|
than on patterns identified in the temperature curves, since if that were the case, the difference would be smaller
|
||||||
|
or non-existent.
|
||||||
|
There might be additional factors that differentiate regular from irregular cycles, that might explain the results,
|
||||||
|
which have not been identified yet.
|
||||||
|
This could also point out, that it is hard or even impossible to reliably predict fertility based on temperature alone,
|
||||||
|
but this hypothesis needs to be investigated in further research.
|
||||||
|
|
||||||
|
\citeauthor{yu_tracking_2022} also report a significant drop in performance for irregular cycles
|
||||||
|
in their study~\cite{yu_tracking_2022}, particularly in terms of sensitivity.
|
||||||
|
While we cannot directly compare results due to methodological differences, especially since
|
||||||
|
our models do not perform explicit binary classification into fertile vs.\ non-fertile days, a similar trend is observable.
|
||||||
|
In our case, the models tend to overestimate fertility probability when faced with uncertainty, particularly in irregular cycles
|
||||||
|
(see Figure~\ref{fig:results_rq2_irregular_cycle_predictions_example}).
|
||||||
|
As a result, we do not report specificity or sensitivity values.
|
||||||
|
However, the use-case scenarios in the next section offer a more binary evaluation framework.
|
||||||
|
|
||||||
|
A promising direction for future work would be to further investigate the causes of
|
||||||
|
performance degradation in irregular cycle groups.
|
||||||
|
One potential experiment could involve removing static features derived from past cycles to evaluate whether the models
|
||||||
|
are genuinely using the temperature patterns from previous cycles that fall within
|
||||||
|
the current input window, or relying mainly on those engineered features.
|
||||||
|
|
||||||
|
It may also be valuable to explore the effect of increasing the input window length further.
|
||||||
|
Ideally, the model would have access to the entire cycle history of a user for training and decision-making.
|
||||||
|
However, this would likely exceed the memory and capacity constraints of the architectures used in this study.
|
||||||
|
Overcoming this limitation may require more efficient or hierarchical time series architectures, as previously discussed.
|
||||||
|
|
||||||
|
\subsection{RQ4: Use-case Evaluations}\label{subsec:discussion_rq4_use_case_evaluations}
|
||||||
|
|
||||||
|
|
||||||
|
% -------------------------------------------------------------------------------------
|
||||||
This study set out to evaluate the predictive value of body temperature for ovulation and fertility,
|
This study set out to evaluate the predictive value of body temperature for ovulation and fertility,
|
||||||
to assess the performance of different model architectures across use cases,
|
to assess the performance of different model architectures across use cases,
|
||||||
and to compare machine learning models with rule-based baselines.
|
and to compare machine learning models with rule-based baselines.
|
||||||
@@ -12,21 +171,24 @@ Below we discuss the findings in relation to these objectives, their implication
|
|||||||
\subsection{Predictive Value of Body Temperature}
|
\subsection{Predictive Value of Body Temperature}
|
||||||
Our results confirm that body core temperature carries meaningful predictive value for ovulation and fertility,
|
Our results confirm that body core temperature carries meaningful predictive value for ovulation and fertility,
|
||||||
particularly in regular cycles with clear pre-ovulatory dips.
|
particularly in regular cycles with clear pre-ovulatory dips.
|
||||||
|
This dip before the
|
||||||
In such cases, fertility-probability curves aligned closely with the ground truth,
|
In such cases, fertility-probability curves aligned closely with the ground truth,
|
||||||
demonstrating that models can reliably exploit this physiological marker.
|
demonstrating that models can reliably exploit this physiological marker.
|
||||||
However, anomalies in the signal—such as irregular spikes or absent dips—frequently led to erroneous predictions.
|
However, anomalies in the signal, such as irregular spikes or absent dips, frequently led to erroneous predictions.
|
||||||
This suggests that the models strongly rely on short-term temperature fluctuations without
|
This suggests that the models strongly rely on short-term temperature fluctuations without
|
||||||
distinguishing between ovulation-related and unrelated changes.
|
distinguishing between ovulation-related and unrelated changes.
|
||||||
|
|
||||||
The irregular-versus-regular cycle analysis reinforces this interpretation:
|
The irregular-versus-regular cycle analysis reinforces this interpretation:
|
||||||
prediction accuracy was consistently higher in regular cycles, indicating that models leverage cyclical regularity in
|
prediction accuracy was consistently higher in regular cycles, indicating that models leverage cyclical regularity in
|
||||||
addition to absolute thermal changes.
|
addition to absolute thermal changes.
|
||||||
|
Especially for regular cycles, the performance of the trained models
|
||||||
|
|
||||||
|
%[continue here: bring in your figure-based examples of temperature drops, anomalies, and unclear cases, with interpretation rather than description.]
|
||||||
|
|
||||||
Taken together, these findings highlight both the utility and the limitations of body temperature as a single biomarker.
|
Taken together, these findings highlight both the utility and the limitations of body temperature as a single biomarker.
|
||||||
While it provides a strong signal in favorable cases, its variability across users and cycles limits robustness in real-world applications.
|
While it provides a strong signal in favorable cases, its variability across users and cycles limits robustness in real-world applications.
|
||||||
Additional biomarkers or contextual information are likely required to disambiguate genuine ovulatory patterns from noise.
|
Additional biomarkers or contextual information are likely required to disambiguate genuine ovulatory patterns from noise.
|
||||||
|
|
||||||
%[continue here: bring in your figure-based examples of temperature drops, anomalies, and unclear cases, with interpretation rather than description.]
|
|
||||||
|
|
||||||
\subsection{Model Architectures and Use-Case Performance}
|
\subsection{Model Architectures and Use-Case Performance}
|
||||||
Across architectures, LSTMs consistently outperformed both Transformers and convolutional models in the fertility-probability task.
|
Across architectures, LSTMs consistently outperformed both Transformers and convolutional models in the fertility-probability task.
|
||||||
This was somewhat unexpected given the recent dominance of Transformer-based approaches in sequence modeling.
|
This was somewhat unexpected given the recent dominance of Transformer-based approaches in sequence modeling.
|
||||||
@@ -49,44 +211,6 @@ For pregnancy planning, results were less directly comparable, reflecting the mu
|
|||||||
Nonetheless, the analysis illustrates how probabilistic outputs could be adapted to individual risk preferences,
|
Nonetheless, the analysis illustrates how probabilistic outputs could be adapted to individual risk preferences,
|
||||||
highlighting the flexibility of machine learning approaches over fixed rules.
|
highlighting the flexibility of machine learning approaches over fixed rules.
|
||||||
|
|
||||||
%[continue here: expand with more detail on threshold effects, how different models fared in contraception vs. pregnancy contexts, and the implications for user-facing tools.]
|
|
||||||
|
|
||||||
\subsection{Comparison to Rule-Based Baselines}
|
|
||||||
Compared with simple heuristic baselines, all machine learning models demonstrated superior predictive performance,
|
|
||||||
particularly in irregular cycles where rule-based approaches break down.
|
|
||||||
This highlights the advantage of data-driven methods, which can learn subtle patterns and adapt to user-specific variability
|
|
||||||
that static rules cannot capture.
|
|
||||||
Nevertheless, rule-based methods retain value for their simplicity and interpretability,
|
|
||||||
and could complement machine learning models in hybrid approaches where transparency is essential.
|
|
||||||
|
|
||||||
%[continue here: connect this explicitly to natural family planning methods in the literature, and comment on where ML truly adds value.]
|
|
||||||
|
|
||||||
\subsection{Limitations}
|
|
||||||
Several limitations constrain interpretation.
|
|
||||||
First, results were reported on aggregate test sets without uncertainty quantification;
|
|
||||||
per-user predictions were not retained, preventing bootstrap confidence intervals or paired statistical testing.
|
|
||||||
Second, labels were generated by a retrospective algorithm trained on expert annotations.
|
|
||||||
Any inaccuracies in this algorithm propagate directly into the training data and may bias model learning.
|
|
||||||
Third, reliance on temperature alone leaves the models vulnerable to anomalies caused by illness, lifestyle, or measurement error.
|
|
||||||
Finally, resource constraints limited the scope of hyperparameter optimization and the exploration of more advanced architectures.
|
|
||||||
|
|
||||||
%[continue here: add dataset-specific limitations such as age range, long-cycle imbalance, and lack of prospective evaluation.]
|
|
||||||
|
|
||||||
\subsection{Future Work}
|
|
||||||
Future extensions of this work should pursue several directions.
|
|
||||||
Incorporating additional user-entered markers—such as bleeding, stress, illness,
|
|
||||||
or intercourse—may provide critical context to disambiguate temperature anomalies.
|
|
||||||
Alternative target formulations, such as predicting the day of ovulation or the time-to-ovulation,
|
|
||||||
could reduce class imbalance and better reflect clinical needs.
|
|
||||||
Training separate models for fertility and ovulation-over tasks may also improve performance by reducing task interference.
|
|
||||||
|
|
||||||
From a methodological perspective, exploring architectures tailored for time-series forecasting—such as
|
|
||||||
TimeXer or MAMBA—alongside principled hyperparameter optimization techniques (e.g., Bayesian optimization, NAS) could yield further gains.
|
|
||||||
Most importantly, future studies should evaluate these approaches prospectively,
|
|
||||||
with clinically validated ovulation labels and diverse populations,
|
|
||||||
to establish their real-world utility in natural family planning and contraception.
|
|
||||||
|
|
||||||
%[continue here: add your own vision for clinical applications, e.g. integration into fertility apps, medical oversight, or regulatory implications.]
|
|
||||||
|
|
||||||
|
|
||||||
%\section{Discussion}\label{sec:discussion}
|
%\section{Discussion}\label{sec:discussion}
|
||||||
@@ -126,16 +250,6 @@ for potential users of the predictions.
|
|||||||
|
|
||||||
All prediction curve in this section have been generated with the best model selected in section~\ref{subsubsec:results_best_model_config_selection},
|
All prediction curve in this section have been generated with the best model selected in section~\ref{subsubsec:results_best_model_config_selection},
|
||||||
i.e., the LSTM model.
|
i.e., the LSTM model.
|
||||||
|
|
||||||
\begin{figure}[htbp]
|
|
||||||
\centering
|
|
||||||
\includegraphics[width=1.0\textwidth]{resources/figures/discussion/regular_cycle_fertility_prediction}
|
|
||||||
\caption{
|
|
||||||
Temperature rolling average and fertility-probability prediction for a user with a regular cycle pattern. (Values are scaled features)
|
|
||||||
}
|
|
||||||
\label{fig:discussion_regular_cycle_fertility_prediction}
|
|
||||||
\end{figure}
|
|
||||||
|
|
||||||
Figure~\ref{fig:discussion_regular_cycle_fertility_prediction} shows the prediction curve for the fertility-probability target
|
Figure~\ref{fig:discussion_regular_cycle_fertility_prediction} shows the prediction curve for the fertility-probability target
|
||||||
for a user with a regular cycle pattern.
|
for a user with a regular cycle pattern.
|
||||||
For such a regular cycle pattern, the predictions almost exactly match the targets.
|
For such a regular cycle pattern, the predictions almost exactly match the targets.
|
||||||
@@ -166,33 +280,6 @@ The identified temperature drop and the fertility that seems to come with it cou
|
|||||||
with more accurate ovulation labeling.
|
with more accurate ovulation labeling.
|
||||||
It might be an indicator for a successful upcoming ovulation.
|
It might be an indicator for a successful upcoming ovulation.
|
||||||
|
|
||||||
\begin{figure}[htbp]
|
|
||||||
\centering
|
|
||||||
\includegraphics[width=1.0\textwidth]{resources/figures/discussion/temperature_drop_fertility}
|
|
||||||
\caption{
|
|
||||||
Temperature rolling average and fertility-probability prediction with a clear correlation between the temperature drop
|
|
||||||
pre-ovulation and the fertility. (Values are scaled features)
|
|
||||||
}
|
|
||||||
\label{fig:discussion_temperature_drop_fertility_prediction}
|
|
||||||
\end{figure}
|
|
||||||
\begin{figure}[htbp]
|
|
||||||
\centering
|
|
||||||
\includegraphics[width=1.0\textwidth]{resources/figures/discussion/temperature_spike_in_temperature_dop}
|
|
||||||
\caption{
|
|
||||||
Temperature rolling average and fertility-probability prediction with a disruptive temperature spike during the pre-ovulatory phase,
|
|
||||||
leading to an early end of the predicted fertile window.
|
|
||||||
}
|
|
||||||
\label{fig:discussion_spike_in_temperature_drop}
|
|
||||||
\end{figure}
|
|
||||||
\begin{figure}[htbp]
|
|
||||||
\centering
|
|
||||||
\includegraphics[width=1.0\textwidth]{resources/figures/discussion/temperature_unclear_temperature_drop}
|
|
||||||
\caption{
|
|
||||||
Temperature rolling average and fertility-probability prediction with no clear temperature drop and a resulting
|
|
||||||
incorrect prediction. (Values are scaled features)
|
|
||||||
}
|
|
||||||
\label{fig:discussion_unclear_temperature_drop}
|
|
||||||
\end{figure}
|
|
||||||
|
|
||||||
The results of the irregular vs regular cycle study, as shown in~\ref{subsubsec:regular_vs_irregular_cycles},
|
The results of the irregular vs regular cycle study, as shown in~\ref{subsubsec:regular_vs_irregular_cycles},
|
||||||
indicate, that the models seem to learn recurrent cycle pattern on a per-user basis.
|
indicate, that the models seem to learn recurrent cycle pattern on a per-user basis.
|
||||||
@@ -240,53 +327,6 @@ While the results themselves can give a clear indication of both the fertility p
|
|||||||
of a given cycle is already over for any given day, there a variety of external factors that should be taken into
|
of a given cycle is already over for any given day, there a variety of external factors that should be taken into
|
||||||
consideration for a direct output to the user.
|
consideration for a direct output to the user.
|
||||||
|
|
||||||
\subsection{Limitations}\label{subsec:limiations}
|
|
||||||
This analysis reports aggregate test-set metrics without uncertainty quantification.
|
|
||||||
Because we did not retain per-user predictions, we cannot compute user-level bootstrap confidence intervals or perform paired significance testing.
|
|
||||||
As a result, apparent performance differences, especially small ones, may reflect sampling variability.
|
|
||||||
Future re-evaluation that stores per-user predictions will enable user-level bootstrapping, calibration assessment, and formal comparisons.
|
|
||||||
|
|
||||||
\subsection{Future Work}\label{sec:future_work}
|
|
||||||
There are several directions in which this study could be extended,
|
|
||||||
most of which were omitted due to time and resource constraints but represent valuable areas for future exploration.
|
|
||||||
|
|
||||||
One major area is feature selection.
|
|
||||||
The dataset used includes additional user-entered markers such as physiological signs (e.g., bleeding, illness, stress)
|
|
||||||
and external events (e.g., intercourse, pregnancy tests).
|
|
||||||
These markers were not included in the present analysis but may carry predictive value and could meaningfully improve model performance.
|
|
||||||
Similarly, the introduction of engineered or intermediate features, derived from raw inputs, may help models better
|
|
||||||
capture relevant patterns and temporal dependencies.
|
|
||||||
Additionally, the target features could be modelled in a better way, as, especially for long cycles,
|
|
||||||
there is a large imbalance of value distribution.
|
|
||||||
If a cycle has a length of 100 days with an ovulation at day 90, only 10\% of the ovulation-over targets are one.
|
|
||||||
The same applies to the fertility target, which will be zero throughout almost the whole sequence,
|
|
||||||
which will make it harder for the models to learn useful information.
|
|
||||||
|
|
||||||
Alternative target formulations could also be explored to better reflect the structure of the fertile window and ovulation.
|
|
||||||
For example, instead of predicting a daily fertility probability, models could aim to identify the absolute day of ovulation,
|
|
||||||
or estimate the time until the next (or since the last) ovulation event.
|
|
||||||
Additionally, multiple models could be trained individually for each target, to avoid confusing the models
|
|
||||||
on two different prediction tasks.
|
|
||||||
While the fertility-probability and the timing of the ovulation have an inherent causal relationship,
|
|
||||||
there might be anomalies in the data that confuse one or both targets, and independent predictions might perform better.
|
|
||||||
|
|
||||||
|
|
||||||
As noted in Section~\ref{subsubsec:data_labeling}, ovulation labels were assigned using a
|
|
||||||
retrospective algorithm trained on expert-annotated data.
|
|
||||||
Any inaccuracies in this algorithm propagate directly to the supervised learning labels.
|
|
||||||
Thus, improving prediction quality may require a newly labeled dataset—ideally combining expert review with algorithmic assistance.
|
|
||||||
|
|
||||||
Finally, while the models used in this study (LSTMs and Transformers) are well-established for time-series analysis,
|
|
||||||
they were not extensively customized.
|
|
||||||
Future work could involve tailoring architectures more specifically to the characteristics of menstrual cycle data.
|
|
||||||
Recent transformer variants designed for time series, such as \emph{TimeXer}~\cite{wang_timexer_2024} or \emph{MAMBA}~\cite{wang_is_2024},
|
|
||||||
may offer improved performance.
|
|
||||||
Alternatively, a custom architecture could be developed to better reflect the domain-specific structure of biological temperature data.
|
|
||||||
|
|
||||||
Future work may incorporate more advanced hyperparameter optimization techniques,
|
|
||||||
such as Bayesian Optimization, Genetic Algorithms, or Neural Architecture Search (NAS),
|
|
||||||
to better explore the joint parameter space in a more efficient and principled manner.
|
|
||||||
|
|
||||||
|
|
||||||
% talk about whether bbt / temperature can be used for such a task, discuss bbt doubt papers
|
% talk about whether bbt / temperature can be used for such a task, discuss bbt doubt papers
|
||||||
% While previous work has argued against the predictive value of BBT~\cite{some_author_2010}, our findings suggest otherwise.
|
% While previous work has argued against the predictive value of BBT~\cite{some_author_2010}, our findings suggest otherwise.
|
||||||
|
|||||||
@@ -8,17 +8,15 @@ While textbooks often describe a menstrual cycle as lasting 28 to 30 days with o
|
|||||||
such regularity is the exception rather than the rule~\cite{munster_length_1992, bull_real-world_2019}.
|
such regularity is the exception rather than the rule~\cite{munster_length_1992, bull_real-world_2019}.
|
||||||
For individuals with consistent cycle patterns, simple calendar-based predictions may suffice.
|
For individuals with consistent cycle patterns, simple calendar-based predictions may suffice.
|
||||||
However, for the majority, especially with increasing age and associated irregularity, more sophisticated methods are necessary.
|
However, for the majority, especially with increasing age and associated irregularity, more sophisticated methods are necessary.
|
||||||
This, combined with an ever higher age of pregnancy in industrialized and industrializing countries,
|
This, combined with the rising maternal age in industrialized and industrializing countries,
|
||||||
underscores the growing need for accurate understanding of the menstrual cycle~\cite{sauer_reproduction_2015}.
|
underscores the growing demand for accurate, individualized menstrual cycle prediction methods~\cite{sauer_reproduction_2015}.
|
||||||
|
|
||||||
For many women, the practical use cases of menstrual cycle monitoring are \emph{Natural Family Planning} (NFP) and contraception~\cite{earle_use_2021}.
|
For many individuals, the practical use cases of menstrual cycle monitoring are \emph{Natural Family Planning} (NFP) and contraception~\cite{earle_use_2021}.
|
||||||
For these use cases, it is essential to identify the ovulation and its corresponding fertile and infertile days in a cycle,
|
For these use cases, it is essential to identify the ovulation and its corresponding fertile and infertile days in a cycle,
|
||||||
to either avoid or achieve pregnancy more effectively.
|
to either avoid or achieve pregnancy more effectively.
|
||||||
|
|
||||||
Ovulation is the process in which an egg cell is released from the ovaries, making fertilization possible.
|
Ovulation, the release of an egg cell from the ovaries, is triggered by hormonal changes and accompanied
|
||||||
This process is regulated by hormonal changes, including fluctuations in luteinizing hormone (LH) and
|
by physiological shifts such as changes in cervical mucus and a rise in body temperature~\cite{wallach_prediction_1980}.
|
||||||
follicle-stimulating hormone (FSH), and is accompanied by other physiological changes such as an increase in electrical resistance
|
|
||||||
and viscosity of the cervical mucus or an increase in body temperature~\cite{wallach_prediction_1980}.
|
|
||||||
These processes remain incompletely understood and are influenced by lifestyle factors such as stress, diet, exercise,
|
These processes remain incompletely understood and are influenced by lifestyle factors such as stress, diet, exercise,
|
||||||
or health-related conditions such as Polycystic Ovary Syndrome (PCOS), making ovulation difficult to predict.
|
or health-related conditions such as Polycystic Ovary Syndrome (PCOS), making ovulation difficult to predict.
|
||||||
|
|
||||||
@@ -49,10 +47,17 @@ NFP and contraception.
|
|||||||
Finally, we demonstrate that high predictive accuracy on highly regular, curated datasets, as commonly reported in prior work,
|
Finally, we demonstrate that high predictive accuracy on highly regular, curated datasets, as commonly reported in prior work,
|
||||||
may overestimate real-world applicability, since such datasets tend to favor even simple, rule-based approaches.
|
may overestimate real-world applicability, since such datasets tend to favor even simple, rule-based approaches.
|
||||||
|
|
||||||
|
The main research objective is to evaluate the fundamental feasibility of predicting fertility and
|
||||||
|
ovulation from body temperature data using machine learning,
|
||||||
|
with a focus on how prediction performance varies across menstrual cycle types and real-world use cases.
|
||||||
|
|
||||||
The research objectives are:
|
These objectives support the broader question of whether temperature-based models can provide robust predictions
|
||||||
|
across real-world variability in cycle patterns and user needs:
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item To evaluate the predictive value of body temperature for ovulation and fertility across diverse menstrual cycle types.
|
\item To train and evaluate a set of machine learning models for ovulation and fertility prediction,
|
||||||
\item To assess the performance of different model architectures on the use cases of natural family planning and contraception, across both regular and irregular cycles.
|
using standard performance metrics such as MAE and MSE\@.
|
||||||
\item To compare sophisticated machine learning models with simple rule-based baseline approaches.
|
\item To identify influential factors and patterns that affect the prediction.
|
||||||
|
\item To compare prediction performance across regular and irregular cycles to assess how cycle variability affects feasibility.
|
||||||
|
\item To evaluate model outputs in the context of practical use cases,
|
||||||
|
such as contraception and natural family planning, using task-specific evaluation criteria.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|||||||
@@ -10,6 +10,8 @@ To address these limitations, we develop a data-driven framework based on a larg
|
|||||||
heterogeneous dataset of real-world menstrual cycles.
|
heterogeneous dataset of real-world menstrual cycles.
|
||||||
Our approach emphasizes model transparency, adaptability to irregular patterns, and the predictive utility of
|
Our approach emphasizes model transparency, adaptability to irregular patterns, and the predictive utility of
|
||||||
high-resolution core body temperature measurements.
|
high-resolution core body temperature measurements.
|
||||||
|
The overall goal is to train a model to predict the fertility-probability and information about the ovulation for
|
||||||
|
a given day, only relying on past information prior to that day.
|
||||||
This section outlines the methodology used, including preprocessing, labeling, feature extraction, and model architectures.
|
This section outlines the methodology used, including preprocessing, labeling, feature extraction, and model architectures.
|
||||||
|
|
||||||
\subsection{Data Preprocessing}\label{subsec:data_preprocessing}
|
\subsection{Data Preprocessing}\label{subsec:data_preprocessing}
|
||||||
@@ -64,15 +66,15 @@ The next section details how these labels are incorporated into feature represen
|
|||||||
The features used as model inputs have been divided into three categories:
|
The features used as model inputs have been divided into three categories:
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item \textbf{Static features} - Characteristics, that remain constant across a user's cycle, such as age, height, or average ovulation day
|
\item \textbf{Static features} - Characteristics, that remain constant across a user's cycle, such as age, height, or average ovulation day
|
||||||
\item \textbf{Known features} — Inputs known a priori at each time step, such as time of day or calendar-based variables.
|
\item \textbf{Known features} — Inputs known a priori at each time step, such as time of day or calendar-based variables (e.g., month of the year).
|
||||||
\item \textbf{Observable features} — Inputs available at the current time step, including raw and derived temperature values.
|
\item \textbf{Observable features} — Inputs available at the current time step, including raw and derived temperature values (e.g, rolling averages).
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
The target variables predicted by the model—like ovulation status or fertility probability—are described separately.
|
The target variables predicted by the model—like ovulation status or fertility probability—are described separately.
|
||||||
|
|
||||||
Each feature type can handle categorical and continuous features.
|
Each feature type can handle categorical and continuous features.
|
||||||
This allows for mixed inputs, such as scalar measurements and class labels, within the same category.
|
This allows for mixed inputs, such as scalar measurements and class labels, within the same category.
|
||||||
|
|
||||||
The categorization into four feature types is intended to clarify the conceptual roles of different input types.
|
The categorization into three feature types is intended to clarify the conceptual roles of different input types.
|
||||||
While the current models concatenate all features into a single input stream, the distinction allows for flexibility—future models
|
While the current models concatenate all features into a single input stream, the distinction allows for flexibility—future models
|
||||||
may process each feature group differently depending on their architectural design.
|
may process each feature group differently depending on their architectural design.
|
||||||
|
|
||||||
@@ -106,11 +108,12 @@ Static features provide user-specific context that helps the model learn individ
|
|||||||
%\end{table}
|
%\end{table}
|
||||||
%Table~\ref{tab:static_features} shows all static features and their descriptions.
|
%Table~\ref{tab:static_features} shows all static features and their descriptions.
|
||||||
|
|
||||||
Prior research by \citeauthor{li_menstrual_2023} has shown that menstrual cycle characteristics vary significantly with age and BMI~\cite{li_menstrual_2023}.
|
Menstrual cycle characteristics vary significantly with age and BMI~\cite{li_menstrual_2023}.
|
||||||
Including such information is therefore expected to improve predictive performance.
|
Including such information is therefore expected to improve predictive performance.
|
||||||
|
|
||||||
In addition, summary statistics from previous cycles—such as ovulation timing, temperature levels, or the fraction of ovulatory cycles—provide useful individual context.
|
In addition, summary statistics from previous cycles, such as ovulation timing, temperature levels, or the fraction of ovulatory cycles, provide useful individual context.
|
||||||
These features help the model learn subject-specific variability and better estimate the likelihood and timing of ovulation in the current cycle.
|
These features help the model learn subject-specific variability and better estimate the likelihood and timing of ovulation in the current cycle.
|
||||||
|
If no user-specific context is available yet, population-based mean values are used.
|
||||||
Table~\ref{tab:feature_overview} shows the full list of static input features.
|
Table~\ref{tab:feature_overview} shows the full list of static input features.
|
||||||
|
|
||||||
All historical features are computed using only data available prior to the current cycle, ensuring no data leakage and supporting robust, user-adaptive learning.
|
All historical features are computed using only data available prior to the current cycle, ensuring no data leakage and supporting robust, user-adaptive learning.
|
||||||
@@ -141,7 +144,7 @@ The cyclical nature of the variable is clearly visible in the transformation.
|
|||||||
Although the model architectures used are sequential, the explicit inclusion of these time features allows the models to interpret each time step in a broader context.
|
Although the model architectures used are sequential, the explicit inclusion of these time features allows the models to interpret each time step in a broader context.
|
||||||
More importantly, they enable the detection of gaps in the recording, which would otherwise not be visible from the data alone.
|
More importantly, they enable the detection of gaps in the recording, which would otherwise not be visible from the data alone.
|
||||||
|
|
||||||
Additionally, prior research has shown that the menstrual cycle may be influenced by weekly rhythms~\cite{ecochard_menstrual_2024}.
|
Menstrual cycles can be influenced by weekly rhythms~\cite{ecochard_menstrual_2024}.
|
||||||
For example, menstruation has been found to begin more frequently on Thursdays or Fridays, suggesting that behavioral or social factors may modulate certain events in the cycle.
|
For example, menstruation has been found to begin more frequently on Thursdays or Fridays, suggesting that behavioral or social factors may modulate certain events in the cycle.
|
||||||
Including this information could therefore improve the predictive quality of the models.
|
Including this information could therefore improve the predictive quality of the models.
|
||||||
|
|
||||||
@@ -242,20 +245,44 @@ The model outputs represent data-driven estimates and do not constitute medical
|
|||||||
\label{tab:feature_overview}
|
\label{tab:feature_overview}
|
||||||
\end{table}
|
\end{table}
|
||||||
|
|
||||||
|
\subsubsection{Time-Series Input Representation}
|
||||||
|
\label{subsubsec:time_series_input_representation}
|
||||||
|
|
||||||
All features were normalized based on their empirical distributions.
|
All features were normalized based on their empirical distributions.
|
||||||
A \textit{standard scaler} was applied to approximately normal features without outliers,
|
A \textit{standard scaler} was applied to approximately normal features without outliers,
|
||||||
a \textit{robust scaler} was used for distributions with outliers, and a \textit{MinMax scaler} was used for all others.
|
a \textit{robust scaler} was used for distributions with outliers, and a \textit{MinMax scaler} was used for all others.
|
||||||
Different Scalers were used for the train, validation and test sets to avoid data leakage.
|
Different Scalers were used for the train, validation and test sets to avoid data leakage.
|
||||||
|
|
||||||
For the final data matrix, all features were stacked per timestep.
|
For the final data matrix, all features are stacked per timestep.
|
||||||
The static features were repeated for each timestep.
|
The static features are repeated for each timestep.
|
||||||
We are aware of possible inefficiencies here.
|
We are aware of possible inefficiencies here.
|
||||||
A side channel for static features might improve predictive efficiency and potential quality, but
|
A side channel for static features might improve predictive efficiency and potential quality, but
|
||||||
this was left out to keep the interfaces the same for compatibility purposes between all tested models
|
this was left out to keep the interfaces the same for compatibility purposes between all tested models
|
||||||
|
|
||||||
\subsubsection{Time-Series Input Representation}
|
Let
|
||||||
\label{subsubsec:time_series_input_representation}
|
\begin{itemize}
|
||||||
|
\item \( T \) be the sequence length (number of time steps)
|
||||||
|
\item \( x_t^{\text{obs}} \in \mathbb{R}^{d_{\text{obs}}} \): observable features at time \( t \)
|
||||||
|
\item \( x_t^{\text{known}} \in \mathbb{R}^{d_{\text{known}}} \): known features at time \( t \)
|
||||||
|
\item \( x^{\text{static}} \in \mathbb{R}^{d_{\text{static}}} \): static features (repeated across time steps)
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
Then each input token at time \( t \in \{1, \dots, T\} \) is:
|
||||||
|
\[
|
||||||
|
x_t = \left[ x_t^{\text{obs}} \;\middle|\; x_t^{\text{known}} \;\middle|\; x^{\text{static}} \right]
|
||||||
|
\in \mathbb{R}^{d_{\text{obs}} + d_{\text{known}} + d_{\text{static}}}
|
||||||
|
\]
|
||||||
|
|
||||||
|
The full input sequence is then represented as a matrix:
|
||||||
|
\[
|
||||||
|
X = \begin{bmatrix}
|
||||||
|
x_1 \\
|
||||||
|
x_2 \\
|
||||||
|
\vdots \\
|
||||||
|
x_T
|
||||||
|
\end{bmatrix}
|
||||||
|
\in \mathbb{R}^{T \times (d_{\text{obs}} + d_{\text{known}} + d_{\text{static}})}
|
||||||
|
\]
|
||||||
|
|
||||||
The high temporal resolution of the temperature data, 288 measurements per day, results in very long input sequences
|
The high temporal resolution of the temperature data, 288 measurements per day, results in very long input sequences
|
||||||
that are impractical for most deep learning models to process directly.
|
that are impractical for most deep learning models to process directly.
|
||||||
@@ -269,9 +296,6 @@ where values from distinct categories (e.g., hours 23 and 0) might otherwise be
|
|||||||
|
|
||||||
The effect of different sampling resolutions and aggregation strategies is evaluated in Section~\ref{sec:results}.
|
The effect of different sampling resolutions and aggregation strategies is evaluated in Section~\ref{sec:results}.
|
||||||
|
|
||||||
To simulate real-time prediction rather than retrospective analysis, a sliding-window approach is employed.
|
|
||||||
This allows the model to make predictions based only on data available up to a specific point in the cycle.
|
|
||||||
|
|
||||||
To simulate real-time prediction, each cycle is split into overlapping,
|
To simulate real-time prediction, each cycle is split into overlapping,
|
||||||
fixed-length input windows that capture all available data up to a given time step.
|
fixed-length input windows that capture all available data up to a given time step.
|
||||||
As the cycle progresses, these windows slide forward, allowing the model to update its prediction based on growing historical context.
|
As the cycle progresses, these windows slide forward, allowing the model to update its prediction based on growing historical context.
|
||||||
@@ -318,6 +342,9 @@ Ultimately, the models used in this study were selected based on their ability t
|
|||||||
\item Generalize across users while incorporating personalized cycle context
|
\item Generalize across users while incorporating personalized cycle context
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
|
In this section we will introduce the base architectures \textbf{Long-Short-Term-Memory Models} and \textbf{Transformer Models}.
|
||||||
|
Additionally, we'll show, how the convolutional hybrids extend their functionality.
|
||||||
|
|
||||||
\subsubsection{LSTM-Architecture}\label{subsubsec:lstm_architecture}
|
\subsubsection{LSTM-Architecture}\label{subsubsec:lstm_architecture}
|
||||||
\begin{figure}[htbp]
|
\begin{figure}[htbp]
|
||||||
\centering
|
\centering
|
||||||
@@ -373,7 +400,7 @@ Since the task does not require sequence-to-sequence modeling, only the encoder
|
|||||||
Its output—one vector per input token—is aggregated via 1D adaptive average pooling, resulting in a single vector representation per sequence.
|
Its output—one vector per input token—is aggregated via 1D adaptive average pooling, resulting in a single vector representation per sequence.
|
||||||
This vector is then passed through a linear projection layer to produce the two target outputs:
|
This vector is then passed through a linear projection layer to produce the two target outputs:
|
||||||
fertility probability and ovulation-over indicator.
|
fertility probability and ovulation-over indicator.
|
||||||
Note, that in contrast to the original use case of machine-translation, not special tokens are necessary here, as we do not perform sequence-to-sequence prediction.
|
Note, that in contrast to the original use case of machine-translation, no special tokens are necessary here, as we do not perform sequence-to-sequence prediction.
|
||||||
|
|
||||||
Figure~\ref{fig:methodology_transformer_architecture} shows the overall architecture.
|
Figure~\ref{fig:methodology_transformer_architecture} shows the overall architecture.
|
||||||
The stacked inputs and outputs indicate batch processing.
|
The stacked inputs and outputs indicate batch processing.
|
||||||
@@ -434,11 +461,20 @@ The models were trained using a configurable framework developed specifically fo
|
|||||||
allowing for flexible experimentation with different architectures, input feature sets, and
|
allowing for flexible experimentation with different architectures, input feature sets, and
|
||||||
hyperparameter configurations.
|
hyperparameter configurations.
|
||||||
|
|
||||||
The training process is organized into distinct \textit{runs}, each representing a set of model experiments with a shared base configuration.
|
The training process is organized into distinct \textit{runs}, each representing a set of model experiments
|
||||||
Within a run, variable parameters—such as input sequence length, hidden layer size, dropout rate,
|
(e.g., a sweep over possible input sequence lengths), with a shared base configuration (e.g., fixed input resolution for the input sequence length sweep).
|
||||||
or specific feature subsets—are systematically swept across predefined value ranges.
|
Within a run, variable parameters, such as input sequence length, hidden layer size, dropout rate,
|
||||||
|
or specific feature subsets, are swept across predefined value ranges.
|
||||||
|
|
||||||
For each combination of parameters, a dedicated training and evaluation procedure is performed.
|
We define 3 runs for each base architecture and 2 for each convolutional architecture.
|
||||||
|
\begin{itemize}
|
||||||
|
\item \textbf{Input-Sequence-Length Run:} explores different input sequence lengths
|
||||||
|
\item \textbf{Input Resolution Run:} explores different input resolutions (only for base architectures)
|
||||||
|
\item \textbf{Model Parameter Run:} explores different model hyperparameters, e.g., hidden layer size
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
For each combination of parameters (e.g., 20 day input sequence length, resolution of 12 values per day),
|
||||||
|
a dedicated training and evaluation procedure is performed.
|
||||||
This structure supports efficient hyperparameter exploration and ensures consistent, reproducible
|
This structure supports efficient hyperparameter exploration and ensures consistent, reproducible
|
||||||
training conditions across models.
|
training conditions across models.
|
||||||
|
|
||||||
@@ -576,7 +612,8 @@ Each model was trained for up to 30 epochs, with early stopping based on validat
|
|||||||
|
|
||||||
To meaningfully compare model performance, we define a set of metrics according to the research objectives,
|
To meaningfully compare model performance, we define a set of metrics according to the research objectives,
|
||||||
that capture both overall accuracy and behavior at key points in the prediction sequence as well as cover the use cases introduced in~\ref{subsubsec:practical_use_cases}.
|
that capture both overall accuracy and behavior at key points in the prediction sequence as well as cover the use cases introduced in~\ref{subsubsec:practical_use_cases}.
|
||||||
This includes metrics for different temporal segments, enabling a more detailed understanding of model strengths and limitations.
|
This includes metrics for different temporal segments, such as before and after the ovulation,
|
||||||
|
enabling a more detailed understanding of model strengths and limitations.
|
||||||
|
|
||||||
\subsubsection{Baseline Comparisons}\label{subsubsec:baseline_comparisons}
|
\subsubsection{Baseline Comparisons}\label{subsubsec:baseline_comparisons}
|
||||||
|
|
||||||
@@ -595,30 +632,32 @@ In many cases, it remains unclear whether proposed models genuinely outperform s
|
|||||||
|
|
||||||
\subsubsection{Evaluation Metrics}\label{subsubsec:evaluation_metrics}
|
\subsubsection{Evaluation Metrics}\label{subsubsec:evaluation_metrics}
|
||||||
|
|
||||||
The base metric used for all categories is the mean absolute error (MAE),
|
The base metric used for all categories is the mean squared error (MAE),
|
||||||
which describes the average absolute deviation of the prediction from the target value,
|
which describes the average squared deviation of the prediction from the target value,
|
||||||
and is defined as:
|
and is defined as:
|
||||||
|
\begin{align}
|
||||||
|
\text{MSE} = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2
|
||||||
|
\end{align}
|
||||||
|
|
||||||
|
|
||||||
|
where \(y_i\) is the observed value and \(\hat{y}_i\) the predicted value.
|
||||||
|
|
||||||
|
MSE penalizes larger errors more heavily, making it useful for highlighting substantial deviations.
|
||||||
|
This is particularly relevant for model comparison, where disproportionate errors can skew performance.
|
||||||
|
Moreover, since the fertility probability target was trained using an MSE-based loss function,
|
||||||
|
this metric directly reflects the optimization objective.
|
||||||
|
|
||||||
|
To complement this, we also report the mean squared error (MAE):
|
||||||
\begin{align}
|
\begin{align}
|
||||||
\text{MAE} = \frac{1}{n} \sum_{i=1}^{n} \left| y_i - \hat{y}_i \right|
|
\text{MAE} = \frac{1}{n} \sum_{i=1}^{n} \left| y_i - \hat{y}_i \right|
|
||||||
\end{align}
|
\end{align}
|
||||||
|
|
||||||
where \(y_i\) is the observed value and \(\hat{y}_i\) the predicted value.
|
where \(y_i\) is the observed value and \(\hat{y}_i\) the predicted value.
|
||||||
|
|
||||||
MAE was selected for its intuitive interpretability.
|
MAE was selected for its intuitive interpretability.
|
||||||
In particular, the fertility probability target lends itself well to an absolute error interpretation,
|
In particular, the fertility probability target lends itself well to an absolute error interpretation,
|
||||||
making MAE a natural choice for evaluating prediction accuracy.
|
making MAE a natural choice for evaluating prediction accuracy.
|
||||||
|
However, we will only be using the MAE as a secondary metric, as we will base our further interpretation of
|
||||||
To complement this, we also report the mean squared error (MSE):
|
the model performances on the use-case evaluations, that provide inherent real-world interpretability.
|
||||||
\begin{align}
|
|
||||||
\text{MSE} = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2
|
|
||||||
\end{align}
|
|
||||||
where \(y_i\) is the observed value and \(\hat{y}_i\) the predicted value.
|
|
||||||
|
|
||||||
MSE penalizes larger errors more heavily than MAE, making it useful for highlighting substantial deviations.
|
|
||||||
This is particularly relevant for model comparison, where disproportionate errors can skew performance.
|
|
||||||
Moreover, since the fertility probability target was trained using an MSE-based loss function,
|
|
||||||
this metric directly reflects the optimization objective.
|
|
||||||
|
|
||||||
We considered including the coefficient of determination (\(R^2\)) as an evaluation metric.
|
We considered including the coefficient of determination (\(R^2\)) as an evaluation metric.
|
||||||
However, we found that the target windows frequently exhibited very low variance,
|
However, we found that the target windows frequently exhibited very low variance,
|
||||||
@@ -652,20 +691,20 @@ Tables~\ref{tab:fertility_mae_metrics} and~\ref{tab:ov_over_mae_metrics} summari
|
|||||||
\toprule
|
\toprule
|
||||||
\textbf{Metric Name} & \textbf{Description} \\
|
\textbf{Metric Name} & \textbf{Description} \\
|
||||||
\midrule
|
\midrule
|
||||||
\multicolumn{2}{@{}l}{\textbf{Mean Absolute Error}} \\
|
|
||||||
\midrule
|
|
||||||
Fertility Overall & MAE over the entire sequence. \\
|
|
||||||
During-Fertility & MAE during the fertile phase. \\
|
|
||||||
Non-Fertility & MAE on the non-fertile days. \\
|
|
||||||
\midrule
|
|
||||||
\multicolumn{2}{@{}l}{\textbf{Mean Squared Error}} \\
|
\multicolumn{2}{@{}l}{\textbf{Mean Squared Error}} \\
|
||||||
\midrule
|
\midrule
|
||||||
Fertility Overall & MSE over the entire sequence. \\
|
Fertility Overall & MSE over the entire sequence. \\
|
||||||
During-Fertility & MSE during the fertile phase. \\
|
During-Fertility & MSE during the fertile phase. \\
|
||||||
Non-Fertility & MSE on the non-fertile days. \\
|
Non-Fertility & MSE on the non-fertile days. \\
|
||||||
|
\midrule
|
||||||
|
\multicolumn{2}{@{}l}{\textbf{Mean Absolute Error}} \\
|
||||||
|
\midrule
|
||||||
|
Fertility Overall & MAE over the entire sequence. \\
|
||||||
|
During-Fertility & MAE during the fertile phase. \\
|
||||||
|
Non-Fertility & MAE on the non-fertile days. \\
|
||||||
\bottomrule
|
\bottomrule
|
||||||
\end{tabular}
|
\end{tabular}
|
||||||
\caption{Evaluation metrics of the fertility probability target based on mean absolute error (MAE) and mean squared error (MSE) at various intervals across the predicted fertility window.}
|
\caption{Evaluation metrics of the fertility probability target based on mean squared error (MSE) and mean absolute error (MAE) at various intervals across the predicted fertility window.}
|
||||||
\label{tab:fertility_mae_metrics}
|
\label{tab:fertility_mae_metrics}
|
||||||
\end{table}
|
\end{table}
|
||||||
|
|
||||||
@@ -677,20 +716,20 @@ Tables~\ref{tab:fertility_mae_metrics} and~\ref{tab:ov_over_mae_metrics} summari
|
|||||||
\toprule
|
\toprule
|
||||||
\textbf{Metric Name} & \textbf{Description} \\
|
\textbf{Metric Name} & \textbf{Description} \\
|
||||||
\midrule
|
\midrule
|
||||||
\multicolumn{2}{@{}l}{\textbf{Mean Absolute Error}} \\
|
|
||||||
\midrule
|
|
||||||
OV-Over Overall & MAE over the entire sequence. \\
|
|
||||||
Pre-OV & MAE before the ovulation. \\
|
|
||||||
Post-OV & MAE after the ovulation. \\
|
|
||||||
\midrule
|
|
||||||
\multicolumn{2}{@{}l}{\textbf{Mean Squared Error}} \\
|
\multicolumn{2}{@{}l}{\textbf{Mean Squared Error}} \\
|
||||||
\midrule
|
\midrule
|
||||||
OV-Over Overall & MSE over the entire sequence. \\
|
OV-Over Overall & MSE over the entire sequence. \\
|
||||||
Pre-OV & MSE before the ovulation. \\
|
Pre-OV & MSE before the ovulation. \\
|
||||||
Post-OV & MSE after the ovulation. \\
|
Post-OV & MSE after the ovulation. \\
|
||||||
|
\midrule
|
||||||
|
\multicolumn{2}{@{}l}{\textbf{Mean Absolute Error}} \\
|
||||||
|
\midrule
|
||||||
|
OV-Over Overall & MAE over the entire sequence. \\
|
||||||
|
Pre-OV & MAE before the ovulation. \\
|
||||||
|
Post-OV & MAE after the ovulation. \\
|
||||||
\bottomrule
|
\bottomrule
|
||||||
\end{tabular}
|
\end{tabular}
|
||||||
\caption{Evaluation metrics of the ovulation-over target based on mean absolute error (MAE) and mean squared error (MSE) at various intervals across the predicted fertility window.}
|
\caption{Evaluation metrics of the ovulation-over target based on mean squared error (MSE) and mean absolute error (MAE) at various intervals across the predicted fertility window.}
|
||||||
\label{tab:ov_over_mae_metrics}
|
\label{tab:ov_over_mae_metrics}
|
||||||
\end{table}
|
\end{table}
|
||||||
|
|
||||||
@@ -701,8 +740,9 @@ This step was necessary to keep the computational effort manageable,
|
|||||||
as exhaustively testing all possible configurations for every subsequent metric would have been prohibitively expensive.
|
as exhaustively testing all possible configurations for every subsequent metric would have been prohibitively expensive.
|
||||||
|
|
||||||
Selection was based primarily on the \textbf{Fertility-Overall MSE} metric,
|
Selection was based primarily on the \textbf{Fertility-Overall MSE} metric,
|
||||||
as it most directly reflects the main objective of this study: predicting fertility.
|
as it most directly reflects the main objective of this study: predicting fertility,
|
||||||
In cases where the difference between configurations was small,
|
and we want to penalize larger errors more, as they are much more problematic for our use-case scenarios.
|
||||||
|
In cases where the difference between configurations was small (less than \(\pm\) 5\% metric value),
|
||||||
we preferred the option that aligned with the general tendency of the model architecture.
|
we preferred the option that aligned with the general tendency of the model architecture.
|
||||||
For example, if an architecture consistently performed better with more input data or longer sequences,
|
For example, if an architecture consistently performed better with more input data or longer sequences,
|
||||||
but the Fertility-Overall MSE was only marginally better for a shorter window, we selected the longer window.
|
but the Fertility-Overall MSE was only marginally better for a shorter window, we selected the longer window.
|
||||||
|
|||||||
@@ -4,6 +4,12 @@
|
|||||||
|
|
||||||
\section{Related Work}\label{sec:related_work}
|
\section{Related Work}\label{sec:related_work}
|
||||||
|
|
||||||
|
This section will introduce related work of both ovulation detection and ovulation prediction.
|
||||||
|
First, we'll introduce early work on the detection of the ovulation based on biomarkers.
|
||||||
|
Then, we'll show how others have used body temperature to predict ovulation and what their limitations are.
|
||||||
|
Lastly, we will take a closer look at related work that uses other biomarkers as base, or as an addition to the body
|
||||||
|
temperature for ovulation and fertility prediction.
|
||||||
|
|
||||||
A variety of approaches have historically been explored for ovulation detection and prediction,
|
A variety of approaches have historically been explored for ovulation detection and prediction,
|
||||||
ranging from hormonal assays to physiological signal tracking.
|
ranging from hormonal assays to physiological signal tracking.
|
||||||
|
|
||||||
@@ -73,7 +79,8 @@ For menstruation prediction, the model detected 70.70\% of menstruation days in
|
|||||||
These results indicate that the model performed well in regular cycles but struggled with irregularity, particularly in detecting the fertile window.
|
These results indicate that the model performed well in regular cycles but struggled with irregularity, particularly in detecting the fertile window.
|
||||||
|
|
||||||
Complementing academic efforts, several commercial products have adopted temperature-based tracking,
|
Complementing academic efforts, several commercial products have adopted temperature-based tracking,
|
||||||
such as \textit{Ava}~\cite{sl_ava_nodate}, \textit{Daysy}~\cite{electronics_zykluscomputer_nodate} or \textit{Trackle}~\cite{noauthor_trackle_nodate}.
|
such as \textit{Ava}~\cite{sl_ava_nodate}, \textit{Daysy}~\cite{electronics_zykluscomputer_nodate}, \textit{Trackle}~\cite{noauthor_trackle_nodate}
|
||||||
|
or \textit{Natural Cycles}~\cite{noauthor_natural_nodate}.
|
||||||
However, these products typically rely on proprietary algorithms, and no peer-reviewed publications are available detailing their methodology or performance.
|
However, these products typically rely on proprietary algorithms, and no peer-reviewed publications are available detailing their methodology or performance.
|
||||||
This lack of transparency limits their scientific evaluation and comparability.
|
This lack of transparency limits their scientific evaluation and comparability.
|
||||||
In contrast, the present study provides an open and data-driven approach to ovulation prediction based on continuous temperature data, aiming to contribute reproducible evidence to the field.
|
In contrast, the present study provides an open and data-driven approach to ovulation prediction based on continuous temperature data, aiming to contribute reproducible evidence to the field.
|
||||||
@@ -81,7 +88,7 @@ In contrast, the present study provides an open and data-driven approach to ovul
|
|||||||
\subsection{Other Physiological Signals}\label{subsec:other_physiolocical_signals}
|
\subsection{Other Physiological Signals}\label{subsec:other_physiolocical_signals}
|
||||||
In addition to temperature, other physiological signals have been explored for ovulation and cycle phase prediction.
|
In addition to temperature, other physiological signals have been explored for ovulation and cycle phase prediction.
|
||||||
|
|
||||||
As early as \citeyear{moreno_temporal_1988}, researchers investigated ovulation prediction based on the electrical resistance of salivary and vaginal secretions~\cite{moreno_temporal_1988}.
|
As early as~\citeyear{moreno_temporal_1988}, researchers investigated ovulation prediction based on the electrical resistance of salivary and vaginal secretions~\cite{moreno_temporal_1988}.
|
||||||
Their study analyzed 29 cycles from 11 women, with daily recordings of BBT, urinary LH, pelvic ultrasound, and ovulation predictor kit results.
|
Their study analyzed 29 cycles from 11 women, with daily recordings of BBT, urinary LH, pelvic ultrasound, and ovulation predictor kit results.
|
||||||
Participants were under the age of 35, had cycle lengths between 25 and 35 days, and had abstained from hormone therapies for at least two months prior to the study.
|
Participants were under the age of 35, had cycle lengths between 25 and 35 days, and had abstained from hormone therapies for at least two months prior to the study.
|
||||||
|
|
||||||
@@ -92,7 +99,7 @@ These findings suggest that electrical resistance is a strong physiological mark
|
|||||||
A related modern implementation is the commercial product \textit{kegg}~\cite{noauthor_kegg_nodate}, which measures the electrical resistance of cervical mucus.
|
A related modern implementation is the commercial product \textit{kegg}~\cite{noauthor_kegg_nodate}, which measures the electrical resistance of cervical mucus.
|
||||||
The device uses an undisclosed algorithm to estimate fertility status based on these readings, although no peer-reviewed validation studies are currently available.
|
The device uses an undisclosed algorithm to estimate fertility status based on these readings, although no peer-reviewed validation studies are currently available.
|
||||||
|
|
||||||
\citeauthor{masuda_machine_2025} developed a machine learning algorithm to classify phases of the menstrual cycle
|
In~\citeyear{masuda_machine_2025}, \citeauthor{masuda_machine_2025} developed a machine learning algorithm to classify phases of the menstrual cycle
|
||||||
(follicular vs. luteal) based on sleeping heart rate, as recorded by a fitness tracker~\cite{masuda_machine_2025}.
|
(follicular vs. luteal) based on sleeping heart rate, as recorded by a fitness tracker~\cite{masuda_machine_2025}.
|
||||||
They used an XGBoost classifier for this binary task and additionally performed ovulation day prediction,
|
They used an XGBoost classifier for this binary task and additionally performed ovulation day prediction,
|
||||||
although the details of this task were not fully specified.
|
although the details of this task were not fully specified.
|
||||||
@@ -119,7 +126,7 @@ waking—they report classification accuracies between 0.843 and 0.864, dependin
|
|||||||
with very similar numbers for precision, recall, specificity and F1 score.
|
with very similar numbers for precision, recall, specificity and F1 score.
|
||||||
Ovulation day prediction yielded an average absolute error between 3.6 and 4.1 days.
|
Ovulation day prediction yielded an average absolute error between 3.6 and 4.1 days.
|
||||||
|
|
||||||
\paragraph{Summary:}
|
\subsection{Summary}\label{subsec:related_work_summary}
|
||||||
While various physiological signals and modeling strategies have been explored for ovulation prediction,
|
While various physiological signals and modeling strategies have been explored for ovulation prediction,
|
||||||
many existing studies are limited by small, highly selective datasets, assumptions of cycle regularity, or reliance on proprietary algorithms.
|
many existing studies are limited by small, highly selective datasets, assumptions of cycle regularity, or reliance on proprietary algorithms.
|
||||||
The present work extends prior approaches by leveraging a large, heterogeneous dataset of real-world cycles and applying transparent,
|
The present work extends prior approaches by leveraging a large, heterogeneous dataset of real-world cycles and applying transparent,
|
||||||
|
|||||||
@@ -3,19 +3,18 @@
|
|||||||
|
|
||||||
|
|
||||||
\section{Results}\label{sec:results}
|
\section{Results}\label{sec:results}
|
||||||
We report results for two targets: (i) fertility probability and (ii) an indicator that ovulation has already occurred (OV-Over).
|
|
||||||
Unless stated otherwise, \textbf{MSE} is the primary metric (equivalent to the Brier score for probabilistic targets),
|
|
||||||
and \textbf{MAE} is secondary.
|
|
||||||
We first summarize overall performance across architectures, then analyze sensitivity to input window length,
|
|
||||||
input resolution, and model capacity.
|
|
||||||
Finally, we compare the best configurations to three baselines and present stratified and use-case analyses.
|
|
||||||
|
|
||||||
\subsection{Overall Model Performance Across Architectures}\label{subsec:overall_model_performance_across_architectures}
|
% find introduction
|
||||||
|
|
||||||
|
\subsection{RQ1: Comparative Study of Model Architectures}\label{subsec:rq1_temp_predictive_value}
|
||||||
|
|
||||||
We systematically evaluated multiple model architectures to assess their performance in
|
We systematically evaluated multiple model architectures to assess their performance in
|
||||||
predicting fertility probability and ovulation-over targets.
|
predicting the targets.
|
||||||
|
We report results for two targets: (i) fertility probability and (ii) an indicator that ovulation has already occurred (OV-Over).
|
||||||
Each architecture was tested across a range of input window lengths, temporal resolutions, and model capacities.
|
Each architecture was tested across a range of input window lengths, temporal resolutions, and model capacities.
|
||||||
The best-performing configurations for each architecture were selected for downstream analyses.
|
The best-performing configurations for each architecture were selected for downstream analyses.
|
||||||
|
Unless stated otherwise, \textbf{MSE} is the primary metric (equivalent to the Brier score for probabilistic targets),
|
||||||
|
and \textbf{MAE} is secondary.
|
||||||
|
|
||||||
All metrics reported in this section are point estimates without confidence intervals; therefore, comparisons are descriptive.
|
All metrics reported in this section are point estimates without confidence intervals; therefore, comparisons are descriptive.
|
||||||
|
|
||||||
@@ -124,7 +123,7 @@ Results are summarized in Table~\ref{tab:fertility_resolution_compact_mse}; full
|
|||||||
\paragraph{Impact of model parameters.}
|
\paragraph{Impact of model parameters.}
|
||||||
|
|
||||||
We next evaluate how architectural complexity, i.e., hidden size, number of layers,
|
We next evaluate how architectural complexity, i.e., hidden size, number of layers,
|
||||||
and number of attention heads—influences performance under fixed input settings (160 days at 12/day for LSTM/Transformer, 40 days for convolutional models).
|
and number of attention heads, influences performance under fixed input settings (160 days at 12/day for LSTM/Transformer, 40 days for convolutional models).
|
||||||
Parameters are reported as (hidden size × number of layers) for LSTM models and (embedding size × number of encoders × attention heads) for Transformers.
|
Parameters are reported as (hidden size × number of layers) for LSTM models and (embedding size × number of encoders × attention heads) for Transformers.
|
||||||
|
|
||||||
For the \textbf{LSTM}, the best overall and fertile-day MSEs are both observed at a configuration with 512 hidden units and 4 layers.
|
For the \textbf{LSTM}, the best overall and fertile-day MSEs are both observed at a configuration with 512 hidden units and 4 layers.
|
||||||
@@ -194,9 +193,6 @@ The \textbf{LSTM} performs best before ovulation (MSE 0.0212 at 20 days), while
|
|||||||
The \textbf{Convolutional LSTM} favors short windows, with the best overall MSE (0.0699), before-OV (0.0389),
|
The \textbf{Convolutional LSTM} favors short windows, with the best overall MSE (0.0699), before-OV (0.0389),
|
||||||
and after-OV (0.0833) all occurring at 20 days.
|
and after-OV (0.0833) all occurring at 20 days.
|
||||||
The \textbf{Convolutional Transformer} performs best overall at 40 days and best before ovulation at 160 days (MSE 0.0286).
|
The \textbf{Convolutional Transformer} performs best overall at 40 days and best before ovulation at 160 days (MSE 0.0286).
|
||||||
|
|
||||||
These trends suggest that intermediate windows (20–40 days) often balance short- and long-term signal,
|
|
||||||
while long windows (e.g., 160 days) help capture post-ovulation patterns.
|
|
||||||
See Table~\ref{tab:ovover_windows_compact_mse} for a summary.
|
See Table~\ref{tab:ovover_windows_compact_mse} for a summary.
|
||||||
|
|
||||||
\begin{table}[t]
|
\begin{table}[t]
|
||||||
@@ -242,7 +238,6 @@ with best before-OV and after-OV MSEs at 12/day (0.0212) and 48/day (0.0550), re
|
|||||||
|
|
||||||
The \textbf{Transformer} performs best overall at 72/day (0.0585),
|
The \textbf{Transformer} performs best overall at 72/day (0.0585),
|
||||||
with lowest before-OV MSE at 12/day (0.0255) and after-OV MSE at 288/day (0.0578).
|
with lowest before-OV MSE at 12/day (0.0255) and after-OV MSE at 288/day (0.0578).
|
||||||
This indicates that high resolution benefits post-ovulation prediction, while lower rates suffice for pre-ovulation.
|
|
||||||
|
|
||||||
Results are summarized in Table~\ref{tab:ovover_resolution_compact_mse};
|
Results are summarized in Table~\ref{tab:ovover_resolution_compact_mse};
|
||||||
full resolution grids are in Appendix Table~\ref{tab:ov_over_results_by_resolution}.
|
full resolution grids are in Appendix Table~\ref{tab:ov_over_results_by_resolution}.
|
||||||
@@ -334,7 +329,8 @@ while also considering the general performance trends of each model.
|
|||||||
Tables~\ref{tab:best_configs_lstm} and~\ref{tab:best_configs_transformer} summarize the selected hyperparameters for each architecture,
|
Tables~\ref{tab:best_configs_lstm} and~\ref{tab:best_configs_transformer} summarize the selected hyperparameters for each architecture,
|
||||||
including input window length, temporal resolution, and model complexity.
|
including input window length, temporal resolution, and model complexity.
|
||||||
For convolutional models, the input resolution was always fixed at the full 288 measurements per day.
|
For convolutional models, the input resolution was always fixed at the full 288 measurements per day.
|
||||||
|
For the Transformer architecture, we made the decision to use longer input windows, as the performance on longer
|
||||||
|
input windows was competitive to the best measured at 40 days, but includes much more context information.
|
||||||
|
|
||||||
\begin{table}[htbp]
|
\begin{table}[htbp]
|
||||||
\centering
|
\centering
|
||||||
@@ -389,9 +385,9 @@ All trained architectures outperform the baseline models across all evaluation m
|
|||||||
& Fertility Overall & Fertile Days & Non-Fertile Days & OV-Over Overall & OV-Over Before OV & OV-Over After OV \\
|
& Fertility Overall & Fertile Days & Non-Fertile Days & OV-Over Overall & OV-Over Before OV & OV-Over After OV \\
|
||||||
\midrule
|
\midrule
|
||||||
Transformer & 0.0037 & \textbf{0.0089} & 0.0017 & 0.0508 & 0.0236 & 0.0581 \\
|
Transformer & 0.0037 & \textbf{0.0089} & 0.0017 & 0.0508 & 0.0236 & 0.0581 \\
|
||||||
Convolutional Transformer & 0.0038 & 0.0098 & 0.0014 & 0.0517 & 0.0305 & 0.0566 \\
|
|
||||||
LSTM & \textbf{0.0036} & 0.0104 & \textbf{0.0008} & \textbf{0.0437} & \textbf{0.0233} & \textbf{0.0492} \\
|
LSTM & \textbf{0.0036} & 0.0104 & \textbf{0.0008} & \textbf{0.0437} & \textbf{0.0233} & \textbf{0.0492} \\
|
||||||
Convolutional LSTM & 0.0037 & 0.0092 & 0.0014 & 0.0499 & 0.0281 & 0.0563 \\
|
Convolutional LSTM & 0.0037 & 0.0092 & 0.0014 & 0.0499 & 0.0281 & 0.0563 \\
|
||||||
|
Convolutional Transformer & 0.0038 & 0.0098 & 0.0014 & 0.0517 & 0.0305 & 0.0566 \\
|
||||||
User-Based-Mean Baseline & 0.0064 & 0.0154 & 0.0028 & 0.1072 & 0.0872 & 0.0983 \\
|
User-Based-Mean Baseline & 0.0064 & 0.0154 & 0.0028 & 0.1072 & 0.0872 & 0.0983 \\
|
||||||
Last-Cycle Baseline & 0.0080 & 0.0202 & 0.0031 & 0.1453 & 0.1099 & 0.1762 \\
|
Last-Cycle Baseline & 0.0080 & 0.0202 & 0.0031 & 0.1453 & 0.1099 & 0.1762 \\
|
||||||
Population-Mean Baseline & 0.0127 & 0.0258 & 0.0074 & 0.2145 & 0.0400 & 0.3749 \\
|
Population-Mean Baseline & 0.0127 & 0.0258 & 0.0074 & 0.2145 & 0.0400 & 0.3749 \\
|
||||||
@@ -410,9 +406,89 @@ Compared to the strongest baseline (User-Mean), the LSTM reduces the overall fer
|
|||||||
The performance gap is even larger when compared to the population-mean and last-cycle baselines,
|
The performance gap is even larger when compared to the population-mean and last-cycle baselines,
|
||||||
confirming the advantage of personalized and temporally-aware modeling.
|
confirming the advantage of personalized and temporally-aware modeling.
|
||||||
|
|
||||||
\subsection{Stratified Analysis}\label{subsec:stratified_analysis}
|
% -------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
\subsection{RQ2: Factors and Patterns that Influence Predictions}\label{subsec:rq2_factors_and_patterns}
|
||||||
|
|
||||||
|
\subsubsection{Representative predictions}\label{subsubsec:rq2_examples}
|
||||||
|
|
||||||
|
All following prediction were made with the best model for each architecture as selected in the previous section.
|
||||||
|
|
||||||
|
\begin{figure}[htbp]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=1.0\textwidth]{resources/figures/results/regular_cycle_pattern_fertility_prediction_example}
|
||||||
|
\caption{
|
||||||
|
Temperature rolling average and fertility-probability prediction for a user with a regular cycle pattern. (Values are scaled features)
|
||||||
|
}
|
||||||
|
\label{fig:results_rq2_regular_cycle_predictions_example}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
To visualize potential patterns in the predictions, we will show some representative prediction plots.
|
||||||
|
|
||||||
|
All models have a similar predictive behaviour throughout both the regular and irregular cycles.
|
||||||
|
Figure~\ref{fig:results_rq2_regular_cycle_predictions_example} shows, that all models come very close to the ground truth
|
||||||
|
for a regular cycle pattern.
|
||||||
|
Slight deviations from the regular cycle length, such as in cycle 5 (Measurement 150--220) show, that the models
|
||||||
|
tend to overestimate the fertility-probability in such cases.
|
||||||
|
Additionally, all models never reach the full range of fertility-probability as indicated by the ground-truth.
|
||||||
|
|
||||||
|
These predictions show a clear correlation with a temperature drop before the ovulation.
|
||||||
|
|
||||||
|
\begin{figure}[htbp]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=1.0\textwidth]{resources/figures/results/temperature_drop_pattern}
|
||||||
|
\caption{
|
||||||
|
Temperature rolling average and fertility-probability prediction showing a correlation between fertility and
|
||||||
|
the pre-ovulator temperature drop.
|
||||||
|
}
|
||||||
|
\label{fig:results_temperature_drop_pattern}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
This correlation between a pre-ovulator temperature drop and the fertility can be seen more pronounced in Figure~\ref{fig:results_temperature_drop_pattern}.
|
||||||
|
The ground-truth fertility seems to be centered around this temperature drop and all models seem to be able
|
||||||
|
to pick it up, if it is clearly distinguishable and visible in the data.
|
||||||
|
For regular cycles, this temperature drop seems to be much easier distinguishable,
|
||||||
|
as there is not as much temperature variability throughout the first cycle phase.
|
||||||
|
Additionally, there also seems to be a correlation between the height of the temperature drop and the corresponding
|
||||||
|
fertility-probability prediction by the models.
|
||||||
|
The second cycle (Measurement 35--90) has a smaller temperature drop and all models predict a smaller fertility-probability
|
||||||
|
as for the following two cycles (Measurements 90--145).
|
||||||
|
This association of temperature-drop height and fertility-probability can also be seen in Figure~\ref{fig:results_rq2_regular_cycle_predictions_example}.
|
||||||
|
The first two cycles have a smaller temperature drop compared to the following cycles and also a less pronounced prediction.
|
||||||
|
|
||||||
|
Figure~\ref{fig:results_rq2_irregular_cycle_predictions_example} shows an irregular cycle pattern
|
||||||
|
and the fertility-probability predictions for it.
|
||||||
|
For irregular cycles, all models show much more struggle in determining the ground-truth fertility.
|
||||||
|
The pre-ovulator temperature drop is far less distinguishable.
|
||||||
|
The fifth cycle (measurement 450--700) shows a much more gradual temperature drop and all model's predictions
|
||||||
|
are far off target.
|
||||||
|
The previous 2 cycles (cycle 3 and 4) are shorter and have a much more distinguishable temperature drop
|
||||||
|
and thus all models show indication for a detection of the fertile phase.
|
||||||
|
|
||||||
|
\begin{figure}[htbp]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=1.0\textwidth]{resources/figures/results/irregular_cycle_pattern_fertility_prediction_example}
|
||||||
|
\caption{
|
||||||
|
Temperature rolling average and fertility-probability prediction for a user with an irregular cycle pattern. (Values are scaled features)
|
||||||
|
}
|
||||||
|
\label{fig:results_rq2_irregular_cycle_predictions_example}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
All models seem to be easily confused by anomalies during this characteristic temperature drop, even for short and regular cycles.
|
||||||
|
Figure~\ref{fig:results_rq2_anomaly_in_temperature_drop} shows a cycle with a clear anomaly during the pre-ovulatory drop in cycle 3 (Measurements 90--125).
|
||||||
|
This confuses all models into ending the fertile phase earlier, even though fertility is likely still elevated.
|
||||||
|
|
||||||
|
\begin{figure}[htbp]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=1.0\textwidth]{resources/figures/results/spike_in_temperature_drop}
|
||||||
|
\caption{
|
||||||
|
Temperature rolling average and fertility-probability prediction for a user with an anomaly during the characteristic temperature drop. (Values are scaled features)
|
||||||
|
}
|
||||||
|
\label{fig:results_rq2_anomaly_in_temperature_drop}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
\subsubsection{Effect of user history depth}\label{subsubsec:rq2_history_depth}
|
||||||
|
|
||||||
\subsubsection{Influence of User History Depth}\label{subsubsec:influence_of_past_user_data}
|
|
||||||
\begin{figure}[htbp]
|
\begin{figure}[htbp]
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[width=0.8\textwidth]{resources/figures/results/performance_on_different_historical_contexts}
|
\includegraphics[width=0.8\textwidth]{resources/figures/results/performance_on_different_historical_contexts}
|
||||||
@@ -426,16 +502,22 @@ confirming the advantage of personalized and temporally-aware modeling.
|
|||||||
Figure~\ref{fig:results_performance_on_different_historical_context} shows the MSE for the fertility probability
|
Figure~\ref{fig:results_performance_on_different_historical_context} shows the MSE for the fertility probability
|
||||||
and OV-over targets as a function of the number of past cycles available per user, for all model architectures and baselines.
|
and OV-over targets as a function of the number of past cycles available per user, for all model architectures and baselines.
|
||||||
|
|
||||||
All four models improve on both metrics as the amount of historical data increases.
|
All four models improve slightly on both metrics as the amount of historical data increases.
|
||||||
The LSTM-based models show a larger relative improvement with longer user history than the Transformer-based variants.
|
The LSTM-based models show a larger relative improvement with longer user history than the Transformer-based variants.
|
||||||
The User-Mean Baseline also improves substantially, with the Last-Cycle Baseline showing a smaller but still notable gain.
|
|
||||||
In contrast, the Population-Mean Baseline performs worse (i.e., MSE increases) as more historical cycles are included.
|
All baselines seem produce worse prediction with larger historical contexts.
|
||||||
|
The last-cycle and population-mean baselines show the largest decrease in performance,
|
||||||
|
especially for the fertility-probability prediction target.
|
||||||
|
The user-mean baselines offers largely unchanged fertility prediction performance,
|
||||||
|
but worsens on the ov-over prediction with more historical cycles available.
|
||||||
|
|
||||||
Across all models and baselines, the variability of results increases with greater history depth:
|
Across all models and baselines, the variability of results increases with greater history depth:
|
||||||
results are more tightly clustered around the trend line with short histories,
|
results are more tightly clustered around the trend line with short histories,
|
||||||
but show greater scatter for users with longer data records.
|
but show greater scatter for users with longer data records.
|
||||||
|
|
||||||
\subsubsection{Regular vs Irregular Cycles}\label{subsubsec:regular_vs_irregular_cycles}
|
% -------------------------------------------------------------
|
||||||
|
|
||||||
|
\subsection{RQ3: Performance across Regular and Irregular Cycles}\label{subsec:rq3_regular_vs_irregular}
|
||||||
|
|
||||||
\begin{table}[htbp]
|
\begin{table}[htbp]
|
||||||
\centering
|
\centering
|
||||||
@@ -538,7 +620,6 @@ As before, all learned models outperform the baselines by a wide margin.
|
|||||||
|
|
||||||
The full table with MSE and MAE for all models can be found in the appendix, Table~\ref{tab:regular_vs_irregular_ov_over_results}.
|
The full table with MSE and MAE for all models can be found in the appendix, Table~\ref{tab:regular_vs_irregular_ov_over_results}.
|
||||||
|
|
||||||
\vspace{1em}
|
|
||||||
|
|
||||||
\begin{figure}[htbp]
|
\begin{figure}[htbp]
|
||||||
\centering
|
\centering
|
||||||
@@ -559,10 +640,12 @@ The full table with MSE and MAE for all models can be found in the appendix, Tab
|
|||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
\paragraph{Evaluation on Historical Context Depth.}
|
\paragraph{Evaluation on Historical Context Depth.}
|
||||||
Figures~\ref{fig:results_performance_on_regular_cycles} and~\ref{fig:results_performance_on_irregular_cycles} visualize performance improvements with increasing numbers of past cycles.
|
Figures~\ref{fig:results_performance_on_regular_cycles} and~\ref{fig:results_performance_on_irregular_cycles}
|
||||||
|
visualize performance improvements with increasing numbers of past cycles.
|
||||||
For regular cycles, all models except the population-mean baseline benefit from more historical data, showing consistent MSE reductions for both targets.
|
For regular cycles, all models except the population-mean baseline benefit from more historical data, showing consistent MSE reductions for both targets.
|
||||||
Interestingly, the population-mean baseline performs worse as more cycles are added.
|
Interestingly, the population-mean baseline performs worse as more cycles are added.
|
||||||
The largest improvement can be seen for the last-cycle baseline and user-mean baseline models.
|
The largest improvement can be seen for the last-cycle baseline and user-mean baseline models.
|
||||||
|
The outliers in the last-cycle and user-mean baseline are MSE values of 0.0, which result in these vertical lines.
|
||||||
|
|
||||||
In contrast, irregular cycles exhibit more variability and less performance gain with more cycles available.
|
In contrast, irregular cycles exhibit more variability and less performance gain with more cycles available.
|
||||||
All trained models improve on both targets with more context.
|
All trained models improve on both targets with more context.
|
||||||
@@ -571,255 +654,242 @@ In contrast, their MSE increases with more historical context for the fertility-
|
|||||||
The last-cycle baseline shows marginal performance improvement for the OV-over target and the same increase for the fertility-probability
|
The last-cycle baseline shows marginal performance improvement for the OV-over target and the same increase for the fertility-probability
|
||||||
target as the other two baselines.
|
target as the other two baselines.
|
||||||
|
|
||||||
|
The selected irregular cycle group has cycles with longer context, thus the irregular cycle history reaches up to 80 cycles,
|
||||||
|
while regular cycle history only reaches up to 35.
|
||||||
|
|
||||||
All models show increased output variability as the number of available past cycles grows,
|
All models show increased output variability as the number of available past cycles grows,
|
||||||
as indicated by the wider deviations from the trend lines.
|
as indicated by the wider deviations from the trend lines.
|
||||||
|
|
||||||
\subsection{Use-Case Evaluation Results}\label{subsec:use_case_evaluation_results}
|
% -------------------------------------------------------------
|
||||||
|
|
||||||
|
\subsection{RQ4: Use-Case Evaluations}\label{subsec:rq4_use_case_evaluations}
|
||||||
|
|
||||||
We evaluated the use-case scenarios described in Section~\ref{subsubsec:practical_use_cases} using the algorithms
|
We evaluated the use-case scenarios described in Section~\ref{subsubsec:practical_use_cases} using the algorithms
|
||||||
in Section~\ref{subsubsec:use_case_evaluation} across multiple fertility thresholds.
|
in Section~\ref{subsubsec:use_case_evaluation} across multiple fertility thresholds.
|
||||||
Each evaluation used the same test set of 100 users (100 user-years) and was repeated for 200 iterations
|
Each evaluation used the same test set of 100 users (100 user-years) and was repeated for 200 iterations
|
||||||
to get statistically more meaningful results.
|
to get statistically more meaningful results.
|
||||||
we report means and 95\% confidence intervals (CIs).
|
All results represent the means over all runs.
|
||||||
|
|
||||||
\subsubsection{Contraception Use-Case Results}\label{subsubsec:use_case_contraception_results}
|
\subsubsection{Contraception Use-Case Results}\label{subsubsec:use_case_contraception_results}
|
||||||
|
|
||||||
\paragraph{Threshold 0.01 (Table~\ref{tab:results_contraception_use_case_0_01}).}
|
\begin{figure}[htbp]
|
||||||
At the strictest threshold of 0.01, Transformer and LSTM models achieve the lowest pregnancy rates, only 4.4 to 4.6
|
|
||||||
on average, despite allowing approximately 3,200 intercourse events.
|
|
||||||
This equates to about 1.4 pregnancies per 1,000 intercourse events, a strong result for contraceptive reliability.
|
|
||||||
|
|
||||||
In contrast, convolutional variants (ConvLSTM and ConvTransformer) restrict intercourse events to around 1,150,
|
|
||||||
leading to roughly 34–35 pregnancies, or about 30 per 1,000 events—far less efficient in terms of balance between access and protection.
|
|
||||||
All baseline models perform substantially worse, with pregnancy counts exceeding 100 in all cases, confirming the value of personalized predictions.
|
|
||||||
|
|
||||||
\begin{table}
|
|
||||||
\centering
|
\centering
|
||||||
|
\includegraphics[width=0.9\textwidth]{resources/figures/results/contraception_use_case_results_by_fertility_threshold}
|
||||||
|
\caption{
|
||||||
|
Contraception use-case evaluation study results by fertility threshold.
|
||||||
|
}
|
||||||
|
\label{fig:results_contraception_use_case_results_by_fertility_threshold}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
\begin{subtable}{\textwidth}
|
Figure~\ref{fig:results_contraception_use_case_results_by_fertility_threshold} shows the outcomes of
|
||||||
\centering
|
the contraception use-case across fertility thresholds for each model architecture, along with the baselines.
|
||||||
\scriptsize
|
The four evaluated metrics are: number of pregnancies, number of intercourse events,
|
||||||
\begin{tabularx}{\linewidth}{l*{5}{X}}
|
number of correct denials (i.e., appropriately flagged fertile days),
|
||||||
\toprule
|
and number of incorrect denials (i.e., fertile days incorrectly flagged as infertile).
|
||||||
Model & No. of Intercourse Events & Pregnancies & Correct Denials & Incorrect Denials \\
|
|
||||||
\midrule
|
|
||||||
Convolutional LSTM & 1154 (1149-1158) & 34.9 (34.1-35.7) & 1615 (1611-1620) & 4963 (4954-4971) \\
|
|
||||||
Transformer & 3200 (3194-3207) & 4.4 (4.1-4.7) & 1817 (1812-1822) & 2717 (2710-2724) \\
|
|
||||||
Convolutional Transformer & 1156 (1151-1160) & 34.3 (33.5-35.0) & 1613 (1608-1619) & 4974 (4965-4983) \\
|
|
||||||
LSTM & 3206 (3199-3213) & 4.6 (4.3-4.9) & 1832 (1827-1838) & 2711 (2705-2717) \\
|
|
||||||
Last-Cycle Baseline & 6066 (6057-6075) & 127.5 (125.9-129.1) & 918 (915-922) & 762 (759-766) \\
|
|
||||||
Population-Mean Baseline & 5874 (5865-5883) & 153.7 (151.9-155.5) & 749 (746-752) & 1121 (1116-1125) \\
|
|
||||||
User-Mean Baseline & 5933 (5924-5942) & 105.8 (104.4-107.2) & 1030 (1026-1034) & 776 (772-779) \\
|
|
||||||
\bottomrule
|
|
||||||
\end{tabularx}
|
|
||||||
\caption{Contraception metrics at threshold \textbf{0.01} for all models.}
|
|
||||||
\label{tab:results_contraception_use_case_0_01}
|
|
||||||
\end{subtable}
|
|
||||||
|
|
||||||
\vspace{1.5em}
|
\paragraph{Pregnancies.}
|
||||||
|
All trained models start with very low pregnancy rates (Transformer: 0, LSTM: 4)
|
||||||
|
and then increase roughly linearly with the threshold,
|
||||||
|
reaching between 99 (Convolutional Transformer) and 122 (Transformer) at the highest setting.
|
||||||
|
The LSTM performs worst overall in this metric.
|
||||||
|
The Transformer starts with the lowest pregnancy rate but rises steeply,
|
||||||
|
ending with the highest number of pregnancies at threshold 0.1.
|
||||||
|
By comparison, the baselines show much higher pregnancy rates throughout,
|
||||||
|
starting between 103 (user-mean) and 150 (population-mean) and increasing by about 50 pregnancies over the range of thresholds.
|
||||||
|
|
||||||
\begin{subtable}{\textwidth}
|
\paragraph{Intercourse Events.}
|
||||||
\centering
|
All trained models except the LSTM begin with low values of about 1000 intercourse events.
|
||||||
\scriptsize
|
The LSTM starts much higher, around 3000, and increases sharply, converging toward approximately 6100.
|
||||||
\begin{tabularx}{\linewidth}{l*{5}{X}}
|
All trained model variants show curved growth resembling logarithmic convergence, approaching the same upper range.
|
||||||
\toprule
|
In contrast, the baselines start near 6000 events and converge toward the same levels as the trained models at higher thresholds.
|
||||||
Model & No. of Intercourse Events & Pregnancies & Correct Denials & Incorrect Denials \\
|
|
||||||
\midrule
|
|
||||||
Convolutional LSTM & 2509 (2502-2515) & 55.0 (54.0-56.0) & 1448 (1444-1452) & 3768 (3760-3775) \\
|
|
||||||
Transformer & 3801 (3793-3810) & 8.2 (7.8-8.6) & 1768 (1763-1773) & 2162 (2157-2168) \\
|
|
||||||
Convolutional Transformer & 2510 (2503-2516) & 55.6 (54.5-56.6) & 1448 (1443-1453) & 3776 (3769-3783) \\
|
|
||||||
LSTM & 3801 (3794-3809) & 8.2 (7.8-8.7) & 1772 (1766-1777) & 2160 (2154-2165) \\
|
|
||||||
Last-Cycle Baseline & 6106 (6096-6116) & 130.2 (128.7-131.7) & 888 (885-892) & 750 (746-753) \\
|
|
||||||
Population-Mean Baseline & 5924 (5914-5933) & 156.1 (154.3-157.8) & 716 (713-720) & 1100 (1096-1104) \\
|
|
||||||
User-Mean Baseline & 5988 (5978-5997) & 108.8 (107.3-110.3) & 998 (994-1002) & 764 (761-768) \\
|
|
||||||
\bottomrule
|
|
||||||
\end{tabularx}
|
|
||||||
\caption{Contraception metrics at threshold \textbf{0.05} for all models.}
|
|
||||||
\label{tab:results_contraception_use_case_0_05}
|
|
||||||
\end{subtable}
|
|
||||||
|
|
||||||
\vspace{1.5em}
|
\paragraph{Correct Denials.}
|
||||||
|
The number of correct denials decreases by about half across the tested thresholds.
|
||||||
|
All trained models cluster closely, starting at around 1800 correct denials,
|
||||||
|
with the Transformer and its convolutional variant slightly outperforming the LSTMs.
|
||||||
|
The baselines start at substantially lower levels: 1012 (user-mean), 902 (last-cycle), and 737 (population-mean).
|
||||||
|
|
||||||
\begin{subtable}{\textwidth}
|
\paragraph{Incorrect Denials.}
|
||||||
\centering
|
For incorrect denials, the Transformer-based models (except LSTM) start at very high values near 5000
|
||||||
\scriptsize
|
but sharply decrease and converge between 500 and 1000.
|
||||||
\begin{tabularx}{\linewidth}{l*{5}{X}}
|
The LSTM shows the same convergence pattern but starts considerably lower at 2654.
|
||||||
\toprule
|
Baselines follow a different trend: the last-cycle and user-mean baselines decrease
|
||||||
Model & No. of Intercourse Events & Pregnancies & Correct Denials & Incorrect Denials \\
|
modestly by about 100 over the range (starting at 749 and 762, respectively),
|
||||||
\midrule
|
while the population-mean baseline instead decreases from 1102 to around 879.
|
||||||
Convolutional LSTM & 3596 (3588-3603) & 75.2 (74.0-76.4) & 1292 (1288-1297) & 2847 (2840-2853) \\
|
|
||||||
Transformer & 4226 (4217-4234) & 13.3 (12.8-13.7) & 1692 (1687-1696) & 1822 (1817-1827) \\
|
|
||||||
Convolutional Transformer & 3592 (3584-3599) & 73.8 (72.7-75.0) & 1296 (1292-1301) & 2846 (2840-2852) \\
|
|
||||||
LSTM & 4222 (4214-4230) & 13.3 (12.8-13.8) & 1694 (1688-1699) & 1818 (1812-1823) \\
|
|
||||||
Last-Cycle Baseline & 6145 (6135-6155) & 134.8 (133.3-136.3) & 865 (861-868) & 744 (740-747) \\
|
|
||||||
Population-Mean Baseline & 5960 (5951-5969) & 160.3 (158.5-162.1) & 694 (691-697) & 1088 (1084-1093) \\
|
|
||||||
User-Mean Baseline & 6014 (6005-6022) & 111.8 (110.3-113.3) & 969 (965-973) & 758 (755-762) \\
|
|
||||||
\bottomrule
|
|
||||||
\end{tabularx}
|
|
||||||
\caption{Contraception metrics at threshold \textbf{0.10} for all models.}
|
|
||||||
\label{tab:results_contraception_use_case_0_10}
|
|
||||||
\end{subtable}
|
|
||||||
|
|
||||||
\caption{grouped contraception metrics at thresholds 0.01, 0.05, and 0.10. values are means over 200 iterations; 95\% confidence intervals in parentheses.}
|
\begin{figure}[htbp]
|
||||||
\label{tab:results_contraception_grouped}
|
\centering
|
||||||
\end{table}
|
\includegraphics[width=0.9\textwidth]{resources/figures/results/contraception_use_case_pregnancy_statistics}
|
||||||
|
\caption{
|
||||||
|
Contraception use-case results: pregnancies per 100 users per year and per 1000 intercourse events, stratified by fertility threshold.
|
||||||
|
}
|
||||||
|
\label{fig:results_contraception_use_case_pregnancy_statistics}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
\paragraph{Threshold 0.05 (Table~\ref{tab:results_contraception_use_case_0_05}).}
|
To facilitate comparison, Figure~\ref{fig:results_contraception_use_case_pregnancy_statistics} presents two
|
||||||
Increasing the threshold to 0.05 improves access: Transformer and LSTM models now permit approximately 3,800 intercourse
|
normalized pregnancy metrics across fertility thresholds: the number of pregnancies per 100 users per year (only one potential pregnancy is counted per user),
|
||||||
events while still limiting pregnancies to around 8.2 (2.2 per 1,000).
|
and the number of pregnancies per 1000 intercourse events.
|
||||||
This represents a ~19\% increase in events over threshold 0.01, at the cost of a modest rise in pregnancies (+3.8 absolute, +86\% relative).
|
|
||||||
|
|
||||||
Convolutional models also allow more events (~2,510) but continue to produce significantly more pregnancies (~55),
|
Here, the difference between the models becomes clearer.
|
||||||
yielding a less favorable risk-benefit profile.
|
The baselines start at 62 to 73 pregnancies per 100 users and become linearly worse over the threshold range.
|
||||||
Baselines remain underperforming.
|
|
||||||
|
|
||||||
\paragraph{Threshold 0.10 (Table~\ref{tab:results_contraception_use_case_0_10}).}
|
The LSTM performs worse than all other trained models, except for the upper end of the threshold interval.
|
||||||
A further increase to 0.10 raises Transformer/LSTM events to ~4,220, but also raises pregnancies to ~13.3 (3.1 per 1,000).
|
The Transformer, while being the best model for small thresholds, becomes worse over growing values until being on par with
|
||||||
This is a ~11\% gain in access compared to 0.05, but the pregnancy count increases by ~62\%.
|
the LSTM for the maximum tested value (0.1).
|
||||||
|
|
||||||
Meanwhile, convolutional models permit ~3,590 events and result in 74–75 pregnancies, indicating a consistent trade-off in favor of sequential models.
|
\paragraph{Summary.}
|
||||||
|
In the contraception use-case, the trained models achieve substantially lower pregnancy rates than the baselines,
|
||||||
\paragraph{Contraception—Recommended Threshold.}
|
though at the cost of fewer intercourse opportunities and more denials, both correct and incorrect.
|
||||||
Threshold 0.05 achieves a favorable balance between access and effectiveness.
|
This results in less pregnancies for both 100 users for a year and per 1000 intercourse events for all trained models.
|
||||||
Transformer and LSTM models perform best, allowing a relatively high number of intercourse events while keeping pregnancies low.
|
Within the trained models, Transformers and their convolutional variants perform best overall, while LSTMs lag behind across most metrics.
|
||||||
This threshold offers the best compromise and is selected as the most promising setting for contraceptive use.
|
There is an edge for the non-convolutional models for smaller thresholds that switches for higher values.
|
||||||
|
|
||||||
\subsubsection{Pregnancy Use-Case Results}\label{subsubsec:use_case_pregnancy_results}
|
\subsubsection{Pregnancy Use-Case Results}\label{subsubsec:use_case_pregnancy_results}
|
||||||
|
|
||||||
\begin{table}
|
\begin{figure}[htbp]
|
||||||
\centering
|
\centering
|
||||||
|
\includegraphics[width=0.9\textwidth]{resources/figures/results/pregnancy_use_case_results_by_fertility_threshold}
|
||||||
|
\caption{
|
||||||
|
Contraception use-case evaluation study results by fertility threshold.
|
||||||
|
}
|
||||||
|
\label{fig:results_pregnancy_use_case_results_by_fertility_threshold}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
\begin{subtable}{\textwidth}
|
|
||||||
\centering
|
|
||||||
\scriptsize
|
|
||||||
\begin{tabularx}{\linewidth}{l*{5}{X}}
|
|
||||||
\toprule
|
|
||||||
Model & No. of Intercourse Events & Pregnancies & Correct Deferrals & Incorrect Deferrals \\
|
|
||||||
\midrule
|
|
||||||
Convolutional LSTM & 4899 (4890-4908) & 216.9 (214.8-219.1) & 10038 & 1734 \\
|
|
||||||
Transformer & 3685 (3678-3692) & 264.9 (262.7-267.0) & 17489 & 350 \\
|
|
||||||
Convolutional Transformer & 4903 (4894-4912) & 214.3 (212.2-216.4) & 10038 & 1734 \\
|
|
||||||
LSTM & 3688 (3680-3696) & 266.9 (264.7-269.1) & 17489 & 350 \\
|
|
||||||
Last-Cycle Baseline & 1536 (1531-1541) & 138.7 (137.1-140.2) & 24593 & 4038 \\
|
|
||||||
Population-Mean Baseline & 1704 (1699-1709) & 113.5 (112.1-114.9) & 22956 & 4841 \\
|
|
||||||
User-Mean Baseline & 1652 (1647-1656) & 158.4 (156.8-160.0) & 24528 & 3523 \\
|
|
||||||
\bottomrule
|
|
||||||
\end{tabularx}
|
|
||||||
\caption{Pregnancy metrics at threshold \textbf{0.01} for all models. }
|
|
||||||
\label{tab:results_pregnancy_use_case_0_01}
|
|
||||||
\end{subtable}
|
|
||||||
|
|
||||||
\vspace{1.5em}
|
Figure~\ref{fig:results_pregnancy_use_case_results_by_fertility_threshold} presents the results for the pregnancy use-case
|
||||||
|
across varying fertility thresholds, comparing all model architectures and baselines.
|
||||||
|
The four reported metrics are: number of pregnancies, number of intercourse events, number of correct deferrals (i.e., correctly flagged infertile days),
|
||||||
|
and number of incorrect deferrals (i.e., fertile days incorrectly flagged as infertile).
|
||||||
|
|
||||||
\begin{subtable}{\textwidth}
|
The overall pattern mirrors the contraception use-case, but the optimization goal is reversed:
|
||||||
\centering
|
here, a higher number of pregnancies is desirable.
|
||||||
\scriptsize
|
|
||||||
\begin{tabularx}{\linewidth}{l*{5}{X}}
|
|
||||||
\toprule
|
|
||||||
Model & No. of Intercourse Events & Pregnancies & Correct Deferrals & Incorrect Deferrals \\
|
|
||||||
\midrule
|
|
||||||
Convolutional LSTM & 6174 (6164-6184) & 236.1 (234.1-238.2) & 4332 & 1076 \\
|
|
||||||
Transformer & 4253 (4245-4261) & 270.9 (268.6-273.1) & 14825 & 190 \\
|
|
||||||
Convolutional Transformer & 6173 (6164-6182) & 235.7 (233.6-237.9) & 4332 & 1076 \\
|
|
||||||
LSTM & 4255 (4247-4262) & 273.0 (270.6-275.3) & 14825 & 190 \\
|
|
||||||
Last-Cycle Baseline & 1581 (1576-1586) & 139.8 (138.2-141.3) & 24327 & 4091 \\
|
|
||||||
Population-Mean Baseline & 1752 (1747-1757) & 117.1 (115.6-118.6) & 22655 & 4888 \\
|
|
||||||
User-Mean Baseline & 1695 (1690-1701) & 158.3 (156.6-160.1) & 24271 & 3567 \\
|
|
||||||
\bottomrule
|
|
||||||
\end{tabularx}
|
|
||||||
\caption{Pregnancy metrics at threshold \textbf{0.05} for all models.}
|
|
||||||
\label{tab:results_pregnancy_use_case_0_05}
|
|
||||||
\end{subtable}
|
|
||||||
|
|
||||||
\vspace{1.5em}
|
\paragraph{Pregnancies.}
|
||||||
|
Trained models achieve substantially higher pregnancy rates than the baselines.
|
||||||
|
They begin at around 275 pregnancies for low thresholds and decline linearly to between 157 and 176 at higher thresholds.
|
||||||
|
By contrast, the baselines start much lower (user-mean: 159, last-cycle: 139, population-mean: 117) and also decrease linearly,
|
||||||
|
reaching 119, 102, and 71 pregnancies, respectively.
|
||||||
|
This places all trained models well above baseline performance across the full threshold range.
|
||||||
|
|
||||||
\begin{subtable}{\textwidth}
|
\paragraph{Intercourse Events.}
|
||||||
\centering
|
Trained models start with high numbers of intercourse events, near 7000, except for the LSTM which begins lower at 4252.
|
||||||
\scriptsize
|
All decline sublinearly and converge toward approximately 1500 at the highest thresholds.
|
||||||
\begin{tabularx}{\linewidth}{l*{5}{X}}
|
In contrast, the baselines start far lower, between 1700 and 1900, and decrease linearly to about 1300.
|
||||||
\toprule
|
Thus, the improved pregnancy rates of trained models come at the cost of substantially higher intercourse event counts.
|
||||||
Model & No. of Intercourse Events & Pregnancies & Correct Deferrals & Incorrect Deferrals \\
|
|
||||||
\midrule
|
|
||||||
Convolutional LSTM & 3887 (3880-3895) & 198.0 (196.1-199.9) & 14544 & 2296 \\
|
|
||||||
Transformer & 3291 (3284-3298) & 260.7 (258.6-262.7) & 19261 & 551 \\
|
|
||||||
Convolutional Transformer & 3883 (3875-3891) & 198.4 (196.6-200.3) & 14544 & 2296 \\
|
|
||||||
LSTM & 3296 (3289-3303) & 261.1 (259.1-263.2) & 19261 & 551 \\
|
|
||||||
Last-Cycle Baseline & 1509 (1504-1513) & 135.2 (133.6-136.8) & 24778 & 4010 \\
|
|
||||||
Population-Mean Baseline & 1668 (1663-1673) & 109.5 (108.1-110.9) & 23156 & 4811 \\
|
|
||||||
User-Mean Baseline & 1619 (1614-1624) & 154.0 (152.4-155.6) & 24717 & 3501 \\
|
|
||||||
\bottomrule
|
|
||||||
\end{tabularx}
|
|
||||||
\caption{Pregnancy metrics at threshold \textbf{0.10} for all models.}
|
|
||||||
\label{tab:results_pregnancy_use_case_0_10}
|
|
||||||
\end{subtable}
|
|
||||||
|
|
||||||
\caption{grouped pregnancy metrics at thresholds 0.01, 0.05, and 0.10. values are means over 200 iterations; 95\% confidence intervals in parentheses.
|
\paragraph{Correct Deferrals.}
|
||||||
Under our simulation at a fixed threshold, correct/incorrect deferrals are deterministic; CIs are therefore omitted for these columns.}
|
The baselines initially show higher numbers of correct deferrals, with values that increase linearly as thresholds rise.
|
||||||
\label{tab:results_pregnancy_grouped}
|
Trained models begin much lower but follow a logarithmic-like growth pattern,
|
||||||
\end{table}
|
eventually converging with the baselines at high thresholds.
|
||||||
|
Within the trained group, the LSTM starts with noticeably higher values than the other models, though all converge toward a similar range.
|
||||||
|
|
||||||
\paragraph{Threshold 0.01 (Table~\ref{tab:results_pregnancy_use_case_0_01}).}
|
\paragraph{Incorrect Deferrals.}
|
||||||
In the conception use-case, Transformer and LSTM models generate the highest pregnancy counts (~265–267) at ~3,685 intercourse events (72 per 1,000).
|
For trained models, incorrect deferrals start very low at small thresholds
|
||||||
Convolutional models yield fewer pregnancies (~214–217) but allow ~4,900 intercourse events, resulting in ~44 pregnancies per 1,000.
|
(Transformer: 11, LSTM: 190) and grow with a curved, logarithmic-like pattern.
|
||||||
|
At high thresholds they reach between 1906 (Convolutional Transformer) and 2378 (Transformer).
|
||||||
|
The LSTM consistently produces more incorrect deferrals than the other trained models, except upper end of the threshold value range.
|
||||||
|
The Transformer once again shows the familiar pattern of excelling at low thresholds
|
||||||
|
but converging to the weakest performance among trained models at higher thresholds.
|
||||||
|
|
||||||
Baselines underperform on both metrics, allowing fewer events and achieving lower pregnancy counts, suggesting they are
|
\begin{figure}[htbp]
|
||||||
overly conservative without yielding benefits in effectiveness.
|
\centering
|
||||||
|
\includegraphics[width=0.9\textwidth]{resources/figures/results/pregnancy_use_case_pregnancy_statistics}
|
||||||
|
\caption{
|
||||||
|
Contraception use-case evaluation study results by fertility threshold.
|
||||||
|
}
|
||||||
|
\label{fig:results_pregnancy_use_case_pregnancy_statistics}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
\paragraph{Threshold 0.05 (Table~\ref{tab:results_pregnancy_use_case_0_05}).}
|
To facilitate comparison here as well, Figure~\ref{fig:results_pregnancy_use_case_pregnancy_statistics} presents two
|
||||||
At threshold 0.05, Transformer/LSTM models slightly increase intercourse access (~4,250 events) with pregnancies rising to ~271–273 (64 per 1,000).
|
normalized pregnancy metrics across fertility thresholds: the number of pregnancies per 100 users per year,
|
||||||
Notably, these models also achieve very low incorrect deferral counts (~190), indicating they rarely block opportunities for conception when they shouldn’t.
|
and the number of pregnancies per 1000 intercourse events.
|
||||||
|
|
||||||
Convolutional models allow substantially more intercourse (~6,170) with lower pregnancy counts (~236),
|
All trained models clearly result in more pregnancies per 100 users overall.
|
||||||
but at the cost of higher incorrect deferrals (~1,076).
|
However, for lower fertility thresholds, there are fewer pregnancies per 1000 intercourse events for the trained models
|
||||||
This suggests they are more permissive but less selective.
|
compared to the baselines.
|
||||||
|
|
||||||
\paragraph{Threshold 0.10 (Table~\ref{tab:results_pregnancy_use_case_0_10}).}
|
\paragraph{Summary.}
|
||||||
At the highest threshold, Transformer/LSTM models see a drop in access (~3,290 events) and in pregnancies (~261),
|
In the pregnancy use-case, trained models clearly outperform baselines in terms of pregnancy rates,
|
||||||
but with an increase in incorrect deferrals (~551).
|
though at the expense of more intercourse events and higher incorrect deferrals.
|
||||||
Convolutional models again show a more permissive profile (~3,880 events, ~198 pregnancies), but with higher rates of incorrect deferrals (~2,296).
|
This results in less pregnancies per 1000 intercourse events for the trained models on smaller thresholds.
|
||||||
|
However, for 100 user-years, the pregnancy rates are noticeably higher than the baselines.
|
||||||
|
The LSTM underperforms relative to the Transformer-based architectures across most metrics,
|
||||||
|
while the Transformer itself exhibits strong performance at low thresholds but deteriorates more rapidly with increasing thresholds.
|
||||||
|
There is an edge for the non-convolutional models for smaller thresholds that switches for higher values.
|
||||||
|
|
||||||
This threshold leads to fewer pregnancies and more unnecessary blocks, especially for the Transformer/LSTM models.
|
|
||||||
|
|
||||||
\paragraph{Pregnancy—Recommended Threshold.}
|
% -------------------------------------------------------------
|
||||||
Threshold 0.05 strikes the best balance for conception as well.
|
|
||||||
Transformer and LSTM models provide high pregnancy counts and good access with minimal incorrect deferrals.
|
|
||||||
Compared to 0.10, it results in more successful conceptions with fewer missed opportunities, making it the optimal setting for this use-case.
|
|
||||||
|
|
||||||
\subsection{Summary of Key Findings}\label{subsec:summary_of_key_findings}
|
\subsection{Summary of key results}\label{subsec:key_results}
|
||||||
|
% Keep this as a tight bulleted list mirroring RQs; strictly findings, no causes/interpretations.
|
||||||
|
|
||||||
\paragraph{Model Performance.}
|
%\begin{itemize}[leftmargin=*]
|
||||||
LSTM models consistently achieved the lowest overall mean squared errors (MSE) across both prediction targets,
|
% \item \textbf{RQ1:} Temperature-based models achieve lowest MSEs on regular cycles; errors increase on irregular cycles.
|
||||||
fertility probability and ovulation-over (OV-over), on the held-out test set.
|
% More history generally reduces MSE, with greater variance at higher history depth.
|
||||||
Transformer models slightly outperformed LSTMs on fertile-day predictions, suggesting higher sensitivity to short-term signals.
|
% \item \textbf{RQ2:} In contraception and conception scenarios, sequential models (LSTM/Transformer) yield
|
||||||
Convolutional models (ConvLSTM and ConvTransformer) performed competitively in some configurations but generally
|
% the most favorable access–outcome trade-offs at threshold 0.05.
|
||||||
exhibited higher error and less favorable trade-offs in practical scenarios.
|
% \item \textbf{RQ3:} All ML models outperform rule-based baselines across targets and splits;
|
||||||
|
% the largest margins occur on post-ovulation metrics.
|
||||||
|
%\end{itemize}
|
||||||
|
|
||||||
\paragraph{Effect of Input Settings.}
|
\noindent\textbf{RQ1 (Architectures, context, and capacity).}
|
||||||
\textit{Input window length} significantly influenced performance.
|
\begin{itemize}
|
||||||
LSTMs and Transformers benefited from longer windows (e.g., 160\,days), especially for post-ovulation detection,
|
\item \emph{Architectures.} All learned models beat baselines by a wide margin.
|
||||||
while convolutional models favored shorter windows (e.g., 20--40\,days).
|
The \textbf{LSTM} is the most reliable overall and post-ovulation; the \textbf{Transformer} is strongest on fertile days.
|
||||||
\textit{Input resolution} showed that intermediate sampling rates (4--48\,values/day) often minimized overall error,
|
Convolutional variants are competitive but rarely best.
|
||||||
though full resolution (288/day) was most useful for detecting fertile windows in LSTM models.
|
|
||||||
|
|
||||||
\paragraph{Model Scaling.}
|
\item \emph{Temporal context.} Performance depends on window length and differs by model.
|
||||||
Larger configurations (e.g., 512 hidden units, 4--8 layers, 4--8 attention heads) generally improved performance across architectures,
|
LSTM benefits from long context (up to 160\,days), Transformers peak around 40–80\,days; conv models prefer mid-range (40\,days).
|
||||||
especially for Transformers in OV-over prediction.
|
(Tables~\ref{tab:fertility_windows_compact_mse},~\ref{tab:ovover_windows_compact_mse}.)
|
||||||
|
|
||||||
\paragraph{Comparison to Baselines.}
|
\item \emph{Input resolution.} Low–medium rates (4–48/day) minimize \emph{overall} error for sequence models; high rates help fertile-day signals.
|
||||||
All trained models substantially outperformed baseline predictors (user mean, last-cycle, population mean) across metrics and targets.
|
Conv models learn their own compression from full resolution. (Tables~\ref{tab:fertility_resolution_compact_mse},~\ref{tab:ovover_resolution_compact_mse}.)
|
||||||
The LSTM model reduced fertility MSE by 44\% and post-ovulation MSE by 59\% compared to the strongest baseline.
|
|
||||||
|
|
||||||
\paragraph{Stratified Analyses.}
|
\item \emph{Capacity.} Moderate-to-large configurations improve accuracy but with target- and phase-specific optima
|
||||||
\textit{User history depth:} More historical cycles consistently improved prediction accuracy, especially for LSTM models.
|
(e.g., LSTM \(512\times4\); Transformer \(512\times4\times4\) for fertility overall, \(512\times8\times8\) for OV-over after-OV).
|
||||||
However, output variability increased with longer histories.
|
(Tables~\ref{tab:fertility_params_compact_mse}, \ref{tab:ovover_params_compact_mse}.)
|
||||||
\textit{Cycle regularity:} All models performed better on regular cycles than irregular ones.
|
|
||||||
LSTM remained the most robust across both groups.
|
|
||||||
|
|
||||||
\paragraph{Use-Case Scenarios.}
|
\item Best configs (Tables~\ref{tab:best_configs_lstm},~\ref{tab:best_configs_transformer})
|
||||||
In \textit{contraceptive settings}, Transformer and LSTM models maintained pregnancy rates below 2.2 per 1{,}000 intercourse events
|
generalize on the held-out test set (Table~\ref{tab:results_model_selection_metrics}).
|
||||||
at a 0.05 threshold---demonstrating both high reliability and user access.
|
|
||||||
In \textit{conception settings}, the same models yielded the highest pregnancy rates ($\sim$64 per 1{,}000 events)
|
\item LSTM is best \emph{overall}: fertility MSE \(0.0036\) (best overall; best non-fertile \(0.0008\)) and OV-over overall \(0.0437\)
|
||||||
with minimal missed opportunities, again at the 0.05 threshold.
|
(best; best after-OV \(0.0492\)). Transformer is best on fertile days (MSE \(0.0089\)).
|
||||||
Convolutional models allowed more events but were less selective,
|
|
||||||
resulting in higher pregnancy rates in contraception and lower in conception scenarios.
|
\item Versus the strongest baseline (User-Mean), LSTM cuts fertility MSE by \(\sim 44\%\) and post-ovulatory MSE by \(\sim 59\%\).
|
||||||
Baseline methods were consistently outperformed in both use-cases, often sacrificing either effectiveness or access.
|
\end{itemize}
|
||||||
|
|
||||||
|
\noindent\textbf{RQ2 (Factors and Patterns).}
|
||||||
|
\begin{itemize}
|
||||||
|
\item Models consistently key on the \emph{pre-ovulatory temperature drop}; larger drops yield higher predicted fertility.
|
||||||
|
This pattern weakens in irregular cycles with noisier temperature traces (Figures~\ref{fig:results_rq2_regular_cycle_predictions_example}–\ref{fig:results_rq2_irregular_cycle_predictions_example}, \ref{fig:results_temperature_drop_pattern}).
|
||||||
|
|
||||||
|
\item More user history helps modestly; LSTM variants benefit most.
|
||||||
|
Baselines do not: Last-Cycle and Population-Mean often degrade with more history (Figure~\ref{fig:results_performance_on_different_historical_context}).
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
\noindent\textbf{RQ3 (Regular vs.\ Irregular).}
|
||||||
|
\begin{itemize}
|
||||||
|
\item All models are better on \emph{regular} cycles.
|
||||||
|
For fertility, Transformer leads overall and on fertile days; LSTM leads on non-fertile days.
|
||||||
|
For OV-over, LSTM leads overall and after-OV; Transformer leads before-OV (Tables~\ref{tab:fertility_mse_regular_irregular},~\ref{tab:ov_over_mse_regular_irregular}).
|
||||||
|
|
||||||
|
\item In \emph{irregular} cycles, errors rise across the board.
|
||||||
|
LSTM remains most robust; Convolutional LSTM is competitive for fertility overall; Transformers are less stable before/after phase splits.
|
||||||
|
|
||||||
|
\item Variance of predictions grow with longer context lengths.
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
\noindent\textbf{RQ4 (Use-case Evaluations).}
|
||||||
|
\begin{itemize}
|
||||||
|
\item \emph{Contraception:} Trained models cut pregnancies sharply vs baselines,
|
||||||
|
at the cost of more denials and fewer intercourse opportunities.
|
||||||
|
Transformer variants are best at low thresholds; LSTM lags overall.
|
||||||
|
Convolutional models excel at higher thresholds
|
||||||
|
(Figures~\ref{fig:results_contraception_use_case_results_by_fertility_threshold},~\ref{fig:results_contraception_use_case_pregnancy_statistics}).
|
||||||
|
|
||||||
|
\item \emph{Pregnancy seeking:} Trained models yield many more pregnancies than baselines but require
|
||||||
|
more intercourse events and accept more incorrect deferrals at high thresholds.
|
||||||
|
Transformer excels at low thresholds; LSTM underperforms overall.
|
||||||
|
Convolutional models again excel at higher thresholds
|
||||||
|
(Figures~\ref{fig:results_pregnancy_use_case_results_by_fertility_threshold},~\ref{fig:results_pregnancy_use_case_pregnancy_statistics}).
|
||||||
|
\end{itemize}
|
||||||