Cálculo de Sumas y Uso de la Fórmula para la Correlación
En este paso, ampliaremos nuestro programa anterior para calcular las sumas necesarias para el cálculo del coeficiente de correlación de Pearson. Modificaremos el archivo correlation_input.c para incluir los cálculos de la fórmula de correlación.
Abra el archivo anterior:
cd ~/project
nano correlation_input.c
Actualice el código con la siguiente implementación:
#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;
// Calcular las sumas necesarias
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];
}
// Fórmula del coeficiente de correlación 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("Ingrese el número de puntos de datos (máximo %d): ", MAX_POINTS);
scanf("%d", &n);
printf("Ingrese las coordenadas x e y:\n");
for (i = 0; i < n; i++) {
printf("Punto %d (x y): ", i + 1);
scanf("%lf %lf", &x[i], &y[i]);
}
double correlation = calculatePearsonCorrelation(x, y, n);
printf("\nPuntos de Datos Ingresados:\n");
for (i = 0; i < n; i++) {
printf("Punto %d: (%.2f, %.2f)\n", i + 1, x[i], y[i]);
}
printf("\nCoeficiente de Correlación de Pearson: %.4f\n", correlation);
return 0;
}
Compile el programa con la biblioteca matemática:
gcc -o correlation_input correlation_input.c -lm
Ejecute el programa con datos de muestra:
./correlation_input
Salida de ejemplo:
Ingrese el número de puntos de datos (máximo 100): 5
Ingrese las coordenadas x e y:
Punto 1 (x y): 1 2
Punto 2 (x y): 2 4
Punto 3 (x y): 3 5
Punto 4 (x y): 4 4
Punto 5 (x y): 5 5
Puntos de Datos Ingresados:
Punto 1: (1.00, 2.00)
Punto 2: (2.00, 4.00)
Punto 3: (3.00, 5.00)
Punto 4: (4.00, 4.00)
Punto 5: (5.00, 5.00)
Coeficiente de Correlación de Pearson: 0.8528
Puntos clave sobre el cálculo de la correlación de Pearson:
- Calculamos las sumas necesarias: x, y, xy, x², y².
- Aplicamos la fórmula del coeficiente de correlación de Pearson.
- Usamos sqrt() de math.h para el cálculo.
- Devolvemos el coeficiente de correlación entre -1 y 1.