概率积分变换的经验验证

机器算法验证 r 分布 正态分布 模拟 累积分布函数
2022-03-27 16:12:38

我刚刚在研究 Copulae 时发现,众所周知,如果是具有概率密度函数的连续随机变量,则服从均匀分布。XFXY=FX(x)

在网上找到证据之前,我试图在 R 中凭经验验证上述陈述,但似乎无法成功。有人可以告诉我我的方法有什么问题吗?在下面的代码中,我绘制了从 Normal CDF 采样的值和从 Cauchy CDF 采样而不是观察均匀分布,这是我得到的:103103

par(mfrow=c(1,2))
hist(pnorm(ppoints(1e3)))
hist(pcauchy(ppoints(1e3)))

在此处输入图像描述

我没想到完全均匀的分布,但的值应该足以至少接近看起来均匀的东西。那么有什么问题呢?103

1个回答

我相信你的代码只是没有做你想做的事。这就是你想要的:

set.seed(154)
x <- rnorm(10000)
hist(pnorm(x))

这个直方图看起来很均匀。

我相信

plot(ppoints(1000), pnorm(ppoints(1000)))

生成正常 cdf 图形的一部分的图。

这是一个快速验证

plot((1:100 - 50)/25, pnorm((1:100 - 50)/25)) 
points(ppoints(25), pnorm(ppoints(25)), col="blue")

在此处输入图像描述