Ofereço ajuda em Java, C/C++, Python, C#, LISP, AutoLisp, AutoCAD
+55 (062) 98553-6711
Ofereço ajuda em PHP, Python, C#, JavaScript, Laravel, Google Ads e SEO
+55 (062) 98243-1195

Você está aqui: Java ::: Dicas & Truques ::: Matemática e Estatística

Regressão linear - Como calcular o coeficiente de correlação linear de Pearson em Java - Java para Machine Learning

Quantidade de visualizações: 52 vezes


No estudo de Machine Learning, uma das primeiras ferramentas que aprendemos é Regressão Linear. E, para o bom entendimento da regressão linear, temos que aprender sobre o coeficiente de correlação linear, mais especificamente o coeficiente de correlação linear de Pearson.

A fórmula do coeficiente de correlação linear de Pearson é:

\[r_\text{xy} = \frac{n \sum x_i y_i - \sum x_i \sum y_i}{\sqrt{n \sum {x_i}^2 - \left(\sum {x_i}\right)^2} \cdot \sqrt{n \sum {y_i}^2 - \left(\sum {y_i}\right)^2}} \]

Onde:

x e y são os conjuntos de valores cuja correlação queremos testar.

É claro que encontraremos algumas variações desta fórmula na internet e também em livros de estatística, mas o resultado é sempre o mesmo.

A correlação de Pearson é uma técnica estatística para medir se duas variáveis estão linearmente relacionadas. Essa técnica também pode ser chamada de r de Pearson, correlação produto-momento de Pearson ou, mais coloquialmente, de correlação de Pearson.

O r de Pearson é uma métrica que expressa a relação linear entre variáveis por meio de um número que vai de -1 a +1. Isto é, quanto mais próximo dos extremos (-1 ou +1), maior é a força da correlação. Por outro lado, valores próximos de zero indicam que a correlação é fraca.

O sinal da correlação, por sua vez, indica a direção da relação entre variáveis. Se a correlação é positiva, então o aumento em uma variável implica o aumento na outra variável. Por outro lado, se a correlação é negativa, então o aumento em uma variável implica o decréscimo na outra variável.

Veja agora o código Java completo no qual calculamps o coeficiente de correlação linear de Pearson a partir de valores x e y, dispostos em dois vetores, ou seja, dois arrays unidimensionais:

----------------------------------------------------------------------
Precisa de ajuda? Chama no WhatsApp +55 (62) 98553-6711 (Osmar)

Este código foi útil? Paga um cafezinho pra mim :-(
PIX: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

package estudos;

public class Estudos {
  public static void main(String[] args) {
    // vamos criar os vetores com os valores x e y
    double x[] = {13, 32, 47, 54, 69, 73};
    double y[] = {208, 184, 145, 14, 65, 32};
    // as variáveis para os somatórios
    double soma_x = 0, soma_y = 0, soma_x_quadrado = 0;
    double soma_y_quadrado = 0, soma_x_vezes_y = 0;
    
    // vamos percorrer os vetores e efetuar as somas
    for (int i = 0; i < x.length; i++) {
      // primeiro o somatório de x
      soma_x = soma_x + x[i];
      // agora o somatório de y
      soma_y = soma_y + y[i];
      // então o somatório de x^2
      soma_x_quadrado = soma_x_quadrado + Math.pow(x[i], 2);
      // e o somatório de y^2
      soma_y_quadrado = soma_y_quadrado + Math.pow(y[i], 2);
      // e finalmente o somatório de x*y 
      soma_x_vezes_y = soma_x_vezes_y + x[i] * y[i];
    }
    
    // vamos obter a quantidade de valores na observação
    int n = x.length;
    
    // e finalmente calculamos o coeficiente de correlação
    // linear
    double r_xy = ((n * soma_x_vezes_y) - (soma_x * soma_y)) /
      (Math.sqrt((n * soma_x_quadrado) - Math.pow(soma_x, 2)) *
      Math.sqrt((n * soma_y_quadrado) - Math.pow(soma_y, 2)));
    
    // e mostramos o resultado
    System.out.println("O coeficiente de correlação é: " +
      r_xy);
  }
}

Ao executar este código Java nós teremos o seguinte resultado:

O coeficiente de correlação é: -0.8713675107044452

Link para compartilhar na Internet ou com seus amigos:

Desafios, Exercícios e Algoritmos Resolvidos de Java

Veja mais Dicas e truques de Java

Dicas e truques de outras linguagens

E-Books em PDF

E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 26 usuários muito felizes estudando em nosso site.