【老计带你懂概率统计】07:期望、方差与描述统计,怎么用几个数字概括一堆数据,还不被平均值骗 【老计带你懂概率统计】07期望、方差与描述统计怎么用几个数字概括一堆数据还不被平均值骗开头一堆数字怎么说清楚假设你手上有一万个用户的消费金额、或者一个班所有人的成绩、或者一个月每天的服务器响应时间。这么一大堆数字你没法一个个念给别人听。你需要用几个关键的数字把这一大堆数据的特征概括出来让人一听就有个大致印象。这就是描述统计要干的事。描述数据通常回答两个最核心的问题第一这堆数据的中心在哪大致是个什么水平第二这堆数据有多分散是挤成一团还是散得很开回答第一个问题的是平均值、中位数这些回答第二个的是方差、标准差。这两个问题一个抓中心、一个抓波动合起来就能把一堆数据的大致轮廓勾勒出来了。听起来简单但这里面藏着不少坑尤其是我们最熟悉的平均值特别能骗人。这一篇我把这些概括数据的工具讲清楚尤其帮你看穿平均值的谎言。期望概率世界里的平均值先说期望。在概率里期望就是一个随机变量的平均取值或者说如果你把这个随机实验重复无数次结果的平均值会是多少。举个例子掷一个骰子点数的期望是多少就是(1加2加3加4加5加6)除以6等于3.5。注意期望值3.5这个数骰子根本掷不出来但它代表了长期平均的中心。你掷很多很多次平均点数会趋近3.5。期望的实用之处在于决策。比如一个游戏花10块钱抽奖期望能中5块钱那期望收益是负5块长期玩必亏。很多理性决策的核心就是算清楚不同选择的期望值选期望最好的那个。这个思路第16篇讲概率决策时会重点用到。买彩票为什么不理性因为它的期望收益是显著为负的奖池远小于总投注玩得越多亏得越稳。期望就是概率世界里的平均值它代表长期的、中心的水平是权衡决策的重要依据。不过用期望做决策也有个必须知道的局限光看期望是不够的还得看波动方差。举个经典的例子两个投资A每年稳稳赚5%B有一半概率赚30%、一半概率亏20%。算期望B的期望收益是30%乘0.5加上亏20%乘0.5等于5%和A一样。光看期望两者没差别可它们的风险天差地别A旱涝保收B大起大落。如果这是你全部的养老钱你多半选A因为B那一半亏20%的可能你承受不起。这说明期望告诉你长期平均能拿到多少但没告诉你过程有多颠簸、最坏情况有多糟。一个成熟的决策者会同时权衡期望平均能得到什么和方差波动风险有多大而不是只盯着期望值高的那个猛冲。这也引出了下面方差的重要性期望和方差是描述数据的一对黄金搭档一个管中心、一个管波动缺一不可。平均值的大陷阱被平均日常说的平均值均值就是所有数加起来除以个数和期望是一脉相承的。它太常用了可它有个巨大的陷阱极容易被极端值带偏。经典段子马云和你俩人坐一屋平均下来每人身家几百亿。你被平均成了富翁可你兜里还是没钱。这就是均值的软肋。只要数据里有少数极端大或极端小的值均值就会被狠狠拉偏偏离大多数人的真实情况。所以你看到某地区平均月薪两万某公司平均年终奖三十万这类说法一定要多个心眼很可能是少数高收入者把均值抬上去了中间大多数人远达不到。怎么破用中位数。中位数与众数更抗揍的中心中位数是把所有数从小到大排好正中间的那个数。它的好处是不管两头的极端值多离谱都影响不了中间这个位置。马云进屋中位数几乎不变因为它只看排在中间的是谁。所以当数据有极端值、或者分布不对称像收入这种右边拖长尾的时中位数比均值更能代表大多数人的真实水平。这也是为什么统计收入时中位数往往比平均数更有参考价值。看到一个平均值聪明的做法是再问一句中位数是多少两者差得远就说明数据被极端值带偏了。众数是出现次数最多的那个值回答最常见的是哪个。比如卖鞋子你最该关心的是众数哪个尺码卖得最多、该多备货而不是平均鞋码算出个42.5码没有意义。均值、中位数、众数是描述数据中心的三兄弟各有各的用处关键是根据数据特点选对。数据对称少极端值用均值有极端值或不对称用中位数关心最常见用众数。方差与标准差数据有多分散光知道中心还不够。举个例子两个班平均分都是70。但A班大家都在65到75之间B班一半人考95、一半人考45。平均分一样但两个班的情况天差地别。差在哪分散程度。方差和标准差就是衡量数据分散程度的。它们算的是每个数据点离均值有多远整体上偏离得越厉害方差和标准差就越大说明数据越分散、越不稳定。标准差是方差开个根号好处是单位和原数据一致更好理解。上面那个例子A班标准差小大家都挤在70附近B班标准差大严重两极分化。光看平均分你以为两班一样一看标准差就知道B班问题大了。方差标准差的意义在于它刻画了数据的稳定性和风险。在投资里标准差直接被用来衡量风险两个基金平均收益都是8%但一个标准差小收益稳定一个标准差大大起大落风险完全不同。在SRE里服务响应时间的标准差大说明性能不稳定、时快时慢比单看平均响应时间更能反映用户体验。分位数与箱线图看清数据的全貌还有一组特别实用的工具分位数。中位数其实就是50%分位数一半数据在它以下。类似地25%分位数是有四分之一数据比它小的那个值还有75%、90%、99%分位数等。分位数为什么实用因为它不受极端值影响还能刻画数据的整个分布轮廓。在SRE里我们几乎不看平均响应时间而是看P9999%分位数意思是99%的请求都比这个快那最慢的1%有多慢这才是影响用户体验的关键长尾。很多场景下分位数比平均值有用得多。把几个关键分位数放一起就是箱线图一张图看清数据的中位数、中间50%的范围、以及有没有离群点是探索数据时最好用的可视化工具之一。上代码算一遍并看穿平均值陷阱我们用代码演示各种描述统计量并亲眼看到平均值怎么骗人。输入一组带极端值的数据。输出各统计量的对比。# 依赖pip install numpyimportnumpyasnp# 造一个班的月收入数据(千元):大多数人五六千,但有一个大老板月入100万incomesnp.array([5,5.5,6,6,6.5,7,5.8,6.2,5.5,1000])# 单位:千元print( 中心位置的三兄弟 )print(f平均值(被大老板带偏):{np.mean(incomes):.1f}千元)print(f中位数(反映大多数人):{np.median(incomes):.1f}千元)# 众数用四舍五入后最常见的值近似演示vals,countsnp.unique(np.round(incomes),return_countsTrue)print(f众数(最常见):{vals[counts.argmax()]:.0f}千元附近)print(\n 分散程度 )print(f标准差(被极端值拉得很大):{np.std(incomes):.1f})print(\n 分位数,看清全貌不受极端值影响 )print(f25%分位数:{np.percentile(incomes,25):.1f}千元)print(f50%分位数(中位数):{np.percentile(incomes,50):.1f}千元)print(f75%分位数:{np.percentile(incomes,75):.1f}千元)print(f90%分位数:{np.percentile(incomes,90):.1f}千元)print(\n看:平均值上百千元,但中位数才6千,大多数人真实水平在6千,平均值骗人)运行输出示例 中心位置的三兄弟 平均值(被大老板带偏): 105.3 千元 中位数(反映大多数人): 6.0 千元 众数(最常见): 6 千元附近 分散程度 标准差(被极端值拉得很大): 298.3 分位数,看清全貌不受极端值影响 25%分位数: 5.6 千元 50%分位数(中位数): 6.0 千元 75%分位数: 6.5 千元 90%分位数: 7.3 千元 看:平均值上百千元,但中位数才6千,大多数人真实水平在6千,平均值骗人运行你会看到这组数据平均值上百被那个月入百万的大老板狠狠拉高可中位数才6千真实反映了大多数人的水平。分位数则清晰地勾勒出绝大多数人都在5到7千之间只有极少数极端值。这段代码把平均值的陷阱和中位数、分位数的价值直观地摆在了你面前。在AI和现实里怎么用在AI里期望是损失函数、模型评估的基础很多指标就是某种期望方差是理解模型稳定性、偏差方差权衡过拟合的经典分析框架的核心数据预处理时要看各特征的分布和分散程度。这里展开讲讲偏差方差权衡它是把这一篇的方差概念和上个算法系列的过拟合彻底打通的关键理解了会很有收获。一个模型的预测误差可以拆成两部分。偏差指模型系统性地偏离真相有多远偏差大说明模型太简单、没抓住规律欠拟合好比一个总是把靶心估偏的射手枪枪都偏向同一侧。方差指模型对训练数据的微小变化有多敏感方差大说明模型太复杂、把噪声也学进去了过拟合好比一个手抖的射手弹着点散得到处都是。关键在于偏差和方差往往此消彼长模型太简单则偏差大方差小太复杂则偏差小方差大最好的模型是在两者之间找到平衡让总误差最小。这就是为什么上个系列反复说别一味追求复杂、要防过拟合本质就是在控制方差。你看这一篇最基础的方差概念直接连着机器学习最核心的过拟合难题这就是把概率统计地基打牢的价值很多AI里的道理回到统计这里都能找到根。在现实里看任何一个平均值都习惯性追问中位数和分布防止被平均用标准差衡量风险和稳定性投资、性能用分位数关注长尾SRE的P99、收入的两极。学会用一组数字而不是单一的平均值来看数据是数据素养的分水岭。小结与承上启下期望概率里的平均值代表长期中心水平是权衡决策的依据算期望值选最优。平均值陷阱极易被极端值带偏马云和你一平均都是富翁看平均一定要追问中位数。中心三兄弟均值怕极端值、中位数抗极端值、反映大多数、众数最常见看数据特点选用。方差标准差衡量分散程度和稳定性风险分位数不受极端值影响、刻画全貌长尾场景P99尤其有用。期望管中心、方差管波动是描述数据的一对黄金搭档。到这里怎么描述我们手上已有的一堆数据就讲清楚了。但更常见、也更难的问题是我们手上的数据往往只是一小部分样本怎么用这一小撮样本去推断我们看不到的整体比如问几千人就估计上亿人的想法。下一篇起进入统计推断先讲抽样与大数定律看清样本和总体的关系。我们下一篇见。延伸阅读NumPy 官方文档统计函数均值、中位数、方差、分位数等https://numpy.org/doc/stable/reference/routines.statistics.htmlpandas 官方文档描述性统计https://pandas.pydata.org/docs/说明以上为官方公开文档地址可能随版本调整如打不开可用标题搜索。