基于R的概率变换

基于R的概率变换,r,transformation,probability,normal-distribution,weibull,R,Transformation,Probability,Normal Distribution,Weibull,我想把一个连续的随机变量X和cdfF(X)转换成一个连续的随机变量Y和cdf(Y),我想知道如何在R中实现它 例如,对服从正态分布(X)的数据执行概率变换,使其符合理想的威布尔分布(Y) (x=0的CDF F(x=0)=0.5,CDF F(y)=0.5对应于y=5,然后x=0对应于y=5等)有许多内置分布函数,以“p”开头的函数将转换为统一函数,以“q”开头的函数将转换为统一函数。因此,您的示例中的转换可以通过以下方式完成: y <- qweibull( pnorm( x ), 2, 6.

我想把一个连续的随机变量
X
cdf
F(X)
转换成一个连续的随机变量
Y
cdf(Y)
,我想知道如何在R中实现它

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


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

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

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

y通常,您可以通过

  • 求X的概率≤x、 即外汇(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
,威布尔分布的分位数函数是
qweibull
,因此您希望首先调用
pnorm
,然后对结果进行
qweibull

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