Trabalho 02 - PCA

Análise Multivariada 2021.2

Versão revisada em 16/11/2021.

Introdução

A PCA - Principal Components Analysis, ou Análise de Componentes Principais, é uma técnica de extração de atributos que visa a redução de dimensionalidade em conjuntos de dados. Para que essa redução seja realizada, algumas características dos atributos são consideradas, como por exemplo a forma como eles estão relacionados e a escala em que se distribuem.

A técnica faz com que variáveis que “expliquem” aproximadamente a mesma variação dos dados possam ser resumidas, através de combinações lineares, em uma única componente. Assim, cada uma dessas componentes é ordenada de forma decrescente com relação à proporção de variância explicada.

Grosso modo, quanto maior o número de componentes consideradas, maior será a proporção da variabilidade original que será capturada.

Análise Descritiva

Sobre o conjunto de dados

O conjunto de dados utilizado nesse trabalho é o USAirpollution, que fornece dados para o estudo da poluição do ar em cidades americanas. As variáveis são:

  • SO2: Quantidade de SO2 do ar em microgramas por metro cúbico (variável resposta).

  • temp: Temperatura média anual em Fahrenheit.

  • manu: Número de empresas de manufatura que empregam 20 ou mais trabalhadores.

  • popul: Tamanho da população (censo de 1970), em milhares.

  • wind: Velocidade média anual do vento em milhas por hora.

  • precip: Precipitação média anual em polegadas.

  • predays: Número médio de dias com precipitação por ano.

Observação: ao longo do trabalho, para não carregar a escrita, as variáveis foram referenciadas conforme seus nomes originais.

Para verificar algumas características do nosso conjunto de dados, iremos realizar uma análise descritiva e exploratória. Também iremos remover a variável resposta, pois nosso interesse é explicá-la através das variáveis explicativas, que serão o objeto da Análise de Componentes Principais.

Correlações

Uma das primeiras preocupações para a aplicação do método PCA diz respeito à forma como as variáveis estão correlacionadas. Vejamos uma matriz de correlação para os dados originais:

Em um primeiro momento, já é possível verificar uma alta correlação entre as variáveis popul (tamanho da população) e manu (número de empresas de manufatura com 20 ou mais funcionários), o que faz total sentido, já que cidades com população maior tendem a ser mais desenvolvidas industrialmente.

Como percebemos que popul e manu são altamente correlacionadas, podemos verificar de que forma a dispersão dessas variáveis se comporta:

A dispersão reforça o que vimos a respeito da correlação, pois é muito clara a presença de uma estrutura linear (nesse caso, uma reta).

Como veremos mais à frente, a correlação entre essas variáveis está ligada à contribuição que elas fornecem para cada componente.

Escala e variabilidade

Outro aspecto de grande importância é a escala em que cada variável se encontra, quando comparada com as demais, bem como sua variabilidade. O boxplot das variáveis pode nos dar uma melhor dimensão de como elas estão distribuidas:

Como podemos perceber, as variáveis manu e popul estão em escalas muito diferentes das demais, e com variabilidade muito maior. Isso já nos deixa claro que muito provavelmente precisaremos padronizar as variáveis e centrar cada uma em 0, para que o método PCA não seja prejudicado.

Por fim, vejamos um resumo de todas as variáveis do dataset:

      temp            manu            popul             wind       
 Min.   :43.50   Min.   :  35.0   Min.   :  71.0   Min.   : 6.000  
 1st Qu.:50.60   1st Qu.: 181.0   1st Qu.: 299.0   1st Qu.: 8.700  
 Median :54.60   Median : 347.0   Median : 515.0   Median : 9.300  
 Mean   :55.76   Mean   : 463.1   Mean   : 608.6   Mean   : 9.444  
 3rd Qu.:59.30   3rd Qu.: 462.0   3rd Qu.: 717.0   3rd Qu.:10.600  
 Max.   :75.50   Max.   :3344.0   Max.   :3369.0   Max.   :12.700  
     precip         predays     
 Min.   : 7.05   Min.   : 36.0  
 1st Qu.:30.96   1st Qu.:103.0  
 Median :38.74   Median :115.0  
 Mean   :36.77   Mean   :113.9  
 3rd Qu.:43.11   3rd Qu.:128.0  
 Max.   :59.80   Max.   :166.0  

