quinta-feira, 13 de fevereiro de 2014

PCA PARA INICIANTES - revisitado


Vetores principais, valores principais e redução de dimensões
  
Análise de componentes principais é um dos métodos estatísticos multivariados mais antigos. Teremos uma noção bem geral da ACP (ou PCA, Principal Component Analysis), descrevendo os autovalores e autovetores e mostrando como se pode reduzir as dimensões dos dados utilizando essa técnica. Apesar da matemática ser um pouco complicada, só precisaremos ter uma ideia geral do que acontece para sermos capazes de usar essa ferramenta de maneira efetiva.

Vamos utilizar, na medida do possível, a menor quantidade de matemática e muitas figuras.

O que é Análise de Componentes Principais?

Em primeiro lugar, o nome já é uma boa pista. Ela faz o que se propõe, ou seja, encontra os componentes principais dos dados.

É geralmente útil medir dados em termos de seus componentes principais, ao invés de utilizar gráficos multidimensionais (imagine 10 dimensões!). Então, o que são componentes principais? Eles são as estruturas subjacentes básicas dos dados. São as direções nas quais há a maior variância, as direções onde os dados estão mais dispersos. Isso é fácil de explicar através de um exemplo. Na figura abaixo há alguns triângulos espalhados de forma oval:

Imagine que os triângulos são pontos de um conjunto de dados. Para achar a direção onde há maior variância, deve-se encontrar a linha onde os dados estão mais dispersos quando são projetados nela. Uma linha vertical com os dados projetados pode ser traçada da seguinte forma:


Há alguma dispersão, mas notamos que alguns triângulos possuem muito pouca distância (variância) da linha, enquanto outros estão muito distantes. Nesse caso, não há muita variância, o que sugere que esse não é o componente principal.

Vamos, agora, projetar uma linha horizontal nesses mesmos dados.



Nesse caso, podemos notar que os dados estão muito mais dispersos em relação à linha horizontal e, portanto, há maior variância sendo representada. Na verdade, nesse caso, não há outra linha que se possa traçar que representará maior variância do que a linha horizontal.

Afortunadamente, podemos utilizar a matemática para encontrar o componente principal ao invés de termos que ficar desenhando linhas para encontrá-lo. E é aqui que os autovetores e autovalores entram em cena.

Autovetores e autovalores

Quando temos um conjunto de dados, como os triângulos do exemplo, podemos desconstruir esse conjunto em autovetores e autovalores. Autovetores e autovalores existem aos pares: cada autovetor tem um autovalor correspondente. Um autovetor é uma direção. No exemplo acima, o autovetor é uma direção da linha (vertical, horizontal, 45 graus, etc.). Um autovalor é um número que nos diz quanta variância há nos dados naquela direção. No exemplo acima, o autovalor é um número que diz o quanto os dados estão espalhados na linha traçada. O autovetor com o maior autovalor é, portanto, o componente principal.

Ok, então, mesmo que eu pudesse, no exemplo acima, desenhar minha linha em qualquer direção, acontece que não há muitos autovetores/autovalores em um conjunto de dados. Na verdade, a quantidade de autovetores/autovalores que existem é igual ao número de dimensões que o conjunto de dados possui. Digamos que eu esteja medindo idade e horas na internet em um grupo de pessoas. Há duas variáveis, ou seja, é um conjunto de dados com duas dimensões. Portanto, há dois autovetores/autovalores. Se estou medindo idade, horas na internet e horas no celular, há três variáveis, um conjunto de dados de 3 dimensões (3-D), então 3 autovetores e autovalores. O motivo para isso é que autovetores colocam os dados em um novo conjunto de dimensões e essas novas dimensões devem ser iguais ao número original de dimensões. Isso parece complicado, mas, novamente, um exemplo deve tornar claro.

Abaixo, vemos um gráfico com o conjunto oval de triângulos:



Nesse momento, os dados ovais estão em um eixo x-y. O eixo “x” pode ser idade e o “y” horas na internet. Essas são as duas dimensões nas quais os dados estão sendo medidos. Agora, lembre-se que o componente principal desse conjunto oval de dados é uma linha que o divide pelo maior comprimento:


Acontece que o outro autovetor (lembre-se que há apenas dois deles, pois estamos olhando para um conjunto 2-D) é perpendicular ao componente principal. Como dissemos, os autovetores devem ser capazes de abranger toda área x-y. Para fazer isso (mais eficientemente), as duas direções devem ser ortogonais (ou seja, 90 graus). Por isso que os eixos “x” e “y” são ortogonais. Seria realmente estranho se o eixo “y” estivesse a 45 graus do eixo “x”. Então, o segundo autovetor apareceria assim: 



Os autovetores nos deram um eixo muito mais útil para colocar os dados. Agora, podemos reorganizar os dados nessas novas dimensões mais ou menos dessa forma:


