我的目标是近似二项式变量之和的分布。 我使用Ken Butler和Michael Stephens的以下论文The Distribution of a Sum of Binomial Random Variables。
我想编写一个R脚本来查找Pearson近似二项式之和。 有一个R-package PearsonDS允许以简单的方式执行此操作。
所以我从论文中拿出第一个例子,试图找到这种情况下Pearson分布的密度。 最后,我收到一条错误消息“这些时刻没有概率分布”。
您可以在下面的代码中解释一下我的错误吗?
library(PearsonDS)
#define五个二项式随机变量的参数
n<-rep(5,5)
p<-seq(0.02,0.10,0.02)
#找到前四个累积量
k.1<-sum(n*p)
k.2<-sum(n*p*(1-p))
k.3<-sum(n*p*(1-p)*(1-2*p))
k.4<-sum(n*p*(1-p)*(1-6*p*(1-p)))
#找到偏度和峰度参数
beta.1<-k.3^2/k.2^3
beta.2<-k.4/k.2^2
#定义时刻并计算
moments <- c(mean=k.1,variance=k.2,skewness=sqrt(beta.1),kurtosis=beta.2)
dpearson(1:7,moments=moments)
我收到错误消息“这些时刻没有概率分布”。
答案 0 :(得分:2)
你试图在你的时刻插入峰度,实际上是多余的峰度,它只是kurtosis - 3
。来自dpearson()
的帮助页面:
时刻:
可选矢量/均值,方差,偏度,峰度(不是过度峰度)列表。
因此,向beta.2
添加3将为您提供真正的峰度:
beta.1 <- (k.3^2)/(k.2^3)
beta.2 <- k.4/(k.2^2)
kurt <- beta.2 + 3
moments <- c(mean = k.1, variance = k.2, skewness = beta.1, kurtosis = kurt)
dpearson(1:7, moments=moments)
# [1] 0.3438773545 0.2788412385 0.1295129534 0.0411140817 0.0099279576
# [6] 0.0019551512 0.0003294087
为了得到与论文中的结果类似的结果,我们应该研究累积分布函数并加上0.5以校正由连续分布近似离散分布引起的偏差:
ppearson(1:7+0.5, moments = moments)
# [1] 0.5348017 0.8104394 0.9430092 0.9865434 0.9973715 0.9995578 0.9999339
该函数引发了一个错误,因为峰度和偏度之间的关系并非无效:峰度以下列方式受到偏度的限制:kurtosis >= (skewness)^2 - 1
。证明不够漂亮,肯定超出了问题的范围,但如果你喜欢这种不等式的不同版本,你可以查看下面的参考文献。