R语言中ppois如何应用

Python017

R语言中ppois如何应用,第1张

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个随机数 。

没有遇到过缺失值,你是不是哪里弄错了!