【问题标题】:Probability transformation using R使用 R 进行概率转换
【发布时间】:2013-06-25 12:49:25
【问题描述】:

我想将一个连续随机变量Xcdf F(x) 变成一个连续随机变量Ycdf F(y),我想知道如何在R 中实现它。

例如,对服从正态分布 (X) 的数据进行概率变换,使其符合理想的 Weibull 分布 (Y)。

(x=0 有 CDF F(x=0)=0.5,CDF F(y)=0.5 对应 y=5,然后 x=0 对应 y=5 等等)

【问题讨论】:

  • 如果您的帖子展示了在编程解决方案方面所做的一些努力,那么这里的大多数人可能会更赞成您的问题。
  • 我认为也许这应该进行交叉验证而不是堆栈溢出?

标签: r transformation probability normal-distribution weibull


【解决方案1】:

有许多内置的分布函数,以“p”开头的将转换为制服,以“q”开头的将转换为制服。因此,您的示例中的转换可以通过以下方式完成:

y <- qweibull( pnorm( x ), 2, 6.0056 )

然后只需更改其他情况的函数和/或参数。

distr 包也可能对其他功能感兴趣。

【讨论】:

    【解决方案2】:

    通常,您可以将 X 上的观察 x 转换为 Y 上的观察 y

    • 得到X≤x的概率,即FX(x)。
    • 然后确定哪些观察 y 具有相同的概率,

    即您希望概率 Y≤y = FY(y) 与 FX(x) 相同。

    这给出了 FY(y) = FX(x)。

    因此 y = FY-1(FX(x))

    其中 FY-1 更好地称为分位数函数 QY。从X到Y的整体转换总结为:Y = QY(FX(X))。

    在您的特定示例中,从 R 帮助中,正态分布的分布函数是 pnorm,而 Weibull 分布的分位数函数是 qweibull,所以您首先要调用 pnorm,然后qweibull 在结果上。

    【讨论】:

      猜你喜欢
      • 2017-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-31
      • 1970-01-01
      • 2018-10-27
      相关资源
      最近更新 更多