如何显示 R 中从均匀分布到指数分布的转换?

How can I show transformation from uniform distribution to exponential distribution in R?

当变量X具有均匀分布(0,1)时,我可以制作一个公式Y = -(lambda)lnX并且Y的分布将显示Exp(lambda)

我试图证明当 lambda 为 3 时的这种情况,表明两条分布曲线匹配。 我已经做到了这一点,但真的不知道怎么做。

w <- seq(0, 10, length=500)
x <- dunif(w, 0, 1)
y <- (-1)*(3)*log(x)
z <- dexp(w, 3)
plot(w, y, type="l")
par(new=F)
plot(w, z)

这是一个与逆 CDF 方法相关的问题。

首先,你得到的逆 CDF 是错误的。是 -1/3,不是 -3

其次,顾名思义,是逆CDF,不是逆PDF。您不能对密度函数进行此类转换。相反,抽取样本并使用分位数-分位数图。

n <- 500
x <- runif(n)
y <- -1/3 * log(x)
z <- rexp(n, 3)
qqplot(y, z)
abline(0, 1)

或者,将经验 CDF 与理论 CDF 进行比较。

plot(ecdf(y))
curve(pexp(x, 3), add = TRUE, col = 2)