贝叶斯周期建模详解:我们为何展示标准差,而非一个日期

大多数周期类应用会给你一个看似笃定的日期。"经期:14月。"它看起来像事实,其实只是一种 UX 选择——把一整条概率分布藏在了单个数字背后。贝叶斯周期建模做的是同样的运算,却会把波动范围如实展示给你。

这篇文章会讲清这套数学究竟如何运作,Soulwise 为何选择呈现标准差,而不是假装一切尽在掌握,以及它在每日界面中会是什么样子。

这里的"贝叶斯"到底是什么意思

贝叶斯推断会结合两样东西:

  • 先验:在你掌握某位特定用户的数据之前,你对周期长度的初始判断。
  • 似然:每一次新记录的周期所揭示的信息。

把它们相乘、归一化,你就得到了后验:也就是更新后的判断。这个后验又会成为下一个周期的先验。随着记录的周期越来越多,模型也会越来越精准。

Soulwise 以一个高斯先验作为起点,其中心位于 mu = 28 天,标准差为 sigma = 5 天。这大致勾勒出更广泛人群的周期长度形态。随着你自己的周期被逐渐记录下来,模型会把中心向你的个人均值靠拢,并根据你的波动情况收紧(或放宽)sigma。

一段话讲清共轭更新

对于高斯先验和高斯似然,数学会优雅地收敛。如果你的先验是 cycle ~ N(mu_0, sigma_0),而你观测到的周期为 x_1, x_2, ..., x_n,那么后验同样服从高斯分布:

posterior_mean = (mu_0 / sigma_0^2 + sum(x_i) / sigma_observed^2) / (1 / sigma_0^2 + n / sigma_observed^2)
posterior_sigma = sqrt(1 / (1 / sigma_0^2 + n / sigma_observed^2))

通俗地说:你记录的周期越多,先验就越无关紧要,你的个人数据就越占主导。记录约 3 个周期后,群体先验只占很小一部分;记录约 10, 个后,它便沦为噪声。

用户看到的内容

后验是一条曲线。界面无法在通知里显示一条曲线。于是 Soulwise 把它压缩成两样东西:

  • 一个可能区间。 后验把大部分概率质量落在的窗口(例如中心 68% 区间,大致为 +/- 1 个标准差)。
  • 一个置信度标签。 三种通俗英文标记之一:
    • "Likely correlation"(可能相关),当标准差较小且数据较新时。
    • "Weak signal"(弱信号),当标准差较大或数据稀疏时。
    • "Not enough data"(数据不足),当记录的周期少于模型的最低要求时。

因此,用户看到的不是"经期:14, 月",而是"可能在 12 月 16, 日,弱信号"。这正是模型的实际输出,而非界面上的点缀。

为什么不隐瞒任何信息

三个原因。

诚实。 一个规律追踪器无法承诺它并不知道的日期。把 sigma 呈现出来,是用户校准信任度的唯一方式。

安全。 一个看似确凿的日期,会促使人们围绕它去安排应用并不能支持的事项,包括备孕、避孕和临床决策。置信度标签则在说"这只是一个估计",而事实正是如此。

对不规律周期的稳健性。 多囊卵巢综合征、围绝经期、停药后的周期以及激素治疗,都会让 sigma 变大。传统追踪器要么严重失准,要么悄悄放弃这位用户。而贝叶斯追踪器只会把估计标注为"信号较弱",并继续工作。

这个模型不做什么

这里列出几条硬性界限,写下来以免日后跑偏:

  • 它不会预测除下一次经期日期范围之外的具体周期事件。
  • 它不会输出备孕窗口期。
  • 它的设计初衷不是用于受孕或避孕场景。
  • 它未经临床验证,也不能替代针对经期推迟、不规则出血或持续症状的临床建议。

这些界限并不是模型在保守行事,而是它被正确地界定了范围。经期预测和备孕预测是两个不同的问题,需要不同的数据,也面对不同的监管标准。

当数学遇见日常仪式

在 Soulwise 中,贝叶斯运算的结果会注入每日打卡所用的周期阶段背景。这段 20 秒的仪式会问你感觉如何;你的回应会把周期阶段作为五项输入之一。当 sigma 较宽时,回应卡片会降低周期阶段的权重;当 sigma 较窄时,则会提高周期阶段的权重。数学之所以能赢得它的分量,是因为它对自己有多确信保持诚实。

更简短地说:真正的贝叶斯追踪器会把 sigma 呈现出来。如果你的应用只显示一个笃定的日期,底层模型或许是一样的,但这种呈现方式正在隐藏它真正知道的东西。

常见问题

尝试我们的免费工具

根据您的本命盘获取个性化洞察

分享这篇文章