Como parte de uma tarefa da Universidade, preciso realizar o pré-processamento de dados em um conjunto de dados brutos bastante grande e multivariado (> 10). Eu não sou um estatístico em nenhum sentido da palavra, então estou um pouco confuso com o que está acontecendo. Peço desculpas antecipadamente pelo que provavelmente é uma pergunta ridiculamente simples - minha cabeça está girando depois de olhar para várias respostas e tentar percorrer as palavras-estatísticas.
Eu li isso:
- O PCA me permite reduzir a dimensionalidade dos meus dados
- Isso é feito ao mesclar / remover atributos / dimensões que se correlacionam bastante (e, portanto, são um pouco desnecessárias)
- Faz isso encontrando vetores próprios nos dados de covariância (graças a um bom tutorial que eu segui para aprender isso)
O que é ótimo.
No entanto, estou realmente lutando para ver como posso aplicar isso praticamente aos meus dados. Por exemplo (este não é o conjunto de dados que usarei, mas uma tentativa de um exemplo decente com o qual as pessoas possam trabalhar), se eu tivesse um conjunto de dados com algo como ...
PersonID Sex Age Range Hours Studied Hours Spent on TV Test Score Coursework Score
1 1 2 5 7 60 75
2 1 3 8 2 70 85
3 2 2 6 6 50 77
... ... ... ... ... ... ...
Não tenho muita certeza de como interpretaria os resultados.
A maioria dos tutoriais que eu vi on-line parece me dar uma visão muito matemática do PCA. Eu fiz algumas pesquisas e as segui - mas ainda não tenho certeza do que isso significa para mim, que está apenas tentando extrair algum tipo de significado dessa pilha de dados que tenho diante de mim.
Simplesmente executar o PCA nos meus dados (usando um pacote de estatísticas) cospe uma matriz NxN de números (onde N é o número de dimensões originais), que é totalmente grego para mim.
Como posso fazer o PCA e aceitar o que recebo de uma maneira que eu possa colocar em inglês simples em termos das dimensões originais?
Respostas:
As páginas 13-20 do tutorial que você postou fornecem uma explicação geométrica muito intuitiva de como o PCA é usado para redução de dimensionalidade.
A matriz 13x13 mencionada é provavelmente a matriz "loading" ou "rotação" (acho que seus dados originais tinham 13 variáveis?) Que podem ser interpretadas de uma das duas maneiras (equivalentes):
As colunas (valores absolutos das) da sua matriz de carregamento descrevem quanto cada variável proporcionalmente "contribui" para cada componente.
A matriz de rotação gira seus dados para a base definida por sua matriz de rotação. Portanto, se você possui dados em 2-D e multiplica seus dados por sua matriz de rotação, seu novo eixo X será o primeiro componente principal e o novo eixo Y será o segundo componente principal.
EDIT: Esta pergunta é muito solicitada, por isso vou apresentar uma explicação visual detalhada do que está acontecendo quando usamos o PCA para redução de dimensionalidade.
Considere uma amostra de 50 pontos gerados a partir de y = x + ruído. O primeiro componente principal estará ao longo da linha y = xo segundo componente estará na linha y = -x, como mostrado abaixo.
A relação de aspecto atrapalha um pouco, mas acredito que os componentes são ortogonais. A aplicação do PCA girará nossos dados para que os componentes se tornem os eixos xey:
Os dados antes da transformação são círculos, os dados depois são cruzados. Neste exemplo em particular, os dados não foram girados tanto quanto foram invertidos na linha y = -2x, mas poderíamos inverter o eixo y com a mesma facilidade para tornar essa rotação verdadeiramente sem perda de generalidade, como descrito aqui .
A maior parte da variação, ou seja, a informação nos dados, é espalhada ao longo do primeiro componente principal (que é representado pelo eixo x após a transformação dos dados). Há uma pequena variação ao longo do segundo componente (agora o eixo y), mas podemos eliminar esse componente inteiramente sem perda significativa de informações . Portanto, para recolher isso de duas dimensões em 1, deixamos que a projeção dos dados no primeiro componente principal descreva completamente nossos dados.
Podemos recuperar parcialmente nossos dados originais girando (ok, projetando) de volta para os eixos originais.
Os pontos azuis escuros são os dados "recuperados", enquanto os pontos vazios são os dados originais. Como você pode ver, perdemos algumas informações dos dados originais, especificamente a variação na direção do segundo componente principal. Mas, para muitos propósitos, essa descrição compactada (usando a projeção ao longo do primeiro componente principal) pode atender às nossas necessidades.
Aqui está o código que eu usei para gerar este exemplo, caso você queira replicá-lo. Se você reduzir a variação do componente de ruído na segunda linha, a quantidade de dados perdidos pela transformação do PCA também diminuirá porque os dados convergirão para o primeiro componente principal:
fonte
prcomp
onde a matriz de carregamentos é apenas a matriz cujas colunas são autovetores unitários. Acho que você está sendo desnecessariamente técnico e, na maioria dos casos, acredito que esses termos sejam usados de forma intercambiável.Eu diria que sua pergunta é qualificada, não apenas em,
cross validated
mas também emstack overflow
, onde você será instruído a implementar a redução de dimensão em R (.. etc.) Para efetivamente ajudá-lo a identificar qual coluna / variável contribui melhor para a variação de o conjunto de dados inteiro.O PCA (Análise de Componentes Principais) possui a mesma funcionalidade que SVD (Decomposição de Valor Singular) e, na verdade, são exatamente o mesmo processo após a aplicação
scale
/ da transformação z no conjunto de dados.Aqui estão alguns recursos que você pode usar em meia hora para entender melhor.
Eu não sou capaz de fornecer uma solução de codificação vívida para ajudá-lo a entender como implementar svd e o que cada componente faz, mas as pessoas são incríveis, aqui estão algumas postagens muito informativas que eu costumava acompanhar o lado do aplicativo do SVD, mesmo que eu saber como calcular manualmente um problema de SVD 3by3 .. :)
fonte
No PCA, você deseja descrever os dados em menos variáveis. Você pode obter as mesmas informações em menos variáveis do que com todas as variáveis. Por exemplo, as horas estudadas e a pontuação do teste podem estar correlacionadas e não precisamos incluir as duas.
No seu exemplo, digamos que seu objetivo seja medir o quão "bom" um aluno / pessoa é. Olhando para todas essas variáveis, pode ser confuso ver como fazer isso. O PCA nos permite ver claramente quais alunos são bons / ruins.
Se o primeiro componente principal explica a maior parte da variação dos dados, é tudo o que precisamos. Você encontrará a correlação entre esse componente e todas as variáveis. Correlações "grandes" significam variáveis importantes. Por exemplo, o primeiro componente pode estar fortemente correlacionado com as horas estudadas e a pontuação do teste. Valores altos do primeiro componente indicam altos valores de tempo de estudo e pontuação no teste.
fonte