Unsure Calculator

7| 8| 9| /| ⌫
---|---|---|---|---
4| 5| 6| x| ~
1| 2| 3| -
0| .| +| =
输入公式并按 Enter,或按 =。

用你不确定的数字进行计算

大家好,我是 Filip,我想向大家介绍一个早期版本的 uncertainty calculator。

统计学听起来很吓人,但其实不必如此。如果允许我简化一下,统计学领域只是在说:我对这些数字不确定,但我仍然想对它们进行推理。 事实证明,我们生活中有太多不确定的事情,但我们不能只是举起双手说,好吧,我又不是统计学家

Filip 不完善的不确定性表示法

这个想法很简单:除了常规数字(如 43.1443942)之外,您还可以输入 ranges (如 4~63.1~3.240000~45000)。 range 两个极值之间的字符是一个波浪号 (~),一个小波浪符号。您可以在大多数键盘上找到它,但为了方便起见,我也将其包含在上面的键盘中。

range 表示法告诉计算器:我不确定这里的确切数字,但我有 95% 的把握它在这个范围内。

就是这样。我对此进行了深入的思考,最终得出结论:简单是关键。是的,我们可以为不同的概率分布、不同的置信水平、截断、协方差等等使用不同的表示法。但这也会使它更难理解。我的假设是,如果您已经对置信水平之类的事情足够熟悉,您会想要使用更复杂的东西。在这里,我们有兴趣向广大受众释放统计的力量。

阅读表示法很容易:当您看到 10~15 时,您会说:“ten to fifteen”。

为我们其他人准备的统计学

人们在遇到不确定性时会短路。“好吧,这不确定,但另一件事也不确定,所以没关系。

通常很重要!

好吧,我不知道这个数字的确切值,所以我随便挑选一个看似合理的数字并进行计算。

请不要!我们的大脑喜欢单个数字的简单性、简单的答案,但这是一个陷阱。请看下文。

一个实际例子

这个例子灵感来自一个真实的故事。

时间是 2015 年,我们家面临一个困境。我得到一个机会申请在世界不同地方的工作。我和我的妻子都认为,尝试在其他地方生活几年会很美好,我们也欢迎这个学习的机会。另一方面,我们还在城市里的小公寓里背负着新的抵押贷款,并且有一个一岁的宝宝。

An illustration of our family considering a move to a different place.

我至少想知道这在经济上是否是一个好的举动。我们会赔钱吗?如果是这样,会以多快的速度赔钱?

问题是,一切都不确定。公司直到我们完成大部分步骤后才会告诉我们薪水。我向朋友和互联网上的随机人员询问该地区的生活成本,但我得到了截然不同的数字。即使税率也不是一个简单的百分比,而是“取决于”。

起初,我使用一个简单的 spreadsheet 进行计算。我为每个变量选择一个相当保守的数字并进行计算。$1,500 薪水,40% 税率,$650 租金,$150 食物,$30 婴儿用品,$20 交通。

1500 * 0.6 - 650 - 150 - 30 - 20 = 50

看起来我们每个月可以赚 +$50,假设我们没有额外支出。一方面,这很酷:我们考虑搬家不是为了致富。另一方面,这有点可怕。如果我对某些数字不够保守怎么办?如果我们太晚才意识到我们正在让家庭破产怎么办?

我的意思是,知道 一个潜在的结果 是每月 +$50 很好。但是其他可能的结果呢?

我非常喜欢捷克戏剧喜剧中的一段独白,它大致是这样的:“根据我们的碳定年分析,这封信写于 1842 年 1 月 21 日,正负两千年。”

An illustration of a big shrug.

Unsure Calculator 来拯救!

似乎我们的小公式中有很多值实际上是 ranges 。我不确定确切的值,但我 确实 很确定每个值将落入的大致范围内。

让我们用 ranges 重做计算:

1400~1700 * 0.55~0.65 - 600~700 - 100~200 - 30 - 20 = -60~220

现在,我有 95% 的把握每个项目的实际值都落在该范围内。这意味着我也有 95% 的把握实际余额将落在 -$60 到 +$220 范围内。这比之前的单个数字更有帮助。首先,我现在知道我们很可能会赔钱。

我还有概率分布和百分位数。

An image showing a histogram and percentiles for the computation above.

百分位数告诉我,我们每月余额有 10% 的可能性会是 -$8 或更糟。(因为我将 -$8 视为第 10 个百分位数,这意味着 10% 的结果会低于 -$8。相反,90% 的结果会高于 -$8。)现在,我们的家庭可以做出更明智的决定。我们是否愿意冒 10% 的风险,因为这次搬家而赔钱?如果每月赔 $33 或更多,5% 的风险又如何呢?

