C#写一个相关系数的算法
在C#中编写一个计算相关系数的算法可以使用Pearson相关系数公式。相关系数是用于衡量两个变量之间线性关系的统计量,取值范围为[-1, 1]。值为1表示完全正相关,-1表示完全负相关,0表示没有线性关系。
相关系数的公式
Pearson相关系数 的计算公式如下:
其中:
- 是数据点的数量
- 和 分别是两个变量的数据集
C#实现
以下是一个完整的C#代码示例,计算两个数据集之间的Pearson相关系数:
csharpusing System;
class Program
{
static void Main(string[] args)
{
double[] x = { 1, 2, 3, 4, 5 };
double[] y = { 2, 3, 4, 5, 6 };
double correlation = CalculatePearsonCorrelation(x, y);
Console.WriteLine("Pearson Correlation Coefficient: " + correlation);
}
static double CalculatePearsonCorrelation(double[] x, double[] y)
{
if (x.Length != y.Length)
throw new ArgumentException("The arrays must be of the same length.");
int n = x.Length;
double sumX = 0, sumY = 0, sumXY = 0, sumXSquare = 0, sumYSquare = 0;
for (int i = 0; i < n; i++)
{
sumX += x[i];
sumY += y[i];
sumXY += x[i] * y[i];
sumXSquare += x[i] * x[i];
sumYSquare += y[i] * y[i];
}
double numerator = n * sumXY - sumX * sumY;
double denominator = Math.Sqrt((n * sumXSquare - sumX * sumX) * (n * sumYSquare - sumY * sumY));
if (denominator == 0) return 0;
return numerator / denominator;
}
}
代码说明
- 输入数据:两个数组
x
和y
,表示两个变量的数据集。 - 检查数据长度:确保两个数组的长度相同。
- 计算所需的和:计算所有需要的和,包括 , , , ,和 。 4