【问题标题】:Transform variable to gamma distribution in R将变量转换为 R 中的伽马分布
【发布时间】:2014-06-01 12:13:53
【问题描述】:

我有一个变量,我想将其转换为具有已知形状和速率参数的伽马分布。如何将变量转换为 R 中的伽马分布?我研究了 dgamma、pgamma 和 qgamma 函数,但我不知道是否有任何函数可以满足我的要求。

这是一个小例子:

variable <- rnorm(100)
shape <- .83
rate <- .01

注意:我意识到这个例子使用了正态分布的数据(它不适合伽马分布),但我需要将变量重新调整为原始的伽马分布。

【问题讨论】:

  • 您是否尝试过简单地使用伽马分布和概述的参数生成数据?
  • 我不想模拟伽马分布中的值,我想转换/重新缩放预先存在的变量以适应具有预定义参数的伽马分布。预先存在的变量(与上面的示例不同)不是随机数向量。这有意义吗?

标签: r gamma-distribution


【解决方案1】:

使用分布和分位数函数进行翻译:

qgamma(pnorm(variable), shape=.83, rate=.01)

这假设 variable 的意思是 0, sd 1 (就像你的例子一样)。否则,您可以将均值和 sd 传递给 pnorm

要查看转换:

plot(density(variable))

plot(density(qgamma(pnorm(variable), shape=.83, rate=.01)))

【讨论】:

    最近更新 更多