André,
Assim como o Cesar comentou, não consegui identificar os data.frame por
ano que você menciona.
Agora se você tem esses data.frames por ano, será que uma análise de
agrupamento ou PCA é o ideal? Uma abordagem longitudinal não seria
melhor? E também não está claro o que deseja. É calcular médias anuais?
O pacote prcomp() extrai sim as PCA's
No seu comando se colocar o argumento scale=T, ele vai criar as PCA's de
acordo com a matriz de correlação. Veja:
PCA <- prcomp(USArrests,scale=T)
summary(PCA)
names(PCA)
PCA$sdev #### Ríaz quadrada dos autovalores da matriz de correlação
PCA$rotation #### Matriz de autovetores normalizados
Comparando com os autovalores e autovetores da matriz de correlação terá
valores como os extraídos ao acima.
mcor <- cor(USArrests)
mcor
vv <- eigen(mcor)
vv
Logo desta forma terá suas PCA's. Por exemplo a PCA1:
Y1
<-vv$vectors[1,1]*USArrests[,1]+vv$vectors[2,1]*USArrests[,2]+vv$vectors[3,1]*USArrests[,3]+vv$vectors[4,1]*USArrests[,4]
Y1
roY1x1 <- (vv$vectors[1,1]*sqrt(vv$values[1]))/sqrt(mvar[1,1]) ##
Correlação da PCA1 com Murder
roY1x1
roY1x2 <- (vv$vectors[2,1]*sqrt(vv$values[1]))/sqrt(mvar[2,2]) ##
Correlação da PCA1 com Assault
roY1x2
roY1x3 <- (vv$vectors[3,1]*sqrt(vv$values[1]))/sqrt(mvar[3,3]) ##
Correlação da PCA1 com UrbanPop
roY1x3
roY1x4 <- (vv$vectors[4,1]*sqrt(vv$values[1]))/sqrt(mvar[4,4]) ##
Correlação da PCA1 com Rape
roY1x4
On 12-04-2015 22:00, Andre Oliveira wrote:
Cesar Rabak,
obrigado pela resposta. Esta é a questão como organizar os três bancos
de dados levando em conta a variável ano, pois, pelo que tenho olhado
as funções hclust() e prcomp() não extrai os PCAs e nem o dendograma
replicando ano. Todos os exemplos do R trabalham com dados de um ano
apenas. O objetivo é agrupar as cidades e os bancos de dados
USArrests2007, USArrests2009 e USArrests2010 são fictícios e estão ai
apenas para ilustrar que tenho 3 bancos com mesma estrutura do USArrests.
Dado que tenho apenas o USArrests, tudo pode ser resolvido com o CMR
com pequenas variações de escala e padronização das variáveis se desejar.
hc=hclust(dist(USArrests))
plot(hc)
summary(prcomp(USArrests))
Obrigado
André Oliveira Souza.
Graduação em Matemática, mestrado em estatística aplicada.Instituto
Federal de Educação, Ciência e Tecnologia do Espirito Santo. IFES
Em Domingo, 12 de Abril de 2015 18:14, Cesar Rabak
<[email protected]> escreveu:
Embora você cite os procedimentos de PCA e plotar dendrograma e
"análise dos fatores", você não dá muita informação de porque você
precisa fazer essa análise e a que conclusões deseja chegar ou quais
hipóteses avaliar.
Não sei onde estão os dataframes USArrests2007, USArrests2009 e
USArrests2010, tendo nos meus defaults apenas o USArrests.
Considerando este último, vê-se que a estrutura dele é 50 linhas com
cada uma um estado americano por quatro variáveis (três crimes e uma
com a população), se você for anexar bancos com estatísticas de
diferentes anos você terá que considerar como colocar a variável ano
em jogo e como analisar os estados americanos para manter apenas as
cinquenta linhas...
A análise de componentes principais já faz todos os cálculos
necessários, assim calcular as médias em separado só faria sentido
para alguma análise descritiva (incidentalmente você pode [dependendo
do pacote que use para fazer a PCA] escolher se a análise será
centrada na média de cada variável ou não).
Quanto aos comandos R que você colocou, eles não formam um CMR e por
isso não dá para comentar a respeito.
HTH
--
Cesar Rabak
2015-04-10 16:39 GMT-03:00 Andre Oliveira <[email protected]
<mailto:[email protected]>>:
Pessoal boa tarde,
estou com dois bancos de dados com a estrutura do USArrests que
vem no R só que repetido no tempo. USArrests2007, USArrests2009,
USArrests2010. Gostaria de orientação de como anexar estes dados
para em um banco de dados único e rodar PCA, Plotar, dendograma e
a análise de fatores. Pelo que percebi em meus devo fazer o
seguinte. Montar um banco de dados com os três bancos e tirar a
soma ou média. Não sei se fere princípios da análise.
dados= data.frame(USArrests2007, USArrests2009, USArrests2010) #
Não sei se é data.frame aqui mesmo!
V1=tapply(V1,grupos,mean)
.
.
.
.
.
Vn=tapply(Vn,grupos,mean)
dadosmedio=cbind(V1, ........................,Vn)
hclust(dist(dadosmedio)
prcomp(dadosmédio)
Ou usar a estrutura com Vn=tapply(Vn,grupos,sum) em vez de
Vn=tapply(Vn,grupos,mean). Ou usar o próprio banco formado por
USArrests2007, USArrests2009, USArrests2010.
Caso falei besteira, desconsidere. Ficarei agradecido por sugestões.
obrigado pela atenção
André Oliveira Souza.
Graduação em Matemática, mestrado em estatística
aplicada.Instituto Federal de Educação, Ciência e Tecnologia do
Espirito Santo. IFES
_______________________________________________
R-br mailing list
[email protected] <mailto:[email protected]>
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e
forneça código mínimo reproduzível.
_______________________________________________
R-br mailing list
[email protected]
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código
mínimo reproduzível.
_______________________________________________
R-br mailing list
[email protected]
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código
mínimo reproduzível.