[英]How to plot a factorial function in R
几乎总是,涉及阶乘的概率表达式是“ N select K”计算的一些结果:
但是通过阶乘计算效率非常低,最重要的是,它在数值上不稳定。 使用factorial()
看一下代码: NaN
。
在R中, choose(N, K)
函数可快速,稳定地计算“ N select K”。
现在,仔细检查您给定的配方,它等同于:
choose(N-100, 50) / choose(N, 60)
因此,您可以执行以下操作:
P <- choose(N-100, 50) / choose(N, 60)
plot(N, P, type = "l")
跟进
嗨,这是一个非常有效的功能。 但是,该图的均值,众数和中位数与我在课程材料中针对同一图的那些不匹配吗? 平均值应该是727,Mode = 600,中位数= 679! 我如何从您建议的情节中获得这些描述?
我对您的课程材料想做什么感到困惑。 您给出的概率是条件概率P(D | N)
,即随机变量D
的概率。 当我们针对N
绘制P
时。 因此,上面的图不是概率质量函数! 然后,我们如何使用它为随机变量N
计算诸如均值,众数和中位数之类的统计信息?
嗯,无论如何,既然您要求并坚持要得到答案,我们就假设这是随机变量N
的概率质量函数。 但是由于它不是一个真实的值,因此sum(P)
甚至不是1。我们实际上有sum(P) = 3.843678e-12
。 因此,要将其用作适当的概率质量函数,我们需要首先对其进行归一化。
P <- P / sum(P)
现在P
总和为1。
为了计算均值,我们这样做
sum(N * P)
# [1] 726.978
为了计算模式,我们要做
N[which.max(P)]
# 599
为了计算中位数,我们这样做
N[which(cumsum(P) > 0.5)[1]]
# 679
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.