Show HN: Unsure Calculator – 草稿纸上的概率计算器
Unsure Calculator
7| 8| 9| /| ⌫
---|---|---|---|---
4| 5| 6| x| ~
1| 2| 3| -
0| .| +| =
输入公式并按 Enter,或按 =。
用你不确定的数字进行计算
大家好,我是 Filip,我想向大家介绍一个早期版本的 uncertainty calculator。
统计学听起来很吓人,但其实不必如此。如果允许我简化一下,统计学领域只是在说:我对这些数字不确定,但我仍然想对它们进行推理。 事实证明,我们生活中有太多不确定的事情,但我们不能只是举起双手说,好吧,我又不是统计学家。
Filip 不完善的不确定性表示法
这个想法很简单:除了常规数字(如 4
、3.14
或 43942
)之外,您还可以输入 ranges (如 4~6
、3.1~3.2
或 40000~45000
)。 range 两个极值之间的字符是一个波浪号 (~
),一个小波浪符号。您可以在大多数键盘上找到它,但为了方便起见,我也将其包含在上面的键盘中。
range 表示法告诉计算器:我不确定这里的确切数字,但我有 95% 的把握它在这个范围内。
就是这样。我对此进行了深入的思考,最终得出结论:简单是关键。是的,我们可以为不同的概率分布、不同的置信水平、截断、协方差等等使用不同的表示法。但这也会使它更难理解。我的假设是,如果您已经对置信水平之类的事情足够熟悉,您会想要使用更复杂的东西。在这里,我们有兴趣向广大受众释放统计的力量。
阅读表示法很容易:当您看到 10~15
时,您会说:“ten to fifteen”。
为我们其他人准备的统计学
人们在遇到不确定性时会短路。“好吧,这不确定,但另一件事也不确定,所以没关系。”
通常很重要!
“好吧,我不知道这个数字的确切值,所以我随便挑选一个看似合理的数字并进行计算。”
请不要!我们的大脑喜欢单个数字的简单性、简单的答案,但这是一个陷阱。请看下文。
一个实际例子
这个例子灵感来自一个真实的故事。
时间是 2015 年,我们家面临一个困境。我得到一个机会申请在世界不同地方的工作。我和我的妻子都认为,尝试在其他地方生活几年会很美好,我们也欢迎这个学习的机会。另一方面,我们还在城市里的小公寓里背负着新的抵押贷款,并且有一个一岁的宝宝。
我至少想知道这在经济上是否是一个好的举动。我们会赔钱吗?如果是这样,会以多快的速度赔钱?
问题是,一切都不确定。公司直到我们完成大部分步骤后才会告诉我们薪水。我向朋友和互联网上的随机人员询问该地区的生活成本,但我得到了截然不同的数字。即使税率也不是一个简单的百分比,而是“取决于”。
起初,我使用一个简单的 spreadsheet 进行计算。我为每个变量选择一个相当保守的数字并进行计算。$1,500 薪水,40% 税率,$650 租金,$150 食物,$30 婴儿用品,$20 交通。
1500 * 0.6 - 650 - 150 - 30 - 20 = 50
看起来我们每个月可以赚 +$50,假设我们没有额外支出。一方面,这很酷:我们考虑搬家不是为了致富。另一方面,这有点可怕。如果我对某些数字不够保守怎么办?如果我们太晚才意识到我们正在让家庭破产怎么办?
我的意思是,知道 一个潜在的结果 是每月 +$50 很好。但是其他可能的结果呢?
我非常喜欢捷克戏剧喜剧中的一段独白,它大致是这样的:“根据我们的碳定年分析,这封信写于 1842 年 1 月 21 日,正负两千年。”
Unsure Calculator 来拯救!
似乎我们的小公式中有很多值实际上是 ranges 。我不确定确切的值,但我 确实 很确定每个值将落入的大致范围内。
让我们用 ranges 重做计算:
1400~1700 * 0.55~0.65 - 600~700 - 100~200 - 30 - 20 = -60~220
现在,我有 95% 的把握每个项目的实际值都落在该范围内。这意味着我也有 95% 的把握实际余额将落在 -$60 到 +$220 范围内。这比之前的单个数字更有帮助。首先,我现在知道我们很可能会赔钱。
我还有概率分布和百分位数。
百分位数告诉我,我们每月余额有 10% 的可能性会是 -$8 或更糟。(因为我将 -$8 视为第 10 个百分位数,这意味着 10% 的结果会低于 -$8。相反,90% 的结果会高于 -$8。)现在,我们的家庭可以做出更明智的决定。我们是否愿意冒 10% 的风险,因为这次搬家而赔钱?如果每月赔 $33 或更多,5% 的风险又如何呢?
答案将取决于家庭和具体情况。如果没有孩子和抵押贷款,我比今天更愿意冒险。另一方面,如果我们没有后备计划,我会对这 10% 的风险更加谨慎。
最后,我们还是做了。而且,在我们的例子中,它恰好得到了回报。结束。
一个科幻例子
这个工具旨在用于实际的日常计算。前一节就是一个这样的用例示例。但我不能错过举一个涉及……外星人的例子的机会。
天体物理学中有一个著名的公式,叫做 Drake equation。它是对我们银河系中可能进行通信的文明数量的估计。
例如,如果我们收听来自恒星的无线电信号,我们是否应该期望有数千个文明试图在我们的银河系中相互联系?还是更像是数千个?还是零?期望我们在这里是孤独的是否现实?
Drake equation 实际上非常简单:它只是 7 个数字的乘法:
最初的公式(由 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 中,我们会得到:
因此,我们可以预期在 0 到 450 个文明之间。并且概率偏向于较低端(直方图在底部更宽)。
注意:如果您好奇为什么直方图中有负数 (-5
),这只是 Unsure Calculator 简单性不可避免的缺点。在没有更多知识的情况下,计算器无法知道负数是不可能的(换句话说,例如,您不能有 -5 个文明)。
其他用例
以下是一些有关如何使用此计算器及其表示法的想法。
- 估计商业创意的可行性,市场规模不确定、市场份额不确定、每人每月销售额不确定以及运营成本不确定。例如:
50000~80000 x 0.10~0.20 x 5~10 - 20000~50000
- 估计未来收入,每月收入不确定、演出时长不确定以及税率不确定。例如:
1000~1500 x 10~12 x (30~50 / 100)
- 估计洗碗机(或任何其他技术)节省的时间,每周使用次数不确定、每次使用节省的时间不确定、使用寿命不确定以及安装成本不确定。例如:
(3~5 * 5~10 * 51 * 7~15) / 60 - 10~15
- 估计投资账户的总回报。利率和投资期限都不确定。例如:
5000 x (-2~5 / 100) x 5~10
- 估计在疫情中死亡的概率,病发率不确定(有多少人患病)和死亡率不确定(有多少受感染的人死亡)。例如:
(10~30 / 100) * (0.1~1.0 / 100) * 100
- 估计摩天大楼的高度,距其底座的距离不确定,以及我们看到其顶部的角度不确定。例如:
100 x tan(70 ~ 80)
- 估计营销活动的回报率,浏览量不确定、点击率不确定、转化率不确定和支出不确定。例如:
1000000 x (2~3 / 100) x (3~5 / 100) x (10~15)
可用函数
在上面的键盘中,您只会找到 +
、-
、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)更有帮助。如果您对该项目感兴趣,您可以关注我或订阅我的邮件列表(选中您感兴趣的主题“软件开发”)。