Thanks for your response. Below is a sub to estimate the Pearson correlation coefficient estimation.
sub correlate($$) {
# $_[0] = ref to x array
# $_[1] = ref to y array
my $x = $_[0];
my $y = $_[1];
if (scalar(@$x) != scalar(@$y)) {
return;
}
my $s_xy = 0;
my $s_xx = 0;
my $s_yy = 0;
my $s_x = 0;
my $s_y = 0;
my $n = scalar(@$x);
foreach (my $i = 0; $i < scalar(@$x); $i++) {
$s_xx += $$x[$i] * $$x[$i];
$s_xy += $$x[$i] * $$y[$i];
$s_yy += $$y[$i] * $$y[$i];
$s_x += $$x[$i];
$s_y += $$y[$i];
}
my $S_xy = ($n * $s_xy) - ($s_x * $s_y);
my $S_xx = ($n * $s_xx) - ($s_x * $s_x);
my $S_yy = ($n * $s_yy) - ($s_y * $s_y);
my $denm = ($S_xx**0.5) * ($S_yy**0.5);
my $p = $S_xy / $denm;
return $p;
}
|