python hypergeom.cdf函数理解

python hypergeom.cdf函数理解

导入函数

hypergeom.cdf函数是scipy库中的。

from scipy.stats import hypergeom

含义

与scipy帮助文档中的字母定义一致,即用hypergeom.cdf(k,M,n,N)来解释该函数的用法。
hypergeom是用于计算超几何分布的,其中cdf表示的是累计分布函数。这里用超几何分布的一般意义来解释,hypergeom.cdf表示:总共有M件产品,n件次品,从M件中随机挑出N件,这N件中最多包含n件中的k件的概率(也可以理解为M-n件产品中至少选到N-k件的概率)。
在这里插入图片描述

### 几何检验的概念 几何检验是一种用于评估样本集合中特定特征的比例是否显著不同于总体比例的方法。该方法基于几何分布,适用于不放回抽样的情况,在这种情况下,每次抽取都会改变剩余群体的组成[^1]。 当研究者感兴趣的是一个小类别在大类别的子集中被抽到的概率时,就会使用几何检验。例如,在基因表达分析中,可能想要知道一组差异表达的基因中有多少属于某个功能分类;或者在一个文档集里查找含有某些关键词的文章数量是否异常多等问题上都有广泛应用[^2]。 ### 应用场景 几何检验常应用于生物学领域内的富集分析(Enrichment Analysis),比如GO term 或 KEGG pathway 的富集测试。除此之外还可见于市场调研、社会科学研究等领域,用来判断某一群体内部是否存在某种属性过度代表的现象。另外,在计算机科学方面也可以利用此技术来进行模式识别或数据挖掘工作[^3]。 ### Python 实现方式 为了执行一次完整的几何检验过程,可以通过 `scipy` 库里的 `hypergeom` 函数完成: ```python from scipy.stats import hypergeom import numpy as np # 假设总共有M个球,N个白球,K次取样(无放回),求取出k个白球的概率. def calculate_hypergeometric(M, N, K, k): rv = hypergeom(M, N, K) prob = rv.pmf(k) # Probability Mass Function (PMF) return prob if __name__ == "__main__": M = 50 # 总数 N = 20 # 特定种类的数量 K = 8 # 抽样大小 k = 4 # 预期得到的目标数目 result = calculate_hypergeometric(M, N, K, k) print(f"Probability of drawing {k} white balls out of {K}: ",result) ``` 上述代码定义了一个简单的函数来计算给定条件下获得指定数量的成功事件的可能性,并打印出了结果。这里需要注意的是,实际应用场景下往往更关心累积概率而非单一点上的概率密度值,因此可以根据需求调整为调用 `.cdf()` 方法获取累计分布函数的结果[^4]。 对于 R 用户来说,则可以直接采用内置函数 `phyper()` 来达到相同的效果,其语法形式类似于下面这样: ```r prob <- phyper(q=k-1,m=N,n=(M-N),k=K,lower.tail=F) print(prob) ``` 这里的参数意义与前面提到的一致,只是注意由于R中的索引是从零开始计数而Python则是从一,所以在转换过程中需要做适当调整以保持一致性[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值