类 PearsonsCorrelation

java.lang.Object
org.hipparchus.stat.correlation.PearsonsCorrelation

public class PearsonsCorrelation extends Object
计算一对数组或矩阵列的Pearson积矩相关系数。

接受RealMatrixdouble[][]参数的构造函数生成相关系数矩阵。假定输入矩阵的列代表变量值。相关系数由以下公式给出:

cor(X, Y) = Σ[(xi - E(X))(yi - E(Y))] / [(n - 1)s(X)s(Y)]

其中E(X)X的均值,E(Y)Y值的均值,s(X)和s(Y)是标准差。

要计算单对数组的相关系数,可以使用PearsonsCorrelation()构造一个不带数据的实例,然后使用correlation(double[], double[])。也可以直接从不带数据的实例使用computeCorrelationMatrix(double[][])来计算相关系数矩阵。但是,要使用getCorrelationMatrix()getCorrelationPValues()getCorrelationStandardErrors(),必须使用提供数据或协方差矩阵的构造函数之一来创建实例。

  • 构造器详细资料

    • PearsonsCorrelation

      public PearsonsCorrelation()
      创建一个不带数据的PearsonsCorrelation实例。
    • PearsonsCorrelation

      public PearsonsCorrelation(double[][] data)
      从一个矩形数组创建一个PearsonsCorrelation,其列代表要进行相关性计算的变量的值。如果输入数组不具有至少两列和两行,则抛出MathIllegalArgumentException。如果其中一个相关变量的方差为零,则成对相关性设置为NaN。
      参数:
      data - 包含代表变量的列的矩形数组
      抛出:
      MathIllegalArgumentException - 如果输入数据数组不是至少具有两行和两列的矩形数组。
      另请参阅:
    • PearsonsCorrelation

      public PearsonsCorrelation(RealMatrix matrix)
      从一个RealMatrix创建一个PearsonsCorrelation,其列代表要进行相关性计算的变量。如果矩阵不具有至少两列和两行,则抛出MathIllegalArgumentException。如果其中一个相关变量的方差为零,则成对相关性设置为NaN。
      参数:
      matrix - 包含要进行相关性计算的变量的列的矩阵
      抛出:
      MathIllegalArgumentException - 如果矩阵不包含足够的数据
      另请参阅:
    • PearsonsCorrelation

      public PearsonsCorrelation(Covariance covariance)
      从一个Covariance创建一个PearsonsCorrelation。通过缩放Covariance的协方差矩阵来计算相关系数矩阵。Covariance实例必须是从包含变量值的数据矩阵创建的。
      参数:
      covariance - Covariance实例
    • PearsonsCorrelation

      public PearsonsCorrelation(RealMatrix covarianceMatrix, int numberOfObservations)
      从一个协方差矩阵创建一个PearsonsCorrelation。通过缩放协方差矩阵来计算相关系数矩阵。
      参数:
      covarianceMatrix - 协方差矩阵
      numberOfObservations - 用于计算协方差矩阵的数据集中的观测次数
  • 方法详细资料

    • getCorrelationMatrix

      public RealMatrix getCorrelationMatrix()
      返回相关系数矩阵。

      如果使用无参数构造函数创建此实例,则此方法将返回null,即使在激活之前调用了computeCorrelationMatrix(double[][])

      返回:
      相关系数矩阵
    • getCorrelationStandardErrors

      public RealMatrix getCorrelationStandardErrors()
      返回与相关系数矩阵中估计值相关的标准误差矩阵。
      getCorrelationStandardErrors().getEntry(i,j)是与getCorrelationMatrix.getEntry(i,j)相关的标准误差。

      用于计算标准误差的公式为
      SEr = ((1 - r2) / (n - 2))1/2,其中r是估计的相关系数,n是源数据集中的观测次数。

      要使用此方法,必须使用提供输入矩阵的构造函数之一来创建此实例。

      返回:
      相关标准误差矩阵
      抛出:
      NullPointerException - 如果此实例是使用无数据创建的
    • getCorrelationPValues

      public RealMatrix getCorrelationPValues()
      返回与(双侧)零相关系数假设相对应的p值矩阵。

      getCorrelationPValues().getEntry(i,j)是随机变量分布为tn-2,取绝对值大于或等于
      |r|((n - 2) / (1 - r2))1/2的概率

      矩阵中的值有时被称为相应相关系数的显著性

      要使用此方法,必须使用提供输入矩阵的构造函数之一来创建此实例。

      返回:
      p值矩阵
      抛出:
      MathIllegalStateException - 如果估计概率时发生错误
      NullPointerException - 如果此实例是使用无数据创建的
    • computeCorrelationMatrix

      public RealMatrix computeCorrelationMatrix(RealMatrix matrix)
      计算输入矩阵的列的相关系数矩阵,使用correlation(double[], double[])。如果矩阵不具有至少两列和两行,则抛出MathIllegalArgumentException。如果其中一个相关变量的方差为零,则成对相关性设置为NaN。
      参数:
      matrix - 包含要进行相关性计算的变量的列的矩阵
      返回:
      相关系数矩阵
      抛出:
      MathIllegalArgumentException - 如果矩阵不包含足够的数据
      另请参阅:
    • computeCorrelationMatrix

      public RealMatrix computeCorrelationMatrix(double[][] data)
      计算输入矩形数组的列的相关矩阵。数组的列代表要进行相关性计算的变量值。如果矩阵不具有至少两列两行,或者数组不是矩形的,则抛出MathIllegalArgumentException异常。如果相关变量中有一个方差为零,则成对相关性设置为NaN。
      参数:
      data - 包含要进行相关性计算的变量的矩阵
      返回:
      相关矩阵
      抛出:
      MathIllegalArgumentException - 如果数组不包含足够的数据
      另请参阅:
    • correlation

      public double correlation(double[] xArray, double[] yArray)
      计算两个数组之间的Pearson积差相关系数。

      如果数组长度不相等或它们的公共长度小于2,则抛出MathIllegalArgumentException异常。如果其中一个数组的方差为零(即,其中一个数组不包含至少两个不同的值),则返回NaN

      参数:
      xArray - 第一个数据数组
      yArray - 第二个数据数组
      返回:
      返回两个数组的Pearson相关系数
      抛出:
      MathIllegalArgumentException - 如果数组长度不匹配
      MathIllegalArgumentException - 如果数据不足
    • covarianceToCorrelation

      public RealMatrix covarianceToCorrelation(RealMatrix covarianceMatrix)
      从协方差矩阵派生相关矩阵。

      使用公式
      r(X,Y) = cov(X,Y)/s(X)s(Y) 其中 r(·,·) 是相关系数,s(·) 表示标准差。

      参数:
      covarianceMatrix - 协方差矩阵
      返回:
      相关矩阵