Agora que conhecemos um pouco melhor as características do nosso conjunto de dados, podemos dar prosseguimento à aplicação do método PCA.

PCA

Nesta seção é realizada a Análise de Componentes Principais (PCA).

Para os cálculos realizados ao longo do método, nós assumimos que as variáveis devem estar centradas em uma média zero. Portanto, é necessário realizar esse passo antes de seguir adiante:

A Análise de Componentes Principais pode ser feita através dos autovetores e autovalores, ou então pela função prcomp, que utiliza o SVD. Aqui, optou-se pela utilização dessa função, visto que facilita a implementação do método.

Importância e variância das componentes

A princípio, não estamos padronizando as variáveis (parâmetro scale setado para FALSE). Vejamos um resumo da importância de cada componente:

Importance of components:
                            PC1       PC2      PC3      PC4     PC5   PC6
Standard deviation     798.9309 121.10575 26.07610 10.90258 3.55516 1.262
Proportion of Variance   0.9763   0.02243  0.00104  0.00018 0.00002 0.000
Cumulative Proportion    0.9763   0.99876  0.99980  0.99998 1.00000 1.000

Abaixo podemos visualizar a variância de cada uma das componentes, sem padronização:

A partir da importância das componentes e também do plot da variância, podemos perceber que há uma grande discrepância sendo causada pela diferença de escalas, como já vimos no boxplot da análise descritiva.

Isso nos sugere que o uso de padronização parece mais sensato para esse conjunto de dados. Assim, utiliza-se o parâmetro scale=TRUE para que a padronização seja efetuada.

Importance of components:
                         PC1   PC2    PC3    PC4    PC5     PC6
Standard deviation     1.482 1.225 1.1810 0.8719 0.3385 0.18560
Proportion of Variance 0.366 0.250 0.2324 0.1267 0.0191 0.00574
Cumulative Proportion  0.366 0.616 0.8485 0.9752 0.9943 1.00000

Como resultado, já podemos perceber valores de proporção da variância que fazem mais sentido do que sem a padronização. O desvio padrão das componentes também é bem menor com a correção de escalas.

Vejamos, novamente, a variância das componentes, agora com padronização:

Confirmando o resultado anterior, as variâncias possuem um comportamento diferente quando a escala é corrigida através da padronização.

Percentual de Variância Explicada

Através do Scree Plot, é possível visualizar qual o percentual da variância está sendo explicada por cada componente.

A primeira componente principal explica sozinha 36,6% da variabilidade total. Se olharmos para o valor cumulativo, podemos perceber que as três primeiras componentes principais já dão conta de explicar 84,8% da variabilidade total.

Como nosso objetivo é resumir os atributos utilizando de apenas três componentes principais, é importante levar em consideração que estaremos explicando/capturando apenas esse percentual da variabilidade original das features. Isso precisa ser levado em conta para o problema pois, caso não seja um percentual aceitável de explicabilidade, seria necessária a adição de mais componentes principais. No entanto, explicar mais de 80% da variabilidade total parece bastante razoável.

Biplot

Com o biplot, é possível verificar de que forma os dados se comportam com relação à contribuição das variáveis para cada componente (PC1 e PC2).

A primeira componente principal possui contribuição maior das variáveis manu e popul. Já a segunda componente principal é fortemente influenciada pelas variáveis precip e predays, que apresentam alta correlação.

Qualidade da representação

É importante verificar o quão bem as variáveis do conjunto de dados estão sendo representadas pelas componentes principais. Isso pode ser visto através do gráfico abaixo, que incorpora os valores de cos2 das variáveis com relação ao círculo de correlações:

A representação para as variáveis predays, popul e manu é de maior qualidade, já que se aproximam mais da circunferência. Por outro lado, vemos que as variáveis temp e wind não são bem representadas, estando muito próximas ao centro do círculo.

Para enriquecer esta análise, também podemos visualizar o Cos2 das variáveis individualmente:

Quando analisamos a qualidade da representação para as 3 primeiras Componentes Principais conjuntamente, percebemos que apenas a variável wind apresenta um Cos2 que não parece ser muito satisfatório. É válido reparar que esta análise é diferente da realizada anteriormente, que considerava apenas duas dimensões.

Contribuição das variáveis

