如何在R中创建离散正态分布?

JDi*_*iaz 3 statistics r

我正在尝试使用诸如此类的东西创建离散正态分布

x <- rnorm(1000, mean = 350, sd = 20) 
Run Code Online (Sandbox Code Playgroud)

但我不认为该rnorm功能有内置的"离散数字"选项.我花了几个小时试图在StackOverflow,Google和R文档上搜索它,但还没有找到任何东西.

Lyz*_*deR 6

显然,没有离散的正态分布,因为默认情况下它是连续的.但是,如前所述这里(维基百科是不是最好的来源,但是这是正确的反正):

如果n足够大,则分布的偏差不会太大.在这种情况下,B(n,p)的合理近似由正态分布给出

这可以通过一个简单的例子看到:

par(mfrow=c(1,2) )
#values generated by a binomial distribution
plot(density(rbinom(1000, 30, p=0.25)))
#values generated by a normal distribution
plot(density(rnorm(1000)))
Run Code Online (Sandbox Code Playgroud)

情节:

在此输入图像描述

左边的图形(二项式)肯定接近右边(正常),这将更加明显n goes to Inf.

正如您将看到的那样,rbinom(1000, 30, p=0.25)将产生离散值(整数).此外,密度可能不是在离散变量上使用的最佳函数,但它证明了这一点.


rom*_*man 5

如果你想生成一组遵循正态分布的随机整数,你可以像这样简单地将它们四舍五入......

    round(rnorm(10, 5, 1), 0)
Run Code Online (Sandbox Code Playgroud)

  • 不存在“遵循正态分布的一组随机整数”。 (4认同)