Dans cette étape, nous allons étendre notre programme précédent pour calculer les sommes nécessaires au calcul du coefficient de corrélation de Pearson. Nous allons modifier le fichier correlation_input.c pour inclure les calculs de la formule de corrélation.
Ouvrez le fichier précédent :
cd ~/project
nano correlation_input.c
Mettez à jour le code avec la mise en œuvre suivante :
#include <stdio.h>
#include <math.h>
#define MAX_POINTS 100
double calculatePearsonCorrelation(double x[], double y[], int n) {
double sum_x = 0, sum_y = 0, sum_xy = 0;
double sum_x_squared = 0, sum_y_squared = 0;
// Calcul des sommes nécessaires
for (int i = 0; i < n; i++) {
sum_x += x[i];
sum_y += y[i];
sum_xy += x[i] * y[i];
sum_x_squared += x[i] * x[i];
sum_y_squared += y[i] * y[i];
}
// Formule du coefficient de corrélation de Pearson
double numerator = n * sum_xy - sum_x * sum_y;
double denominator = sqrt((n * sum_x_squared - sum_x * sum_x) *
(n * sum_y_squared - sum_y * sum_y));
return numerator / denominator;
}
int main() {
double x[MAX_POINTS], y[MAX_POINTS];
int n, i;
printf("Entrez le nombre de points de données (max %d) : ", MAX_POINTS);
scanf("%d", &n);
printf("Entrez les coordonnées x et y :\n");
for (i = 0; i < n; i++) {
printf("Point %d (x y) : ", i + 1);
scanf("%lf %lf", &x[i], &y[i]);
}
double correlation = calculatePearsonCorrelation(x, y, n);
printf("\nPoints de données saisis :\n");
for (i = 0; i < n; i++) {
printf("Point %d : (%.2f, %.2f)\n", i + 1, x[i], y[i]);
}
printf("\nCoefficient de corrélation de Pearson : %.4f\n", correlation);
return 0;
}
Compilez le programme avec la bibliothèque mathématique :
gcc -o correlation_input correlation_input.c -lm
Exécutez le programme avec des données d'exemple :
./correlation_input
Sortie d'exemple :
Entrez le nombre de points de données (max 100) : 5
Entrez les coordonnées x et y :
Point 1 (x y) : 1 2
Point 2 (x y) : 2 4
Point 3 (x y) : 3 5
Point 4 (x y) : 4 4
Point 5 (x y) : 5 5
Points de données saisis :
Point 1 : (1.00, 2.00)
Point 2 : (2.00, 4.00)
Point 3 : (3.00, 5.00)
Point 4 : (4.00, 4.00)
Point 5 : (5.00, 5.00)
Coefficient de corrélation de Pearson : 0.8528
Points clés concernant le calcul de la corrélation de Pearson :
- Nous calculons les sommes nécessaires : x, y, xy, x², y²
- Nous appliquons la formule du coefficient de corrélation de Pearson
- Nous utilisons sqrt() de math.h pour le calcul
- Nous retournons le coefficient de corrélation compris entre -1 et 1