Calcular Somas e Utilizar a Fórmula para Correlação
Nesta etapa, estenderemos o nosso programa anterior para calcular as somas necessárias para o cálculo do coeficiente de correlação de Pearson. Modificaremos o ficheiro correlation_input.c para incluir os cálculos para a fórmula de correlação.
Abra o ficheiro anterior:
cd ~/project
nano correlation_input.c
Atualize o código com a seguinte implementação:
#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 as somas necessárias
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 do coeficiente de correlação 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("Introduza o número de pontos de dados (máximo %d): ", MAX_POINTS);
scanf("%d", &n);
printf("Introduza as coordenadas x e y:\n");
for (i = 0; i < n; i++) {
printf("Ponto %d (x y): ", i + 1);
scanf("%lf %lf", &x[i], &y[i]);
}
double correlation = calculatePearsonCorrelation(x, y, n);
printf("\nPontos de Dados Introduzidos:\n");
for (i = 0; i < n; i++) {
printf("Ponto %d: (%.2f, %.2f)\n", i + 1, x[i], y[i]);
}
printf("\nCoeficiente de Correlação de Pearson: %.4f\n", correlation);
return 0;
}
Compile o programa com a biblioteca matemática:
gcc -o correlation_input correlation_input.c -lm
Execute o programa com dados de exemplo:
./correlation_input
Exemplo de saída:
Introduza o número de pontos de dados (máximo 100): 5
Introduza as coordenadas x e y:
Ponto 1 (x y): 1 2
Ponto 2 (x y): 2 4
Ponto 3 (x y): 3 5
Ponto 4 (x y): 4 4
Ponto 5 (x y): 5 5
Pontos de Dados Introduzidos:
Ponto 1: (1.00, 2.00)
Ponto 2: (2.00, 4.00)
Ponto 3: (3.00, 5.00)
Ponto 4: (4.00, 4.00)
Ponto 5: (5.00, 5.00)
Coeficiente de Correlação de Pearson: 0.8528
Pontos chave sobre o cálculo da correlação de Pearson:
- Calculamos as somas necessárias: x, y, xy, x², y²
- Aplicamos a fórmula do coeficiente de correlação de Pearson
- Usamos sqrt() de math.h para o cálculo
- Devolve o coeficiente de correlação entre -1 e 1