gpt4 book ai didi

r - 在 R 中使用 uniform(0,1) 生成 N(0,1)

转载 作者:行者123 更新时间:2023-12-02 08:14:01 24 4
gpt4 key购买 nike

我正在尝试使用 uniform(0,1) 生成 N(0,1) 进行模拟,但无法运行代码。

首先,我的 x 是通过使 X 成为法线 CDF 的主题,然后得出直方图来找到的。然后施加一条正态曲线以查看它是否适合。下面是我的代码。

sigma=1; mu=0
u<-runif(n)
x<-mu + sqrt(2*sigma(log(u*sigma*sqrt(2*pi))))
hist(x, Freq=F)
xpt<-seq(-5,5,0.1)
ypt<-dnorm(xpt,0,1)
lines(xpt,ypt,col=2)

最佳答案

您似乎反转了 PDF(概率密度函数)而不是 CDF(累积密度函数)。

实际上,正态随机变量不是用逆 CDF 生成的,因为它的 CDF 不是封闭形式。

查看Box-Muller 变换。您模拟两组独立的均匀随机变量:

u <- runif(1000)
v <- runif(1000)
x <- sqrt(-2 * log(u)) * cos(2 * pi * v)
# y <- sqrt(-2 * log(u)) * sin(2 * pi * v)

那么x来自N(0, 1)(x, y)是二元正态分布,均值为零且恒等协方差。

关于r - 在 R 中使用 uniform(0,1) 生成 N(0,1),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43618421/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com