ppois是泊松分布的分布函数(即用来求累计概率),因为是离散的,所以只会在整数左右有变化,看最下面的图像比较容易懂,比如q=0.5就和q=0.9的结果一样,q=1就和q=1.2的结果一样。
一般用法:
ppois(q, lambda, lower.tail = TRUE, log.p = FALSE)q:官方帮助文档说是分位数,我理解是指定x轴上的点。
lambda:就是泊松分布的参数λ
lower.tail:是逻辑变量,当它为真(TRUE,缺省值)时,分布函数的计算公式为
当lower.tail = FALSE时,分布函数的计算公式为
log, log.p是逻辑变量,当它为真(TRUE)时,函数的返回值不再是泊松分布,而是对数泊松分布.
比如lambda=1的分布函数作图如下:
本帖最后由 jmpamao 于 2012-12-16 15:27 编辑<9 记为 a
>17 记为 b
data <- read.table(text="
x Freq
9 282
10 547
11 704
12 682
13 527
14 340
15 188
16 91
17 39
",header=T)
pois.lambda <- function(a.min=0,a.max=8,a.Freq=73,b.min=18,b.max=50,b.Freq=23,data=data,p=0.95){
lambda <-c((sum(data[,1]*data[,2])+a.min*a.Freq+b.min*b.Freq)/(sum(data[,2])+a.Freq+b.Freq),
(sum(data[,1]*data[,2])+a.max*a.Freq+b.max*b.Freq)/(sum(data[,2])+a.Freq+b.Freq))
cat("lambda的取值范围",lambda,"\n")
lambda=round((lambda[1]*a.Freq+lambda[2]*b.Freq)/(a.Freq+b.Freq),digits=0)
pois=qpois(p,lambda)
cat("建议取值为",lambda,"\n",p,"的保证接通时,接话员数量",pois,"\n")
}
pois.lambda(0,8,73,18,50,23,data,p=0.95)
R语言泊松分布产生随机数函数rpois(n, lambda)例子rpois(100,2) 按lambda=2的泊松分布产生了100个随机数 。
没有遇到过缺失值,你是不是哪里弄错了!