在R中绘制截断伽马分布的pdf,cdf和分位数函数的误差

时间:2014-04-18 19:00:40

标签: r distribution probability probability-density gamma-distribution

在论坛中搜索后,我没有找到类似的问题。如果我错过了,请告诉我。我真的很感激。

我需要为R中的任何给定形状和比例值绘制截断伽玛的pdf,cdf和分位数函数。但是,我得到了一些形状和比例值的错误。

我的代码:

 library(distr) 
 library(distrEx) 
 library(truncdist)
 scale8 <- 750000
 shape8 <- 0.0016     
 G0 <- Gammad(scale = scale8, shape = shape8) 
 plot(G0)
 TG <- Truncate(G0, lower=0, upper=1000000) #  Error in if (.isEqual(gaps[jj, 2], gaps[j + 1,   
                                            #  1])) gaps[jj, 2] <- gaps[j +  : 
                                            #    missing value where TRUE/FALSE needed

 plot(TG) 

我的理解是,对于某些伽玛的pdf,它的trucnated伽马分布不存在?

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

喜欢这个??

scale8 <- 750000
shape8 <- 0.0016 
library(truncdist)
par(mfrow=c(1,3))
q <- seq(0,100,1)
p <- seq(0,1,.01)
plot(q,dtrunc(q,"gamma",a=20,b=50,scale=scale8,shape=shape8),type="l",main="PDF")
plot(q,ptrunc(q,"gamma",a=20,b=50,scale=scale8,shape=shape8),type="l",main="CDF")
plot(p,qtrunc(p,"gamma",a=20,b=50,scale=scale8,shape=shape8),type="l",main="Quantile")

将下限和上限设置为[0,1000000]几乎不会截断,所以为了示例我更改了它。

编辑(对OP评论的回应)

截断范围的下限和上限在a=...b=...dtrunc(...)的调用中设置为ptrunc(...)qtrunc(...)。在这个例子中,它被设置为[20,50]。