Comparei ?prcomp
e ?princomp
encontrei algo sobre a análise de componentes principais (QA) e modo Q (modo principal) (PCA). Mas honestamente - eu não entendo. Alguém pode explicar a diferença e talvez até explicar quando aplicar qual?
Comparei ?prcomp
e ?princomp
encontrei algo sobre a análise de componentes principais (QA) e modo Q (modo principal) (PCA). Mas honestamente - eu não entendo. Alguém pode explicar a diferença e talvez até explicar quando aplicar qual?
Respostas:
A diferença entre eles não tem nada a ver com o tipo de PCA que eles executam, apenas o método que eles usam. Como a página de ajuda para prcomp
diz:
O cálculo é feito por uma decomposição de valor singular da matriz de dados (centralizada e possivelmente em escala), não usando
eigen
a matriz de covariância. Geralmente, esse é o método preferido para precisão numérica.
Por outro lado, a princomp
página de ajuda diz:
O cálculo é feito usando
eigen
a matriz de correlação ou covariância, conforme determinado porcor
. Isso é feito para compatibilidade com o resultado do S-PLUS. Um método preferido de cálculo é a utilizaçãosvd
dex
, como é feito emprcomp
."
Portanto, prcomp
é preferível , embora na prática seja improvável que você veja muita diferença (por exemplo, se você executar os exemplos nas páginas de ajuda, deverá obter resultados idênticos).
prcomp
, é um método preferido.
Normalmente, uma análise multivariada (correlações de computação, extraindo latentes, etc.) é feita de colunas de dados que são características ou perguntas, - enquanto unidades amostrais, as linhas, são r espondents. Portanto, esse caminho é chamado de análise de modo R. Às vezes, porém, você pode querer fazer uma análise multivariada de responsents, enquanto q ERGUNTAS são tratados como unidades amostrais. Essa seria a análise da maneira Q.
Não há diferença formal entre os dois, para que você possa gerenciar os dois com a mesma função, apenas transponha seus dados. Existem diferenças, no entanto, nas questões de padronização e interpretação dos resultados.
Esta é uma resposta geral: não toco especificamente nas funções R prcomp
e princomp
porque não sou um usuário R e não estou ciente das possíveis diferenças entre elas.
Uma documentação útil e específica de Gregory B. Anderson , intitulada PRINCIPAL COMPONENT ANALYSIS IN R AN EXAMINATION OF THE DIFFERENT FUNCTIONS AND METHODS TO PERFORM PCA
, forneceu mais informações sobre este tópico.
Os dois parágrafos a seguir foram extraídos da introdução:
Em R, existem dois métodos gerais para executar PCA sem nenhum valor faltante: (1) decomposição espectral (modo R [também conhecido como eigendecomposition]) e (2) decomposição de valor singular (modo Q; Q Development Core Team 2011). Ambos os métodos podem ser executados à mão usando as funções eigen (modo R) e svd (modo Q), respectivamente, ou podem ser executados usando as muitas funções PCA encontradas no pacote de estatísticas e outros pacotes adicionais disponíveis. O método de análise de decomposição espectral examina as covariâncias e correlações entre variáveis, enquanto o método de decomposição de valor singular analisa as covariâncias e correlações entre as amostras. Embora ambos os métodos possam ser facilmente executados em R, o método de decomposição de valor singular (ou seja,
Este documento se concentra na comparação dos diferentes métodos para executar o PCA em R e fornece técnicas de visualização apropriadas para examinar a normalidade dentro do pacote estatístico. Mais especificamente, este documento compara seis funções diferentes criadas para ou podem ser usadas para PCA: eigen, princomp, svd, prcomp, PCA e pca. Em todo o documento, o código R essencial para executar essas funções é incorporado ao texto usando a fonte Courier New e é codificado por cores usando a técnica fornecida em Tinn-R ( https://sourceforge.net/projects/tinn-r ). Além disso, os resultados das funções são comparados usando o procedimento de simulação para verificar se os diferentes métodos diferem nos valores próprios, vetores próprios e pontuações fornecidos a partir da saída.
Abaixo estão os resultados dos meus testes:
> job<-read.table("./job_perf.txt", header=TRUE, sep="")
> pc.cr<-prcomp(job, scale=TRUE, cor=TRUE, scores=TRUE)
> pc.cr1<-princomp(job, scale=TRUE, cor=TRUE, scores=TRUE)
> pc.cr$scale
commun probl_solv logical learn physical appearance
5.039841 1.689540 2.000000 4.655398 3.770700 4.526689
> pc.cr1$scale
commun probl_solv logical learn physical appearance
4.805300 1.610913 1.906925 4.438747 3.595222 4.316028
Dados de teste:
commun probl_solv logical learn physical appearance
12 52 20 44 48 16
12 57 25 45 50 16
12 54 21 45 50 16
13 52 21 46 51 17
14 54 24 46 51 17
22 52 25 54 58 26
22 56 26 55 58 27
17 52 21 45 52 17
15 53 24 45 53 18
23 54 23 53 57 24
25 54 23 55 58 25