京公网安备 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-02-04在数据分析场景中,基准比是衡量指标表现、评估业务成效、对比个体/群体差异的核心工具,广泛应用于绩效评估、业务监控、竞品对 ...
2026-02-04业务数据分析是企业日常运营的核心支撑,其核心价值在于将零散的业务数据转化为可落地的业务洞察,破解运营痛点、优化业务流程、 ...
2026-02-04在信贷业务中,违约率是衡量信贷资产质量、把控信用风险、制定风控策略的核心指标,其统计分布特征直接决定了风险定价的合理性、 ...
2026-02-03在数字化业务迭代中,AB测试已成为验证产品优化、策略调整、运营活动效果的核心工具。但多数业务场景中,单纯的“AB组差异对比” ...
2026-02-03企业战略决策的科学性,决定了其长远发展的格局与竞争力。战略分析方法作为一套系统化、专业化的思维工具,为企业研判行业趋势、 ...
2026-02-03在统计调查与数据分析中,抽样方法分为简单随机抽样与复杂抽样两大类。简单随机抽样因样本均匀、计算简便,是基础的抽样方式,但 ...
2026-02-02在数据驱动企业发展的今天,“数据分析”已成为企业经营决策的核心支撑,但实践中,战略数据分析与业务数据分析两个概念常被混淆 ...
2026-02-02在数据驱动企业发展的今天,“数据分析”已成为企业经营决策的核心支撑,但实践中,战略数据分析与业务数据分析两个概念常被混淆 ...
2026-02-02B+树作为数据库索引的核心数据结构,其高效的查询、插入、删除性能,离不开节点间指针的合理设计。在日常学习和数据库开发中,很 ...
2026-01-30在数据库开发中,UUID(通用唯一识别码)是生成唯一主键、唯一标识的常用方式,其标准格式包含4个短横线(如550e8400-e29b-41d4- ...
2026-01-30商业数据分析的价值落地,离不开标准化、系统化的总体流程作为支撑;而CDA(Certified Data Analyst)数据分析师,作为经过系统 ...
2026-01-30在数据分析、质量控制、科研实验等场景中,数据波动性(离散程度)的精准衡量是判断数据可靠性、稳定性的核心环节。标准差(Stan ...
2026-01-29在数据分析、质量检测、科研实验等领域,判断数据间是否存在本质差异是核心需求,而t检验、F检验是实现这一目标的经典统计方法。 ...
2026-01-29统计制图(数据可视化)是数据分析的核心呈现载体,它将抽象的数据转化为直观的图表、图形,让数据规律、业务差异与潜在问题一目 ...
2026-01-29箱线图(Box Plot)作为数据分布可视化的核心工具,能清晰呈现数据的中位数、四分位数、异常值等关键统计特征,广泛应用于数据分 ...
2026-01-28在回归分析、机器学习建模等数据分析场景中,多重共线性是高频数据问题——当多个自变量间存在较强的线性关联时,会导致模型系数 ...
2026-01-28数据分析的价值落地,离不开科学方法的支撑。六种核心分析方法——描述性分析、诊断性分析、预测性分析、规范性分析、对比分析、 ...
2026-01-28在机器学习与数据分析领域,特征是连接数据与模型的核心载体,而特征重要性分析则是挖掘数据价值、优化模型性能、赋能业务决策的 ...
2026-01-27关联分析是数据挖掘领域中挖掘数据间潜在关联关系的经典方法,广泛应用于零售购物篮分析、电商推荐、用户行为路径挖掘等场景。而 ...
2026-01-27