京公网安备 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个注册用户的概率不高。文章来源:cda数据分析师官网
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
在数字经济飞速发展的今天,数据分析已从“辅助工具”升级为“核心竞争力”,渗透到商业、科技、民生、金融等各个领域。无论是全 ...
2026-03-11上市公司财务报表是反映企业经营状况、盈利能力、偿债能力的核心数据载体,是投资者决策、研究者分析、从业者复盘的重要依据。16 ...
2026-03-11数字化浪潮下,数据已成为企业生存发展的核心资产,而数据思维,正是CDA(Certified Data Analyst)数据分析师解锁数据价值、赋 ...
2026-03-11线性回归是数据分析中最常用的预测与关联分析方法,广泛应用于销售额预测、风险评估、趋势分析等场景(如前文销售额预测中的多元 ...
2026-03-10在SQL Server安装与配置的实操中,“服务名无效”是最令初学者头疼的高频问题之一。无论是在命令行执行net start启动服务、通过S ...
2026-03-10在数据驱动业务的当下,CDA(Certified Data Analyst)数据分析师的核心价值,不仅在于解读数据,更在于搭建一套科学、可落地的 ...
2026-03-10在企业经营决策中,销售额预测是核心环节之一——无论是库存备货、营销预算制定、产能规划,还是战略布局,都需要基于精准的销售 ...
2026-03-09金融数据分析的核心价值,是通过挖掘数据规律、识别风险、捕捉机会,为投资决策、风险控制、业务优化提供精准支撑——而这一切的 ...
2026-03-09在数据驱动决策的时代,CDA(Certified Data Analyst)数据分析师的核心工作,是通过数据解读业务、支撑决策,而指标与指标体系 ...
2026-03-09在数据处理的全流程中,数据呈现与数据分析是两个紧密关联却截然不同的核心环节。无论是科研数据整理、企业业务复盘,还是日常数 ...
2026-03-06在数据分析、数据预处理场景中,dat文件是一种常见的二进制或文本格式数据文件,广泛应用于科研数据、工程数据、传感器数据等领 ...
2026-03-06在数据驱动决策的时代,CDA(Certified Data Analyst)数据分析师的核心价值,早已超越单纯的数据清洗与统计分析,而是通过数据 ...
2026-03-06在教学管理、培训数据统计、课程体系搭建等场景中,经常需要对课时数据进行排序并实现累加计算——比如,按课程章节排序,累加各 ...
2026-03-05在数据分析场景中,环比是衡量数据短期波动的核心指标——它通过对比“当前周期与上一个相邻周期”的数据,直观反映指标的月度、 ...
2026-03-05数据治理是数字化时代企业实现数据价值最大化的核心前提,而CDA(Certified Data Analyst)数据分析师作为数据全生命周期的核心 ...
2026-03-05在实验检测、质量控制、科研验证等场景中,“方法验证”是确保检测/分析结果可靠、可复用的核心环节——无论是新开发的检测方法 ...
2026-03-04在数据分析、科研实验、办公统计等场景中,我们常常需要对比两组数据的整体差异——比如两种营销策略的销售额差异、两种实验方案 ...
2026-03-04在数字化转型进入深水区的今天,企业对数据的依赖程度日益加深,而数据治理体系则是企业实现数据规范化、高质量化、价值化的核心 ...
2026-03-04在深度学习,尤其是卷积神经网络(CNN)的实操中,转置卷积(Transposed Convolution)是一个高频应用的操作——它核心用于实现 ...
2026-03-03在日常办公、数据分析、金融理财、科研统计等场景中,我们经常需要计算“平均值”来概括一组数据的整体水平——比如计算月度平均 ...
2026-03-03