如何显示 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)
当变量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)