【发布时间】:2020-01-31 04:37:01
【问题描述】:
我正在完成一项作业,其中我必须从双变量正态生成样本 X = (X1, X2),其中每个边际为 N(0,1),X1 和 X2 之间的相关性为 0.5。
我认为解决此问题的方法是使用 mvrnorm 函数,但我不太确定之后如何进行。有什么建议吗?提前致谢!
【问题讨论】:
标签: r
我正在完成一项作业,其中我必须从双变量正态生成样本 X = (X1, X2),其中每个边际为 N(0,1),X1 和 X2 之间的相关性为 0.5。
我认为解决此问题的方法是使用 mvrnorm 函数,但我不太确定之后如何进行。有什么建议吗?提前致谢!
【问题讨论】:
标签: r
这里有一些选项:
mvtnorm::rmvnorm 和 MASS::mvrnorm 的工作方式相同,尽管 mvtnorm::rmvnorm 函数不需要您指定均值(即默认值为 0)。为 mu 向量命名将指定模拟变量的名称。n <- 100
R <- matrix(c(1, 0.5,
0.5, 1),
nrow = 2, ncol = 2, byrow = TRUE)
mu <- c(X = 0, Y = 0)
mvtnorm::rmvnorm(n, mean = mu, sigma = R)
MASS::mvrnorm(n, mu = mu, Sigma = R)
simstandard::sim_standardized 只会生成标准化数据,但会减少输入:simstandard::sim_standardized("X ~~ 0.5 * Y", n = 100)
【讨论】:
byrow = TRUE。这里显然没问题!
确实,MASS 包中的mvrnorm 函数可能是您最好的选择。该函数可以从多元正态分布生成伪随机数据。
检查此函数的帮助页面 (??mvrnorm) 表明,您需要三个关键参数来模拟基于给定参数的数据,即:
n - 所需样本数(整数);mu - 给出变量均值的向量 - 在这里,您的分布是标准正态分布,因此它将是一个零向量;和Sigma - 一个正定对称矩阵,指定变量的协方差矩阵 - 即,在您的情况下,一个矩阵的对角线上方差和非对角线上的协方差为 0.5。查看此帮助页面中的示例,它应该可以帮助您将这些想法结合在一起!
【讨论】: