皮尔逊相关系数(Pearson Correlation Coefficient)是用于度量两个变量之间线性关系强度和方向的统计量。其值域在-1到1之间,其中:
皮尔逊相关系数的计算公式如下:
在Java中实现皮尔逊相关系数的计算,你需要首先确保你有两个等长的数值数组或列表,然后按照以下步骤进行:
以下是一个简单的Java方法,用于计算两个double数组之间的皮尔逊相关系数:
public class PearsonCorrelation {
/**
* 计算两个数组的皮尔逊相关系数
*
* @param x 第一个数组
* @param y 第二个数组
* @return 皮尔逊相关系数
* @throws IllegalArgumentException 如果数组长度不等
*/
public static double calculatePearsonCorrelation(double[] x, double[] y) {
if (x.length != y.length) {
throw new IllegalArgumentException("数组长度必须相等");
}
int n = x.length;
// 计算x和y的均值
double meanX = 0.0, meanY = 0.0;
for (int i = 0; i < n; i++) {
meanX += x[i];
meanY += y[i];
}
meanX /= n;
meanY /= n;
// 计算偏差的乘积之和以及偏差的平方和
double sumXY = 0.0, sumX2 = 0.0, sumY2 = 0.0;
for (int i = 0; i < n; i++) {
double diffX = x[i] - meanX;
double diffY = y[i] - meanY;
sumXY += diffX * diffY;
sumX2 += diffX * diffX;
sumY2 += diffY * diffY;
}
// 计算皮尔逊相关系数
double denom = Math.sqrt(sumX2 * sumY2);
if (denom == 0) {
return 0; // 如果分母为0,则没有相关性
}
return sumXY / denom;
}
public static void main(String[] args) {
double[] x = {1, 2, 3, 4, 5};
double[] y = {2, 3, 4, 5, 6};
double correlation = calculatePearsonCorrelation(x, y);
System.out.println("皮尔逊相关系数: " + correlation);
}
}
在上面的示例中,我们定义了一个名为PearsonCorrelation
的类,并在其中实现了一个名为calculatePearsonCorrelation
的静态方法,用于计算两个double数组之间的皮尔逊相关系数。在main
方法中,我们创建了两个示例数组并调用了该方法来计算并打印皮尔逊相关系数。