类 PearsonsCorrelation
接受RealMatrix
或double[][]
参数的构造函数生成相关系数矩阵。假定输入矩阵的列代表变量值。相关系数由以下公式给出:
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实例。PearsonsCorrelation
(double[][] data) 从一个矩形数组创建一个PearsonsCorrelation,其列代表要进行相关性计算的变量的值。PearsonsCorrelation
(RealMatrix matrix) 从一个RealMatrix创建一个PearsonsCorrelation,其列代表要进行相关性计算的变量。PearsonsCorrelation
(RealMatrix covarianceMatrix, int numberOfObservations) 从一个协方差矩阵创建一个PearsonsCorrelation。PearsonsCorrelation
(Covariance covariance) 从一个Covariance
创建一个PearsonsCorrelation。 -
方法概要
修饰符和类型方法说明computeCorrelationMatrix
(double[][] data) 计算输入矩形数组的列的相关系数矩阵。computeCorrelationMatrix
(RealMatrix matrix) 计算输入矩阵的列的相关系数矩阵,使用correlation(double[], double[])
。double
correlation
(double[] xArray, double[] yArray) 计算两个数组之间的Pearson积矩相关系数。covarianceToCorrelation
(RealMatrix covarianceMatrix) 从协方差矩阵派生相关系数矩阵。返回相关系数矩阵。返回与(双侧)零相关系数假设相对应的p值矩阵。返回与相关系数估计中的标准误差相关的矩阵。getCorrelationStandardErrors().getEntry(i,j)
是与getCorrelationMatrix.getEntry(i,j)
相关的标准误差。
-
构造器详细资料
-
PearsonsCorrelation
public PearsonsCorrelation()创建一个不带数据的PearsonsCorrelation实例。 -
PearsonsCorrelation
public PearsonsCorrelation(double[][] data) 从一个矩形数组创建一个PearsonsCorrelation,其列代表要进行相关性计算的变量的值。如果输入数组不具有至少两列和两行,则抛出MathIllegalArgumentException。如果其中一个相关变量的方差为零,则成对相关性设置为NaN。- 参数:
-
data
- 包含代表变量的列的矩形数组 - 抛出:
-
MathIllegalArgumentException
- 如果输入数据数组不是至少具有两行和两列的矩形数组。 - 另请参阅:
-
PearsonsCorrelation
从一个RealMatrix创建一个PearsonsCorrelation,其列代表要进行相关性计算的变量。如果矩阵不具有至少两列和两行,则抛出MathIllegalArgumentException。如果其中一个相关变量的方差为零,则成对相关性设置为NaN。- 参数:
-
matrix
- 包含要进行相关性计算的变量的列的矩阵 - 抛出:
-
MathIllegalArgumentException
- 如果矩阵不包含足够的数据 - 另请参阅:
-
PearsonsCorrelation
从一个Covariance
创建一个PearsonsCorrelation。通过缩放Covariance的协方差矩阵来计算相关系数矩阵。Covariance实例必须是从包含变量值的数据矩阵创建的。- 参数:
-
covariance
- Covariance实例
-
PearsonsCorrelation
从一个协方差矩阵创建一个PearsonsCorrelation。通过缩放协方差矩阵来计算相关系数矩阵。- 参数:
-
covarianceMatrix
- 协方差矩阵 -
numberOfObservations
- 用于计算协方差矩阵的数据集中的观测次数
-
-
方法详细资料
-
getCorrelationMatrix
返回相关系数矩阵。如果使用无参数构造函数创建此实例,则此方法将返回null,即使在激活之前调用了
computeCorrelationMatrix(double[][])
。- 返回:
- 相关系数矩阵
-
getCorrelationStandardErrors
返回与相关系数矩阵中估计值相关的标准误差矩阵。getCorrelationStandardErrors().getEntry(i,j)
是与getCorrelationMatrix.getEntry(i,j)
相关的标准误差。用于计算标准误差的公式为
SEr = ((1 - r2) / (n - 2))1/2
,其中r
是估计的相关系数,n
是源数据集中的观测次数。要使用此方法,必须使用提供输入矩阵的构造函数之一来创建此实例。
- 返回:
- 相关标准误差矩阵
- 抛出:
-
NullPointerException
- 如果此实例是使用无数据创建的
-
getCorrelationPValues
返回与(双侧)零相关系数假设相对应的p值矩阵。getCorrelationPValues().getEntry(i,j)
是随机变量分布为tn-2
,取绝对值大于或等于|r|((n - 2) / (1 - r2))1/2
的概率矩阵中的值有时被称为相应相关系数的显著性。
要使用此方法,必须使用提供输入矩阵的构造函数之一来创建此实例。
- 返回:
- p值矩阵
- 抛出:
-
MathIllegalStateException
- 如果估计概率时发生错误 -
NullPointerException
- 如果此实例是使用无数据创建的
-
computeCorrelationMatrix
计算输入矩阵的列的相关系数矩阵,使用correlation(double[], double[])
。如果矩阵不具有至少两列和两行,则抛出MathIllegalArgumentException。如果其中一个相关变量的方差为零,则成对相关性设置为NaN。- 参数:
-
matrix
- 包含要进行相关性计算的变量的列的矩阵 - 返回:
- 相关系数矩阵
- 抛出:
-
MathIllegalArgumentException
- 如果矩阵不包含足够的数据 - 另请参阅:
-
computeCorrelationMatrix
计算输入矩形数组的列的相关矩阵。数组的列代表要进行相关性计算的变量值。如果矩阵不具有至少两列两行,或者数组不是矩形的,则抛出MathIllegalArgumentException异常。如果相关变量中有一个方差为零,则成对相关性设置为NaN。- 参数:
-
data
- 包含要进行相关性计算的变量的矩阵 - 返回:
- 相关矩阵
- 抛出:
-
MathIllegalArgumentException
- 如果数组不包含足够的数据 - 另请参阅:
-
correlation
public double correlation(double[] xArray, double[] yArray) 计算两个数组之间的Pearson积差相关系数。如果数组长度不相等或它们的公共长度小于2,则抛出MathIllegalArgumentException异常。如果其中一个数组的方差为零(即,其中一个数组不包含至少两个不同的值),则返回
NaN
。- 参数:
-
xArray
- 第一个数据数组 -
yArray
- 第二个数据数组 - 返回:
- 返回两个数组的Pearson相关系数
- 抛出:
-
MathIllegalArgumentException
- 如果数组长度不匹配 -
MathIllegalArgumentException
- 如果数据不足
-
covarianceToCorrelation
从协方差矩阵派生相关矩阵。使用公式
r(X,Y) = cov(X,Y)/s(X)s(Y)
其中r(·,·)
是相关系数,s(·)
表示标准差。- 参数:
-
covarianceMatrix
- 协方差矩阵 - 返回:
- 相关矩阵
-