r语言计算超几何分布
超几何分布是指在有限个对象中抽取不放回地抽取n次,成功的次数X服从的概率分布。在统计学中,超几何分布常用于描述抽样问题,比如从一批元素中抽取符合某一特征的元素的数量分布情况。在R语言中,我们可以使用dhyper()
, phyper()
, qhyper()
和rhyper()
函数来计算超几何分布的概率密度函数、累积分布函数、分位数和生成随机数。
超几何分布的概率密度函数
超几何分布的概率密度函数为:
P(X=x) = \frac{{\binom{K}{x} \binom{N-K}{n-x}}}{{\binom{N}{n}}}
其中,N为总体容量,K为总体中具有成功特征的个体数,n为抽取次数,x为抽取成功的次数。
在R语言中,我们可以使用dhyper()
函数来计算超几何分布的概率密度函数。下面是一个示例:
# 假设总体容量为50,有20个体具有成功特征,抽取10次,成功的次数为5,求概率密度函数的值
dhyper(5, 20, 30, 10)
运行结果为:
[1] 0.201779
超几何分布的累积分布函数
超几何分布的累积分布函数为:
P(X \leq x) = \sum_{i=0}^{x} \frac{{\binom{K}{i} \binom{N-K}{n-i}}}{{\binom{N}{n}}}
在R语言中,我们可以使用phyper()
函数来计算超几何分布的累积分布函数。下面是一个示例:
# 假设总体容量为50,有20个体具有成功特征,抽取10次,求成功次数不超过5次的累积概率
phyper(5, 20, 30, 10)
运行结果为:
[1] 0.3836132
超几何分布的分位数
超几何分布的分位数可以通过累积分布函数的逆运算来计算。在R语言中,我们可以使用qhyper()
函数来计算超几何分布的分位数。下面是一个示例:
# 假设总体容量为50,有20个体具有成功特征,抽取10次,求累积概率为0.8对应的成功次数
qhyper(0.8, 20, 30, 10)
运行结果为:
[1] 6
生成超几何分布随机数
在R语言中,我们可以使用rhyper()
函数来生成符合超几何分布的随机数。下面是一个示例:
# 生成1000个符合超几何分布的随机数,总体容量为50,有20个体具有成功特征,抽取10次
set.seed(123) # 设置随机种子,保证每次运行结果相同
rhyper(1000, 20, 30, 10)
运行结果为一个长度为1000的随机数向量。
通过上面的示例代码,我们可以看到在R语言中计算超几何分布是非常简单的。只需要调用相应的函数,就可以得到所需的概率值、分位数或随机数。这对于统计学习和数据分析工作是非常有帮助的。