答案将取决于家庭和具体情况。如果没有孩子和抵押贷款,我比今天更愿意冒险。另一方面,如果我们没有后备计划,我会对这 10% 的风险更加谨慎。

最后,我们还是做了。而且,在我们的例子中,它恰好得到了回报。结束。

一个科幻例子

这个工具旨在用于实际的日常计算。前一节就是一个这样的用例示例。但我不能错过举一个涉及……外星人的例子的机会。

天体物理学中有一个著名的公式,叫做 Drake equation。它是对我们银河系中可能进行通信的文明数量的估计。

例如,如果我们收听来自恒星的无线电信号,我们是否应该期望有数千个文明试图在我们的银河系中相互联系?还是更像是数千个?还是零?期望我们在这里是孤独的是否现实?

Drake equation 实际上非常简单:它只是 7 个数字的乘法:

N = R* x fp x ne * fl * fi * fc * L

最初的公式(由 Frank Drake 于 1961 年撰写)及其值如下:在我们的银河系中,每年形成一颗恒星 (R *),其中五分之一 (f p) 大约有 3 颗行星 (n e),其中 100% (f l) 最终会发展出生命,其中 100% (f i) 最终会变得聪明,其中 10% (f c) 将能够进行通信,并将持续 1 百万年 (L)。

如果您将所有这些数字放在一起,您将得到数字 60,000。在任何时候都应该有 6 万个文明试图在银河系中相互通信。他们在哪里?

正如您可能期望的那样,自 1961 年以来,人们对这个公式进行了大量的讨论。天体物理学家对每个参数的估计值差异很大。

因此,让我们获取最新的估计值,并将它们放入 ranges 中。这给了我们以下内容:

1.5~3 x 0.9~1.0 x 0.1~0.4 x 0.1~1.0 x 0.1~1.0 x 0.1~0.2 x 304~10000

如果我们将它放入 Unsure Calculator 中,我们会得到:

Results from the calculator, showing 0~450 and a histogram.

因此,我们可以预期在 0 到 450 个文明之间。并且概率偏向于较低端(直方图在底部更宽)。

注意:如果您好奇为什么直方图中有负数 (-5),这只是 Unsure Calculator 简单性不可避免的缺点。在没有更多知识的情况下,计算器无法知道负数是不可能的(换句话说,例如,您不能有 -5 个文明)。

An image of an alien and 0~450 next to it.

其他用例

以下是一些有关如何使用此计算器及其表示法的想法。

可用函数

在上面的键盘中,您只会找到 +-x/。但是即使在这个早期阶段,计算器也支持更多功能。您可以计算 2~3 ^ 4(2 到 3 的 4 次方),sqrt(10~12)(10 到 12 的平方根)或 sin(90~95)(90 到 95 度的正弦值)。

局限性

这是一个人的表演。您应该会遇到错误。公式解析器很脆弱,并会给出无用的错误消息。

计算速度很慢。为了保持尽可能大的灵活性,我使用了 Monte Carlo 方法。这意味着计算器为您提出的每个计算运行大约 25 万个基于 AST 的计算。

UI 丑陋,至少可以这样说。

共享公式的唯一方法是手动构造 URL。例如,将某人发送到 https://filiph.github.io/unsure/#f=20~30 会自动为他们计算 20~30

range 始终是正态分布,下限是低于平均值两个标准差,上限是高于平均值两个标准差。在输入概率分布方面,不可能有更复杂的东西。

当然,这不是统计学家的工具。使用 Unsure Calculator 进行草稿纸上的计算。对于任何更复杂的事情,请使用免费或付费的统计工具、完整的编程环境或聘请统计学家。

我希望有些人会发现这个工具有用,尽管存在局限性,并且尽管它的设计很简单。

Filip Hracek, 2020 年 3 月

附注:如果您想帮助改进此工具,或者如果您想要获取命令行版本,请访问 github.com/filiph/unsure

P.P.S. (2025 年更新):在过去的 5 年里,我一直在使用这种表示法和工具,并且它现在已成为我启动任何新项目时不可或缺的一部分。可以在此处找到该应用程序的最新“notebook”版本 —— 该版本对初学者不太友好,但对“power users”(N=1)更有帮助。如果您对该项目感兴趣,您可以关注我或订阅我的邮件列表(选中您感兴趣的主题“软件开发”)。