使用php写一个皮尔逊相关系数计算算法
时间: 2024-05-03 12:17:35 浏览: 166
皮尔逊相关系数是一种衡量两个变量之间线性相关程度的方法。其计算公式为:
$r_{xy} = \frac{\sum_{i=1}^{n}(x_i - \overline{x})(y_i - \overline{y})}{\sqrt{\sum_{i=1}^{n}(x_i - \overline{x})^2}\sqrt{\sum_{i=1}^{n}(y_i - \overline{y})^2}}$
其中,$x_i$ 和 $y_i$ 分别是两个变量的第 $i$ 个观测值,$\overline{x}$ 和 $\overline{y}$ 分别是两个变量的样本均值,$n$ 是样本大小。
下面是 PHP 代码实现:
```
function pearson_correlation($x, $y) {
$n = count($x);
$mean_x = array_sum($x) / $n;
$mean_y = array_sum($y) / $n;
$numerator = 0;
$denominator_x = 0;
$denominator_y = 0;
for ($i = 0; $i < $n; $i++) {
$numerator += ($x[$i] - $mean_x) * ($y[$i] - $mean_y);
$denominator_x += pow($x[$i] - $mean_x, 2);
$denominator_y += pow($y[$i] - $mean_y, 2);
}
$denominator = sqrt($denominator_x) * sqrt($denominator_y);
if ($denominator == 0) {
return 0;
} else {
return $numerator / $denominator;
}
}
```
这个函数接受两个数组 $x$ 和 $y$,分别表示两个变量的观测值序列。它返回这两个变量的皮尔逊相关系数。
阅读全文