费米估算问题套路详解
有这样的一个故事:
在一次芝加哥大学课堂上,费米问学生。芝加哥市有多少调琴师,学生们一脸茫然。费米提示把这个问题 “分解成一些便于操作的小问题,然后鼓起勇气作猜测和假设”。
芝加哥有多少居民?可靠的估算是300万;平均每个家庭有多少人?4人;多少家庭有钢琴?大概三分之一,那么全市大约就有25万架钢琴;一架钢琴隔多长时间需要调音?平均5年,那么芝加哥平均每年有5万架次的钢琴需要调音;每个调音师每天能为多少架钢琴调音?4架;假设他一年工作250天,那么他每年约为1000架钢琴调音。
由此,费米和学生们推测,芝加哥市大概有50位钢琴调音师。
事后有人用电话号码簿加以验证,实际统计的结果与费米的猜测十分接近。
费米估算指的是解决未知结果的估算问题, 将复杂的问题拆解成小的、可知结果的部分。
将拆解出来的简单部分赋予实际意义, 如果还不能得出结果,那就继续再拆解 ,直到拆解后的所有部分问题变成一个常识问题或者是比较容易解决的,从而将一个未知结果的问题逐步变得清晰。
在将复杂的问题拆解成小的、可知结果的部分过程中,可能会存在估算,那么这样的估算会不会给最终结果带来很大的误差呢?
比如前面例子中,费米估算芝加哥有1/3家庭有钢琴,如果当时估算的是1/4,那结果就会不准确了吗?
其实在费米估算过程中,我们不是只有一次估算,我们会产生一系列的估算。比如估算芝加哥有1/3家庭有钢琴,同时也会估算一架钢琴平均5年调一次音。这些估算有的过高有的过低,相乘之后会相互抵消,回归到较为准确的平均值。
费米估算不是万能的,有个很重要的前提,我们的估算值是有实际数据或者生活经验支撑的。估算值不能偏离实际结果太远,要从实际结果、常识出发。比如费米在估算芝加哥每个家庭有4个人,换成我们来估算的话,我们不能拍脑袋直接估算芝加哥每个家庭有10个人。
这种脱离实际常识、数据的估算其实是瞎猜,瞎猜怎么能对呢?
最近在分析些产品面试题,发现一些大厂喜欢出这样的估算题目,比如:
这类问题称为Market Sizing问题,有些同学在面试时碰到这类问题,如果没有提前了解这类题型,难以找到比较好的回答思路。
这类Market Sizing题型正好可以通过费米估算的法则来解决,将未知的数逐步拆解成已知的部分,从而将一个未知结果的问题逐步变得清晰。
Market Sizing问题在运用费米估算时,主要是通过需求端、供给端、供需端等角度切入将问题拆解。
费米估算思路
在进行费米问题估算时,需要谨记的一点在于“ 将难获得的数据拆分为易获得的数据 ”, 同时,对拆解后的部分赋予数值时, 避免改变数值真实范围 (按照数据或者经验来赋予较为准确的范围),这并不是一件困难的事情,因为——费米估算是有逻辑套路的。我们从需求端、供给端、供需端三个方面给出案例。
问:“2018年中国消费了多少升啤酒”
(需求端?供给端?供需端?)
要分清楚这个数据是供应端是瓶颈,还是需求端是瓶颈等。这些类别的不同将有着不同的解题思路。 供给端就是从企业的供给能力出发,评估企业能够支持多大的市场规模。而如果是需求端,通常就和人口之类的挂钩了。
那么,很明显,中国啤酒的消费量属于“需求端是瓶颈。
列出你的一些常识,从而启发解题方向。通常来讲,每个人的解题思路会因为自己常识的不同而不同。估算能力本质就是将一个复杂的问题,一步步拆成贴近自己常识范围内的题目去解。
构建计算逻辑树,咨询公司又叫它issue tree。我思考了几种思路:
在建立issue tree之前,要讲一个重要的原则,咨询公司叫MECE(读me see),全称是“Mutually Exclusive Collectively Exhaustive”,翻译成中文就是“相互独立,完全穷尽”。我们习惯简称为“不重不漏”。
在按照 MECE 原则将某个整体(不论是客观存在的还是概念性的整体)划分为不同的部分时,必须保证划分后的各部分符合以下要求:
因此,我所列的计算逻辑的要素必须是符合MECE原则。现在开始一步步列出计算逻辑树, 黑色背景代表已经可以在常识范围内进行估算了,深蓝色背景代表则反之。
由于我主要在夏季喝啤酒,因此,我以夏季的日消耗量来进行估算,这也符合我的常识。前面提到,冬季是啤酒淡季,夏季是旺季,因此公式变为:
由于直接估算消耗的体积比较不直观,我们转而估算瓶数,最后再转回体积,公式变为:
而某场所夏季的日消耗瓶数还需要继续拆解,以KTV场所为例:
酒吧单间场所覆盖人数的估算方法和KTV一样。小餐馆较多,无法使用相同的办法。这时候可以取用深圳家中小区人口数和附近饭店的数量去进行估算。
根据MECE原则,还有一个其它场所需要预估。其他消费场所的消耗瓶数,则为以上四种消费场所总消耗瓶数的某个百分比即可。至此,整个计算逻辑树如下,树根已经为黑色背景可估算了。
1)计算“单间场所覆盖人数”
老家县城城区人口约20万人,KTV印象中在5 - 15家左右,酒吧1~3家,取个均值,算下来:KTV单位覆盖人数=20W人/10家KTV=2W人。酒吧单位覆盖人数=20W人/2家酒吧=10W人。
深圳家中小区加上园区办公楼估算有5000人左右,附近饭店在约有10家。因此,小餐馆单位覆盖人数=5000人/10家餐馆=500人。家庭单位覆盖人数直接取3人,三口之家。
2)计算“目标消费人群数量”
KTV,酒吧,小餐馆,我理解农村是比较少的,忽略不计。前面讲到我的常识中,农民是8亿人口,那么这三种场所的目标消费人群为6亿(14亿-8亿),家庭则为完整的14亿。
计算“单间场所日消耗瓶数”,即“平均每天消费人次” X “人均消费瓶数”。
以下数据均为估算:
3)两个快速计算的技巧
至此,计算都比较简单。那么后面的计算过程如果按照传统的计算,将会非常耗时且容易出错,在面试过程中这么操作是不现实的,为了应对这种情况,《Case Interview Secrets 》给出了两个技巧:
计算“场所数量”,即“目标消费人群数量” ÷ “单间场所覆盖人数”。
计算“各场所啤酒夏季日消耗瓶数”,即“单间场所日消耗瓶数”乘“场所数量”。
计算“最终结果”:
算完以上之后,由于KTV和酒吧占比很小,所以你可以放心取整数了。四种场所总计=2700千瓶+540千瓶+240百万瓶+70百万瓶≈(2.5+0.5+240+70)百万瓶约等于310百万瓶
那么以上,我们估算了四个主要消费场所的量,我已经很难想到其它大的消费场所了,因此我估算其他场所只占消耗量的10%。则总计=310+310*10%=310+31约等于340百万瓶。
前面提到我是按照旺季的消耗量去预估的,因此数据是偏高的。我需要打一个季节折扣。这个折扣我根据自己的理解设定为80%。
则总计=340X80%=340X100%-340X20%=340-68约等于=340-70=270百万瓶。
一年365天,则一年总计=270X365=250X400=100000百万瓶=1000亿甁。
每瓶容积为0.45升,则 中国2018年啤酒消耗量=1000X0.45=450亿升。
我用excel精确计算后的结果为453亿升,可谓相当接近了。
朋友告知第三方给出的数据在400-450亿升之间。能够碰巧在这个区间也需要一部分运气。《Case Interview Secrets 》作者谈到,这类估算问题,如果与真实数据误差在20%以内,就算是非常完美的估算结果了。当然更加重要的还是解题的思路。一步步将未知的问题拆成若干自己相对已知的范围里去解题。
供给端:
楼下星巴克一年卖咖啡收益?
1、列常识
2、逻辑树(拆解公式)
3、数据整合,得到最终结果
星巴克一年营业额 =一杯咖啡均价X(每天闲时产能+每天忙时产能)X365天 =30X(480+192)X365 =736 万
供需结合:
以小见大
“香港有多少个自助提款机?”
被面试的学生来自港中文大学,知道港中文约有10000名师生,有5台ATM取款机。
在 "供给与需求满足一定比例" 的假设下,推测一台ATM机能够满足2000人的取款需求。
全香港大概有700万人口,需要3500台ATM机
以大见小
“XX县城有多少金融行业从业人员?”
作出假设:全国大概800W金融行业从业人员
在【供给与需求满足一定比例】的假设下,800W金融从业人员服务与14亿中国人,1个金融从业人员可以服务175人。
XX县城的金融从业人员数量=XX县城总人数/175
常见的费米估算问题都可以套用以上三种方法进行解答。在实际的面试过程中,更加推荐大家从需求端或者供给端出发,进行公式的拆解。一定要记住:关注拆解的过程,可适当引用“瞎诌”的假设数据,不用管结果的正确性!!看完费米估算的思路,有兴趣的朋友们可以拿出纸和笔,做做题呀~~~(1)估算永和豆浆一年的油条销量?(2)上海理发店有多少tony老师?(3)长沙一年的燃油税费是多少?(这是我面网易考拉的原题)
Emmm……好像很多人表示,不知道怎么获取XX城市有多少人的信息,怎么估计每个年龄阶段的人数占比信息……其实吧,这些数据是要背的(对的,你没看错,要背……)。在面试网易考拉的时候,面试官让我推算长沙一年燃油税费,我在做数据假设的时候说道长沙有800W人,这时候面试官小哥哥翻出手机开始查,完了抬头看着我说:你数据感挺不错(哈哈哈内心偷笑中)
引用文章:
费米估算 | 产品面试中的估算问题解法
费米问题 | 如何快速评估一个价值范围?
你的城市有多少理发店?费米估算问题套路详解(1)
你的城市有多少理发店?费米估算问题套路详解(2)
绛旓細Market Sizing闂鍦ㄨ繍鐢璐圭背浼扮畻鏃,涓昏鏄氳繃闇姹傜銆佷緵缁欑銆佷緵闇绔瓑瑙掑害鍒囧叆灏嗛棶棰樻媶瑙c 璐圭背浼扮畻鎬濊矾 鍦ㄨ繘琛璐圭背闂浼扮畻鏃,闇瑕佽皑璁扮殑涓鐐瑰湪浜庘 灏嗛毦鑾峰緱鐨勬暟鎹媶鍒嗕负鏄撹幏寰楃殑鏁版嵁鈥, 鍚屾椂,瀵规媶瑙e悗鐨勯儴鍒嗚祴浜堟暟鍊兼椂, 閬垮厤鏀瑰彉鏁板肩湡瀹炶寖鍥 (鎸夌収鏁版嵁鎴栬呯粡楠屾潵璧嬩簣杈冧负鍑嗙‘鐨勮寖鍥),杩欏苟涓嶆槸涓浠跺洶闅剧殑...
绛旓細鍏佹暟鎹垎鏋愮被鍨嬮潰璇曢1銆佸皬杩濮恡ips: 鈶犺冨療姒傜巼:鈽呪槄 鍏朵腑璐圭背浼扮畻,绗旇瘯涓冨療鐨勪細闈炲父澶,闈㈣瘯涓湅鍏蜂綋鐨勯潰璇曞畼,鍏朵粬鐪熷疄鐨勬暟鎹垎鏋愮被鐨勪細鐪嬩綘鐨勭粡鍘嗕腑鏄惁鏈 鈶¢潰璇曞畼鑰冨療鎰忓浘: 浜嗚В浣犲鏁板瓧鐨勬晱鎰熷害,瀵圭洰鏍囩殑鎷嗚В鐨勮兘鍔 鈶㈠噯澶噒ips: 鍍忚垂绫充及绠楄繖绉嶅彲浠ュ缁冧範,鏄湁涓浜涚壒瀹氱殑濂楄矾鐨,鍙﹀闇瑕佸浜嗚В涓浜...