java - 生成相关数字

标签 java actionscript-3 statistics random

这是一个有趣的例子:我需要生成随机的 x/y 对,它们在 Pearson product moment correlation coefficient, or Pearson r 的给定值处相关。 .您可以将其想象为两个数组,数组 X 和数组 Y,其中数组 X 和数组 Y 的值必须重新生成、重新排序或转换,直到它们在给定的 Pearson r 水平上相互关联。关键在于:数组 X 和数组 Y 必须均匀分布。

我可以使用正态分布来做到这一点,但是在不扭曲分布的情况下转换值让我感到难过。我尝试重新排序数组中的值以增加相关性,但我永远不会通过排序获得 1.00 或 -1.00 的相关数组。

有什么想法吗?

--

这里是随机相关高斯的 AS3 代码,让轮子转动:

public static function nextCorrelatedGaussians(r:Number):Array{             
         var d1:Number;
         var d2:Number;
         var n1:Number;
         var n2:Number;
         var lambda:Number;
         var r:Number;
         var arr:Array = new Array();
         var isNeg:Boolean; 

        if (r<0){
            r *= -1;
              isNeg=true;
        }            
        lambda= (   (r*r)  -  Math.sqrt(  (r*r) - (r*r*r*r)  )     )   /   ((  2*r*r ) - 1  );

        n1 = nextGaussian();
        n2 = nextGaussian();           
        d1 = n1;            
        d2 = ((lambda*n1) + ((1-lambda)*n2)) / Math.sqrt( (lambda*lambda) + (1-lambda)*(1-lambda));

        if (isNeg) {d2*= -1}           
        arr.push(d1);
        arr.push(d2);
        return arr;
    }

最佳答案

我最后写了一个 short paper on this

它不包括你的排序方法(虽然在实践中我认为它类似于我的第一种方法,以一种迂回的方式),但确实描述了两种不需要迭代的方式。

关于java - 生成相关数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1717907/

相关文章:

java - 想要在谷歌地图中每 10 秒为标记制作动画吗?

java - 部署的 Azure 无服务器函数看不到函数之外的类

actionscript-3 - 在 as3 中停止嵌入的声音

r - 执行Shapiro-Wilk正态性测试

java - GAE/J 范围查询中最大可能的键字符串是什么?

java - 未找到 util.Random 符号

c++ - 将拆分的 TCP 数据包与闪存套接字重新组合

actionscript-3 - 为什么我必须使用 Flash 创建一个 AS3 包?

r - ggplot2 中 geom_line 的两个色标

c - 创建 : <Method Name> <Num of times called> for a particular project directory list 的脚本