【问题标题】:android java what is a long[ ][ ]?android java什么是long[][]?
【发布时间】:2016-10-30 06:51:35
【问题描述】:

我需要做 chiSquaredTest。我正在使用 Apache Commons Math 库,但不确定 long[][]long[] 有什么区别?以下是方法说明:

  public double chiSquareTest(long[][] counts)
                 throws NullArgumentException,
                        DimensionMismatchException,
                        NotPositiveException,
                        MaxCountExceededException

返回观察到的显着性水平或 p 值,与基于输入计数数组的独立性卡方检验相关联,被视为双向表。

2-way table 的行数为 count[0], ..., count[count.length - 1]

前提条件:

  • 列表项所有计数必须≥ 0。
  • count 数组必须是矩形的(即所有 count[i] 子数组的长度必须相同)。
  • 以计数表示的 2-way 表必须至少有 2 列和至少 2 行。
  • 如果不满足任何先决条件,则会引发 IllegalArgumentException。

参数:

  • 计数 - 二维表的数组表示

返回:

  • p 值

【问题讨论】:

    标签: android statistics apache-commons chi-squared apache-commons-math


    【解决方案1】:

    谢谢!是的,我很困惑。我发现这篇文章Why does tail probability in apache math drop to zero after 1E-16? 实际上使用regularizedGammaQ() 更好; http://commons.apache.org/proper/commons-math/javadocs/api-3.6.1/index.html

    【讨论】:

    • 这仅与您可能不会遇到的极端情况有关。
    【解决方案2】:

    请记住,Apache Commons Math 中的 ChiSquareTest 类提供了两种不同的度量:

    1. 拟合优度测试:使用chiSquareTest(double[] expected, double[] observed) - 测试您观察到的数据是否来自声明的分布。

    2. 独立性测试:使用chiSquareTest(double[][] counts) - 测试两个不同的变量是否相互关联。

    这两个测试略有不同,结果也会有所不同。

    编辑:由于问题实际上与Excel的chidst函数以及如何在Java中计算相同的结果有关,因此Apache Commons Math3的解决方案如下:

    ChiSquaredDistribution dist = new ChiSquaredDistribution(df);
    double chidst = 1 - dist.cumulativeProbability(chi);
    

    【讨论】:

    • 是的!我需要独立性测试通常我在excel和whit chidst函数中做我需要两个值chidst(chi,df),仍然无法弄清楚如何在java中使用那里的库和二维数组你有吗一个想法?
    • excel中的chidst函数计算ChiSquare分布的右尾概率。使用 commons-math 你可以得到同样的结果: ChiSquaredDistribution dist = new ChiSquaredDistribution(df); double chidst = 1 - dist.cumulativeProbability(chi);
    • 我建议您更新您的问题以反映您真正在寻找什么。
    【解决方案3】:

    long[] - 一维数组。

    long[] array = new long[4];
    
    /* result of that array
    {0, 0, 0, 0}
    */
    

    long[][] - 数组数组/二维数组。

    long[][] array2 = new long[4][];
    array2[0] = new long[1];
    array2[1] = new long[2];
    array2[2] = new long[4];
    array2[3] = new long[3];
    
    /* result of that array
    {
        {0},
        {0, 0},
        {0, 0, 0, 0},
        {0, 0, 0},
    }
    */
    

    也可以这样:

    long[][] array = new long[4][4];
    
    /* result of that array
    {
        {0, 0, 0, 0},
        {0, 0, 0, 0},
        {0, 0, 0, 0},
        {0, 0, 0, 0},
    }
    */
    

    更多示例请转至this link.

    【讨论】:

    • 您好!好,我知道了。所以如果我想为第一行添加一个值是
    • 您好!好,我知道了。所以如果我想在第一行添加一个值是 array2[0][0] = (long) 3.2; ---首先,第一个数组2[1][0] = 8; ---第一,第二
    猜你喜欢
    • 2016-06-12
    • 2015-01-07
    • 2015-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-29
    • 2014-01-28
    • 2015-07-23
    相关资源
    最近更新 更多