android java 什么是 long[ ][ ]?

android java what is a long[ ][ ]?

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

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

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

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

Preconditions:

Parameters:

Returns:

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.

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

  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);

谢谢!是的,我很困惑。我找到了这个 post 实际上使用正则化 Gamma() 更好; http://commons.apache.org/proper/commons-math/javadocs/api-3.6.1/index.html