Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R Copula与二元和连续变量的模拟_R_Montecarlo_Simulationx - Fatal编程技术网

R Copula与二元和连续变量的模拟

R Copula与二元和连续变量的模拟,r,montecarlo,simulationx,R,Montecarlo,Simulationx,我试图模拟变量,了解它们的边际分布和相关矩阵。我知道我们可以使用copula这样的软件包,但我对如何使用它并不熟悉。有人能帮忙吗 #mean(w1)=0.6, sd(w1)=0.38; w1 is normally distributed #mean(w2)=0.31; w2 is binary #mean(w3)=0.226; w3 is binary cor w1 w2 w3 w1 1.0000000 -0.3555066 -0.19

我试图模拟变量,了解它们的边际分布和相关矩阵。我知道我们可以使用copula这样的软件包,但我对如何使用它并不熟悉。有人能帮忙吗

#mean(w1)=0.6, sd(w1)=0.38; w1 is normally distributed
#mean(w2)=0.31; w2 is binary
#mean(w3)=0.226; w3 is binary

cor
           w1         w2         w3
w1  1.0000000 -0.3555066 -0.1986376
w2 -0.3555066  1.0000000  0.1030849
w3 -0.1986376  0.1030849  1.0000000

根据这里的答案:

库(copula)
种子集(123)

麦可普谢谢您@卫黄王。我不知道如何模拟从
qbinom
输出中获得伯努利分布,以及同样从
qnorm
获得正态分布。你有没有一个例子,我可以用。谢谢,我们正在模拟均匀分布(这就是
rCopula
所做的),然后将均匀随机变量转换为伯努利和正态(这就是
qbinom
qnorm
所做的)。这是一个分两步的过程。除了上面的代码之外,我不知道你还想用什么样的例子。非常感谢@WeihuangWong。后来我在检查
qbinom
时意识到了这一点。很抱歉造成混乱,感谢您及时回复
library(copula)
set.seed(123)
myCop <- normalCopula(param = c(-0.46, -0.27, 0.18), 
                      dim = 3, dispstr = "un")
out <- rCopula(1e5, myCop)
out[, 1] <- qnorm(out[, 1], mean = 0.6, sd = 0.38)
out[, 2] <- qbinom(out[, 2], size = 1, prob = 0.31)
out[, 3] <- qbinom(out[, 3], size = 1, prob = 0.226)

cor(out)
#            [,1]       [,2]       [,3]
# [1,]  1.0000000 -0.3548863 -0.1943631
# [2,] -0.3548863  1.0000000  0.1037638
# [3,] -0.1943631  0.1037638  1.0000000
colMeans(out)
# [1] 0.5992595 0.3118300 0.2256000
sd(out[, 1])
# [1] 0.3806173