Além da qualidade da representação de cada variável, também devemos verificar o quanto cada uma das variáveis contribui para a construção das componentes principais.

Indo de encontro ao que foi visualizado no Biplot, podemos perceber a contribuição considerável da variável popul para a PC1, assim como a contribuição relativamente alta da variável predays para a PC2. Já no caso da PC3, a variável que mostra maior contribuição é temp.

Outra forma de visualizar a contribuição das variáveis para cada componente é individualmente. Os gráficos abaixo resumem as contribuições para a PC1, PC2 e PC3, que são as de nosso interesse.

No que diz respeito à PC1, temos apenas as variáveis manu e popul com contribuições acima da contribuição média esperada. Para a PC2, somente predays e precip estão acima da contribuição média esperada, indo novamente de encontro às análises feitas anteriormente. Para a PC3, apenas temp e precip possuem contribuição percentual acima da média esperada.

Contribuição das observações

Da mesma forma que utilizamos o Cos2 para verificar a contribuição das variáveis, ele também pode ser utilizado para a contribuição das observações para cada componente. Ou seja, podemos verificar o quanto cada cidade influencia nas componentes principais, em especial PC1 e PC2.

É possível visualizar a contribuição separadamente para cada componente. Mas, como estamos interessados nas três primeiras, vamos olhar para todas em conjunto:

Curiosamente, apenas 7 dentre todas as cidades apresentam uma contribuição acima da média esperada, quando consideradas a PC1, a PC2 e a PC3 ao mesmo tempo.

Outra maneira de identificar a contribuição dos indivíduos para a PCA é através do gráfico abaixo, que posiciona cada cidade com relação às PCAs, e com a escala do Cos2 para evidenciar o valor da importância.

Os maiores valores de Cos2 possuem a cor mais avermelhada. Percebemos que há algumas cidades que provavelmente só possuem o Cos2 alto graças à influência na PC1, como é o caso de Chicago e possivelmente também a Philadelphia. Por outro lado, há cidades com pequena contribuição paca o PC1 mas que se mostram muito influentes para o PC2, como San Francisco e Albuquerque.

No entanto, nós desejamos agora uma visualização que permita a análise em 3 dimensões, com as 3 primeiras Componentes Principais sendo consideradas. Vejamos o gráfico abaixo:

Não foi possível incluir a tooltip com o nome de cada cidade, o que deixaria a análise mais interessante. Apesar disso, podemos perceber que há uma cidade com contribuição alta para tanto a PC1 como a PC3. A maioria dos indivíduos apresentou uma contribuição de baixa a moderada para a PC2, e maior para a PC3.

Conclusão

Com base nas análises, conclui-se que a utilização de três componentes principais permitiria uma explicação de cerca de 84,8% da variabilidade original dos dados. Esse percentual parece bastante razoável, embora fosse necessário colocar no contexto do problema.

Também verificou-se que as variáveis altamente correlacionadas podem ser bem resumidas dentro de uma única PC, o que é benéfico para a redução de dimensionalidade.

A PC1 seria bem explicada pelas variáveis:

  • manu - Número de empresas de manufatura que empregam 20 ou mais trabalhadores.
  • popul - Tamanho da população (censo de 1970), em milhares.

Faz total sentido que a maior parte da variância explicada venha dessas duas variáveis, visto que o tamanho da população e a presença de indústrias influencia fortemente na emissão de gases poluentes, como o próprio SO2 (var. resposta), que é um gás com origem principalmente industrial e gerado em processos de combustão.

A PC2 seria bem explicada pelas variáveis:

  • precip: Precipitação média anual em polegadas.
  • predays: Número médio de dias com precipitação por ano.

Em seguida, outra parte considerável da variância explicada seria influenciada principalmente pelas características da cidade quanto às chuvas. Isso também faz sentido, já que é conhecida na literatura o impacto positivo das chuvas para a qualidade do ar.

A PC3 seria bem explicada pelas variáveis:

  • temp: Temperatura média anual em Fahrenheit.
  • predays: Número médio de dias com precipitação por ano.

Por último, teriamos outra proporção de variância explicada que seria influenciada principalmente pelas características da cidade quanto às chuvas e à temperatura. Novamente, mostrando que questões ambientais têm forte influência na poluição do ar.