京公网安备 11010802034615号
经营许可证编号:京B2-20210330
使用R进行统计分析--概率计算
R语言中提供了很多概率函数,可以方便的计算事件发生的概率。如二项分布概率函数和泊松分布概率函数。本篇文章介绍如果使用R语言中的这些函数求解事件发生的概率。
概率函数和前缀
R语言中每个概率分布都有对应的函数名称,例如二项分布是binmo,泊松分布是pois,正态分布是norm等等。每个函数都分别有四个不同的前缀,加上前缀可以生成随机数,求解概率和临界值等等。下面是四个前缀对应功能的说明。
r = random = 随机
d= density = 密度
p= probability = 概率
q =quantile = 分位
二项分布概率
假设网站的Landingpage页面中共有20个入口,那么我们预估每个入口被点击的概率为1/20,即P=0.05。(实际情况会复杂一些,每个入口在页面中的位置和展现的形式都 会不一样,一般首屏的入口比后面的入口会获得更多点击,图片和按钮形式的入口比文字类的入口更容易受到关注,导航和焦点图和Action按钮比其他类型的入口更容易 被点击。如有要获得最真实的点击概率,需要参考这个页面中每个入口的历史点击概率数据,这里我们只是假设一种理想情况来说明计算过程。)那么在10000次点击中, 关键按钮获得550次的概率是多少?
先来简单介绍下R语言中的二项分布函数和其中参数的含义,二项分布函数为binom,前缀d表示求密度,前缀p表示求累计概率。参数中X表示实验的成功次数,size表示实验次数,prob表示概率值。在这个例子中成功次数是550,实验次数是10000,概率为0.05。
#点击率0.05的情况下10000次点击中关键按钮恰好被点击550次的概率 > dbinom(x = 550,size = 10000,prob = 0.05)
[1] 0.001362855
经过计算10000次点击中关键按钮恰好被点击550次的概率为0.0013,这只是550次这个事件发生的概率值,并不包含549次点击和551次点击。但实际情况中恰好获得550并不是我们实际的目标。因此我们换一种计算方法再来看下。
#点击率0.05的情况下10000次点击中关键按钮被点击1-550次的概率
> sum(dbinom(x = 1:550,size = 10000,prob = 0.05))
[1] 0.9889429
在成功次数X中从之前的550变成了1:550,然后进行sum求和。获得从1点点击到550次点击的累计概率。从结果中可以看到概率高达0.98。这能说明10000次点击中关键按钮获得550次点击的概率非常高吗?我们能信心满满的说获得550次点击是个高概率事件吗?恐怕还不行。因为这是一个累计概率值,是从1次到550次的汇总。但我们的目标是获得550次或更多的点击,那么550次以下的点击量概率其实是我们不需要的。因此实际的概率值没有这么高。
> pbinom(q = 550,size = 10000,prob = 0.05)
[1] 0.9889429
计算积累概率值还有一个更简单的方法就是在二项分布概率函数的前面加前缀p,就可以自动获得550次点击的累计概率值了。结果与前面的方法一致。
#点击率0.05的情况下10000次点击中关键按钮获得500次到550次区间的点击的概率
> sum(dbinom(x = 500:550,size = 10000,prob = 0.05))
[1] 0.4953496
前面两种方法获得的概率值一个太低,一个太高。还有一种方法是只计算某个区间的概率值,这里我们将获得点击的次数限定在500次——550次之间,来求这一区间的概率值。从结果来看10000次点击中关键按钮获得500次——550次点击的概率为0.49。
#点击率0.05的情况下10000次点击中关键按钮分别获得500次到550次点击的概率
> dbinom(x = 500:550,size = 10000,prob = 0.05)
[1] 0.018301669 0.018265138 0.018190454 0.018078155 0.017929014 0.017744025 0.017524393 0.017271524 0.016987006 0.016672594 0.016330195
[12] 0.015961845 0.015569690 0.015155968 0.014722985 0.014273095 0.013808680 0.013332131 0.012845824 0.012352105 0.011853270 0.011351550
[23] 0.010849097 0.010347966 0.009850108 0.009357356 0.008871418 0.008393869 0.007926149 0.007469553 0.007025237 0.006594211 0.006177343
[34] 0.005775361 0.005388857 0.005018291 0.004663995 0.004326183 0.004004957 0.003700313 0.003412150 0.003140280 0.002884435 0.002644275
[45] 0.002419399 0.002209352 0.002013632 0.001831702 0.001662993 0.001506913 0.001362855
以上是点击量500次——到550次分解的概率值,0.49的概率值由以上的各个概率汇总而来。
#点击率0.05的情况下10000次点击中关键按钮获得550次以上点击的概率
> sum(dbinom(x = 551:10000,size = 10000,prob = 0.05))
[1] 0.01105708
再来看最开始的问题,10000次点击中关键按钮获得550次点击的概率。550次以下的点击不是我们希望的结果,因此我们再来看下点击量超过550次的概率有多少。从结果 来看获得点击量在551次——10000次的概率仅为0.011,因此获得超过550次以上的点击的概率比较低。
#点击率0.05的情况下10000次点击中关键按钮获得550次以上点击的概率
> 1-pbinom(q = 550,size = 10000,prob = 0.05)
[1] 0.01105708
由于从0到10000次点击的所有概率为1,因此用1减550次以下的概率值也能获得相同的结果。
泊松分布概率
假设在一次市场活动中,上一个小时中有40个用户注册,那么下一个小时有50个用户注册的概率是多少?
这里需要使用泊松分布概率函数,泊松分布函数是pois,第一个参数x是下一个时间段事件发生的次数,lambda是上一个时间段事件发生的次数。在这个例子中x=50, lambda=40。
#上一小时产生40个注册用户,下一小时产生恰好50个注册用户的概率
> dpois(x = 50,lambda = 40)
[1] 0.01770702
经过计算,下一个小时恰好有50个注册用户的概率为0.017。与二项分布中的问题一样,0.017是恰好50个用户的概率。不是49个用户也不是51个用户的概率。
#上一小时产生40个注册用户,下一小时产生1-50个注册用户的概率
> sum(dpois(x = 1:50,lambda = 40))
[1] 0.947372
把下一小时注册用户的数量改为1:50,并进行求和,获得了下一个小时获得1-50个注册用户的累计概率值。这个值有0.94。但我们的目标是50个注册用户,虽然概率很高 但低于50的事件发生并不是我们的目标。
> ppois(q = 50,lambda = 40)
[1] 0.947372
这是另一种计算方法,把泊松分布函数的前缀换为p,计算50个注册用户的累计概率值,结果与前面的方法一致。
#上一小时产生40个注册用户,下一小时产生40-50个注册用户区间的概率
> sum(dpois(x = 40:50,lambda = 40))
[1] 0.4684008
前一小时40个注册用户,后一个小时目标50个注册用户,我们来看下下一个小时注册用户是40-50这个区间的概率是多少。经过计算这个区间发生的概率为0.46。
#上一小时产生40个注册用户,下一小时分别产生40-50个注册用户的概率
> dpois(x = 40:50,lambda = 40)
[1] 0.06294704 0.06141175 0.05848738 0.05440686 0.04946078 0.04396514 0.03823056 0.03253664 0.02711387 0.02213377 0.01770702
这里显示了40-50个注册用户分别的发生概率,0.46的概率值由以上各个概率值汇总计算获得。
#上一小时产生40个注册用户,下一小时产生50个注册用户以上的概率
> 1-ppois(q = 50,lambda = 40)
[1] 0.05262805
最后再来看下下一个小时注册用户数量超过50的概率。用1减去50个用户的累计概率值就是超过50个注册用户发生的概率,计算结果是0.052,因此下一个小时获得超过50个注册用户的概率不高。数据分析师培训
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
在数字化商业环境中,数据已成为企业优化运营、抢占市场、规避风险的核心资产。但商业数据分析绝非“堆砌数据、生成报表”的简单 ...
2026-01-20定量报告的核心价值是传递数据洞察,但密密麻麻的表格、复杂的计算公式、晦涩的数值罗列,往往让读者望而却步,导致核心信息被淹 ...
2026-01-20在CDA(Certified Data Analyst)数据分析师的工作场景中,“精准分类与回归预测”是高频核心需求——比如预测用户是否流失、判 ...
2026-01-20在建筑工程造价工作中,清单汇总分类是核心环节之一,尤其是针对楼梯、楼梯间这类包含多个分项工程(如混凝土浇筑、钢筋制作、扶 ...
2026-01-19数据清洗是数据分析的“前置必修课”,其核心目标是剔除无效信息、修正错误数据,让原始数据具备准确性、一致性与可用性。在实际 ...
2026-01-19在CDA(Certified Data Analyst)数据分析师的日常工作中,常面临“无标签高维数据难以归类、群体规律模糊”的痛点——比如海量 ...
2026-01-19在数据仓库与数据分析体系中,维度表与事实表是构建结构化数据模型的核心组件,二者如同“骨架”与“血肉”,协同支撑起各类业务 ...
2026-01-16在游戏行业“存量竞争”的当下,玩家留存率直接决定游戏的生命周期与商业价值。一款游戏即便拥有出色的画面与玩法,若无法精准识 ...
2026-01-16为配合CDA考试中心的 2025 版 CDA Level III 认证新大纲落地,CDA 网校正式推出新大纲更新后的第一套官方模拟题。该模拟题严格遵 ...
2026-01-16在数据驱动决策的时代,数据分析已成为企业运营、产品优化、业务增长的核心工具。但实际工作中,很多数据分析项目看似流程完整, ...
2026-01-15在CDA(Certified Data Analyst)数据分析师的日常工作中,“高维数据处理”是高频痛点——比如用户画像包含“浏览次数、停留时 ...
2026-01-15在教育测量与评价领域,百分制考试成绩的分布规律是评估教学效果、优化命题设计的核心依据,而正态分布则是其中最具代表性的分布 ...
2026-01-15在用户从“接触产品”到“完成核心目标”的全链路中,流失是必然存在的——电商用户可能“浏览商品却未下单”,APP新用户可能“ ...
2026-01-14在产品增长的核心指标体系中,次日留存率是当之无愧的“入门级关键指标”——它直接反映用户对产品的首次体验反馈,是判断产品是 ...
2026-01-14在CDA(Certified Data Analyst)数据分析师的业务实操中,“分类预测”是高频核心需求——比如“预测用户是否会购买商品”“判 ...
2026-01-14在数字化时代,用户的每一次操作——无论是电商平台的“浏览-加购-下单”、APP的“登录-点击-留存”,还是金融产品的“注册-实名 ...
2026-01-13在数据驱动决策的时代,“数据质量决定分析价值”已成为行业共识。数据库、日志系统、第三方平台等渠道采集的原始数据,往往存在 ...
2026-01-13在CDA(Certified Data Analyst)数据分析师的核心能力体系中,“通过数据建立模型、实现预测与归因”是进阶关键——比如“预测 ...
2026-01-13在企业数字化转型过程中,业务模型与数据模型是两大核心支撑体系:业务模型承载“业务应该如何运转”的逻辑,数据模型解决“数据 ...
2026-01-12当前手游市场进入存量竞争时代,“拉新难、留存更难”成为行业普遍痛点。对于手游产品而言,用户留存率不仅直接决定产品的生命周 ...
2026-01-12