使用R TeachingDemos软件包的95%HPD区域

使用R TeachingDemos软件包的95%HPD区域,r,bayesian,R,Bayesian,我需要用R中的TeachingDemos软件包找到95%的HPD区域。我有一个遵循伽马分布的后验分布 安装软件包并在库中键入(TeachingDemos)后 我做到了: a = 200 b = 20 hpd(qgamma,shape1=a,shape2=b, conf=0.95) (a和b是伽马分布的α和β值) 我在运行代码时不断收到以下错误消息: Error in posterior.icdf(1 - conf + x, ...) : unused arguments (shape

我需要用R中的TeachingDemos软件包找到95%的HPD区域。我有一个遵循伽马分布的后验分布

安装软件包并在库中键入(TeachingDemos)后

我做到了:

a = 200 
b = 20
hpd(qgamma,shape1=a,shape2=b, conf=0.95)
(a和b是伽马分布的α和β值)

我在运行代码时不断收到以下错误消息:

 Error in posterior.icdf(1 - conf + x, ...) : 
  unused arguments (shape1 = 200, shape2 = 20)

我对使用R完全是个新手,那么我做错了什么呢?

hpd的签名是

hpd(posterior.icdf, conf=0.95, tol=0.00000001,...)
文档中指出,
..
是“传递给posteral.icdf的附加参数”。这意味着,在
hpd
中的某个地方,有一行代码类似于

posterior.icdf(x, ...)
其中,
就是除了conf
tol`之外传递给
hpd``的任何参数

如果查看
qbeta
的函数签名,您将看到它有参数
shape1
shape2
。然而,如果查看
qgamma
,您会发现这些都不是有效的参数名称

如果使用这些参数直接调用
qgamma
,则会收到相同的错误消息,例如:

qgamma(0.5, shape1=200, shape2=20)

它的意思正是它所说的。在R控制台中键入
?hpd
以获取帮助。此外,这是一个编程问题,而不是一个真正的统计问题——最好使用
r
标记将这些问题发布到StackOverflow上。@ssdecontrol我不知道错误消息想说什么?hpd没有告诉我任何新的事情。如果我将qgamma更改为qbeta,我的代码就可以工作,但我需要我的代码来为qgamma工作。我投票结束这个问题,因为它是关于如何在没有可复制示例的情况下使用R。您可能会混淆beta(shape1,shape2)和gamma(shape,scale或rate,scale)分布?