Note que nada foi feito aos próprios dados. Estamos apenas olhando para eles de outra forma. Então, o uso de autovetores nos leva de um conjunto de eixos para outro. Esses eixos são muito mais intuitivos em relação à forma dos dados agora. Nessas direções é onde estão as maiores variações e, por consequência, é onde há maior informação (pense de forma inversa, se não houvesse variação nos dados [se tudo fosse igual a 1], então, não haveria informação. Nesse cenário, o autovalor para aquela dimensão seria 0 (zero), pois não haveria variação).

Mas o que esses autovetores realmente representam? Os eixos antigos eram bem definidos (idade e horas na internet, ou quaisquer duas variáveis que foram explicitamente medidas), enquanto os novos eixos não o são. Aqui é onde precisamos pensar. Há, geralmente, uma boa razão para que esses eixos representem melhor os dados, mas a matemática não irá lhe dizer, você terá que pensar a respeito (aqui, entra a parte do significado, ou seja, o objetivo maior da análise relacionado com o objetivo e a hipótese de seu estudo).

Como uma ACP e os autovetores nos ajudam de verdade na análise de dados? Bem, há alguns usos, mas o maior deles é a redução de dimensões.

Redução de dimensões

ACP pode ser utilizada para reduzir as dimensões de um conjunto de dados. A redução de dimensões é análoga ao reducionismo filosófico. Reduz os dados em seus componentes básicos, deixando fora qualquer parte desnecessária.

Vamos dizer que tenhamos medido três variáveis: idade, horas na internet e horas ao celular. Há 3 variáveis, então é um conjunto de dados 3-D. Três dimensões são representadas por um gráfico “x”, “y” e “z”. Ele mede largura, profundidade e altura (como as dimensões do mundo real). Agora, imagine que os dados tenham uma forma oval, como acima, mas que essa forma oval está em um plano, ou seja, todos os pontos de dados estão posicionados em duas dimensões (como em um pedaço de papel) dentro desse gráfico 3-D (tendo largura e profundidade, mas não altura), assim:


Quando encontramos os três autovetores e autovalores do conjunto de dados (lembre-se, um problema 3-D = 3 autovetores), dois dos autovetores terão grandes autovalores e um deles terá um autovalor de zero. Os primeiros dois autovetores mostrarão a largura e a profundidade dos dados, mas pelo fato de não haver altura nos dados (eles estão em um pedaço de papel), o terceiro autovalor será zero. Na figura abaixo, ev1 é o primeiro autovetor (aquele com o maior valor, o componente principal), ev2 é o segundo vetor (que não tem um autovalor nulo) e ev3 é o terceiro autovetor, que tem um autovalor de zero.



Podemos, agora, rearranjar nossos eixos para estarem ao longo dos autovetores, ao invés de idade, horas na internet e horas ao celular. Entretanto, sabemos que ev3, o terceiro autovetor, é inútil. Então, ao invés de representar os dados em três dimensões, podemos nos livrar da direção inútil e apenas representá-los em duas dimensões, como antes: 


Isso é redução de dimensões. Reduzimos um problema 3-D para um problema 2-D, nos livrando de uma dimensão. A redução de dimensões ajuda a simplificar os dados e torna a visualização mais fácil.

Note que podemos reduzir dimensões mesmo que o autovalor não seja zero. Imagine o exemplo novamente, só que ao invés da forma oval dos dados ser em um plano 2-D, há uma pequena quantidade de altura neles. Ainda haverá 3 autovetores, mas dessa vez todos serão diferentes de zero. Os valores serão algo como 10, 8 e 0,1. Os autovetores correspondendo a 10 e 8 são as dimensões onde há muito mais informação; o autovetor correspondendo a 0,1 não terá muita informação. Então, podemos descartar o terceiro autovetor novamente de forma a tornar os dados mais simples.

ACP (ou PCA, como mais comumente conhecida) é uma técnica de análise muito utilizada na ecologia. Geralmente, ela é utilizada para reduzir as dimensões de grandes conjuntos de dados de variáveis explicativas em duas ou três dimensões que traduzem a maior parte da variância dos dados. A posteriori, esses novos dois ou três vetores podem ser utilizados como novas variáveis explicativas em análises de regressão ou canônicas. Em geral, essa técnica terá melhores resultados se utilizada em matrizes de dados altamente correlacionados (multicolinearidade alta). Por quê? Em se tratando de dados com alta correlação, espera-se que a covariância entre eles seja grande e, portanto, a variância que será explicada nos primeiros componentes (aqueles que extraem a maior variância) será maior, de modo que os dados serão reduzidos a poucos, em geral dois, componentes. Adicionalmente, a multicolinearidade é resolvida, pois os componentes principais (autovetores) resultantes são ortogonais!

É importante observar que esse tipo de ordenação não é ideal para investigar matrizes de abundâncias de espécies, pois ela está baseada especificamente em distâncias Euclidianas. Esse tipo de distância é limitada para descrever diferenças entre comunidades. Porém, há algumas transformações, que podem ser feitas na matriz de abundâncias, que a tornarão adequada para o uso com PCA. Essa observação é especialmente relevante quando se pensa em usar RDA (Análise de Redundância), já que um dos passos dessa análise envolve a realização de uma PCA.