我正在寻找一种方法来在 2 个变量之间创建指定的相关性,而不管它们的分布如何,因为允许更改顺序。动机与贝叶斯统计有关。
想象一下a
包含 100 个随机正常数字的变量,而变量b
包含数字 1...100。
将有可能100 factorial
的排列,并且在 variable 的所有可能排列中,大部分时间都存在 -0.95 和 0.95 之间的相关性b
。
我在 R 中编写了一个小脚本,试图以迭代的方式找到相关性。
遍历所有索引,检查先前的相关性是否低于或高于所寻求的相关性。
如果相关性太低,它会将属于索引的数字与属于随机索引的数字切换。
如果相关性太高,它会将属于索引的数字与属于随机索引的数字切换得更高。
然后它将检查新的相关性是否优于旧的相关性,并保持最接近想要的相关性。
它将继续按顺序(从 1 到 100)遍历所有索引,并在每次迭代之后检查它是否在所需的相关性 +/- 容差内并返回置换变量。
通常在大约 2000 次迭代中,将通过 0.0005 的容差找到指定的相关性。
图片中的索引代表迭代。
我的问题是如何以更智能的方式进行这种排列,以便更快地找到相关性。