采样截断法线时,R中rtmvnorm()的错误答案

时间:2016-08-17 04:45:04

标签: r covariance normal-distribution truncated

我无法找到为什么我在采样后没有得到正确的相关结构。

我在rtmvnorm包中使用R中的tmvtnorm。我使用pdf中提供的示例1作为此函数的部分。

sigma <- matrix(c(4,2,2,3), ncol=2)
x <- rtmvnorm(n=500, mean=c(1,2), sigma=sigma, upper=c(1,0))

当我使用上述内容查找cor(x)cov2cor(sigma)时,我的搜索结果会有所不同。

> cor(x)
#          [,1]      [,2]
#[1,] 1.0000000 0.2126776
#[2,] 0.2126776 1.0000000

> cov2cor(sigma)
#          [,1]      [,2]
#[1,] 1.0000000 0.5773503
#[2,] 0.5773503 1.0000000

我的目标是生成具有协方差结构的截断正态样本。

     [,1] [,2]
[1,]  9.0  3.6
[2,]  3.6 16.0

也许我在这里遗漏了一些东西。有人能以更好的方式向我解释吗?

1 个答案:

答案 0 :(得分:1)

你为什么感到惊讶? cov2cor(sigma)是非截断法线的相关矩阵,而cor(x)是截断法线的相关矩阵。当然他们不一样。同样,cov(x)sigma不同。

您要比较cov2cor(cov(x))cor(x)吗?那将是一样的。