gpt4 book ai didi

r - 使用 R 来尊重 LatinHypercube/Monte Carlo 试验的相关性

转载 作者:行者123 更新时间:2023-12-04 12:01:07 25 4
gpt4 key购买 nike

我目前正在使用 python 和 RPY 来使用 R 中的功能。

我如何使用 R 库生成蒙特卡罗样本,以尊重 2 个变量之间的相关性..
例如
如果变量 A 和 B 具有 85% (0.85) 的相关性,我需要生成所有蒙特卡罗样本以尊重 A 和 B 之间的相关性。

如果有人可以分享想法/片段,将不胜感激

谢谢

最佳答案

Iman and Conover的秩相关法似乎是一种广泛使用的通用方法,用于为基于计算机的实验、敏感性分析等生成相关的蒙特卡罗样本。不幸的是,我只是遇到了这个并且无法访问 PDF,所以不知道作者实际上是如何做的实现他们的方法,但你可以跟进。

他们的方法更通用,因为与@Dirk 答案的多元正态分布不同,每个变量都可以来自不同的分布。

更新:我在包 mc2d 中找到了上述方法的 R 实现,特别是你想要 cornode() 功能。

这是取自 ?cornode 的示例

> require(mc2d)
> x1 <- rnorm(1000)
> x2 <- rnorm(1000)
> x3 <- rnorm(1000)
> mat <- cbind(x1, x2, x3)
> ## Target
> (corr <- matrix(c(1, 0.5, 0.2, 0.5, 1, 0.2, 0.2, 0.2, 1), ncol=3))
[,1] [,2] [,3]
[1,] 1.0 0.5 0.2
[2,] 0.5 1.0 0.2
[3,] 0.2 0.2 1.0
> ## Before
> cor(mat, method="spearman")
x1 x2 x3
x1 1.00000000 0.01218894 -0.02203357
x2 0.01218894 1.00000000 0.02298695
x3 -0.02203357 0.02298695 1.00000000
> matc <- cornode(mat, target=corr, result=TRUE)
Spearman Rank Correlation Post Function
x1 x2 x3
x1 1.0000000 0.4515535 0.1739153
x2 0.4515535 1.0000000 0.1646381
x3 0.1739153 0.1646381 1.0000000
matc中的等级相关性现在非常接近 corr 的目标相关性.

这样做的想法是,您从每个变量的分布中分别抽取样本,然后使用 Iman & Connover 方法使样本(尽可能接近)与目标相关性尽可能接近。

关于r - 使用 R 来尊重 LatinHypercube/Monte Carlo 试验的相关性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5679114/

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