2008-09-07

Regressão linear

Poliedro Já faz algum tempo que escrevi um artigo no Kodumaro sobre regressão linear.

O Eduardo Willians reclamou que não foi possível entender o problema – com razão, pois realmente não entrei em detalhes sobre regressão linear em si, já que o foco do artigo era a implementação do algoritmo.

Daí resolvi tentar explicar melhor o que é regressão linear aqui.

Em estatística, quando temos um grupo de dados cartesianos – por exemplo, o consumo de CPU ao longo de um período de tempo –, há ferramentas para se obter os dados que faltam, sejam dentro do mesmo período ou fora.

As técnicas para se obter dados intermediários que não constam no conjunto de dados são conhecidas por interpolação e as técnicas para se obter dados fora do período considerado são chamadas extrapolação.

Os algoritmos mais comuns de interpolação são polinómio de Newton, polinómio de Lagrange e método de Vandermonde.

Os algoritmos usados para extrapolação são as regressões lineares, que consistem em identificar um padrão evolutivo linear dos dados, ou seja representados por uma reta – função do primeiro grau. Essa função do primeiro grau é chamada de regressão simples.

É claro que eventualmente os dados podem não evoluir de forma linear, mas mesmo nesses casos usamos outras técnicas de regressão linear onde um dos eixos é achatado por meio de potenciação, logaritmização ou exponenciação, então temos regressão por potência, regressão logarítmica e regressão exponencial.

No entanto esses algoritmos também são reduzidos à regressão simples – vamos nos limitar a ela.

Resumindo o que foi dito até aqui, regressão linear consiste em representar um conjunto de dados cartesianos (xi, yi) da seguinte forma:
yi = a + bxi + Ei

Onde:

  • yi – ordenada, por ex., percentagem de uso da CPU;
  • xi – abscissa, por ex., data/hora da coleta de percentagem;
  • α – interceção, valor calculado;
  • β – inclinação, valor calculado;
  • εi – erro ou desvio, valor a ser aplicada à ordenada estimada para corrigi-la ao valor correto.


Ou seja, o desvio é a diferença entre a ordenada estimada (calculada) e o valor real:
Ei = yi -(a + bxi)

A ideia por traz da regressão linear é bastante simples: encontrar os valores para α e β tais que o somatório dos quadrados dos desvios para os valores conhecidos seja o menor possível.

A forma mais didática para se calcular isso é usando o produto de matrizes, mais especificamente, sistema subdeterminado de equações normais. Nesse sistema, criamos uma matriz normal 2×2, um vetor de coeficientes de ajuste como (α β) e a matriz direita padrão.

No final das contas temos isso:
--

Na Wikipédia, no subtópico Cálculo dos fatores α e β estão os cálculos.

Obviamente, usando a regressão linear para extrapolação, só é possível estimar valores, não os prever realmente.

[]'s
Cacilhas, La Batalema