<div dir="ltr">André,<div><br></div><div>A PCA é uma técnica que se justifica quando você tem muitas variáveis e deseja entender o conjunto de dados diminuindo a dimensão desse espaço. </div><div><br></div><div>A PCA efetivamente cria um conjunto de componentes cujos autovalores são decrescentes e assim usando-se as primeiras componentes ('dimensões') se pode entender a variabilidade dos dados/casos.</div><div><br></div><div>Se seus dados têm somente quatro variáveis (as UF são na verdade rótulos de casos [mais sobre isso mais abaixo]) a PCA pode ser um passo quase desnecessário pois a análise da variabilidade de cada variável individualmente pode ser mais produtiva.</div><div><br></div><div>Para resolver o problema da coluna UF ser na verdade a que nomeia os casos, tente chamar (se for a primeira coluna da planilha que contém as UF):</div><div><span style="color:rgb(0,0,0);font-family:'bookman old style','new york',times,serif;font-size:16px">dados<-read.xls("lixo.xls", row.names=1, </span><span style="color:rgb(0,0,0);font-family:'bookman old style','new york',times,serif;font-size:16px">encoding = "latin1")</span><br></div><div><br></div><div> Qtº à sua chamada para a GLM não é possível comentar em função da sua necessidade de não divulgação sobre seus dados.</div><div><br></div><div>HTH</div><div>--</div><div>Cesar Rabak</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">2015-04-13 20:08 GMT-03:00 Andre Oliveira <span dir="ltr"><<a href="mailto:andreolsouza@yahoo.com.br" target="_blank">andreolsouza@yahoo.com.br</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div style="color:#000;background-color:#fff;font-family:bookman old style,new york,times,serif;font-size:16px"><div><div><div style="color:#000;background-color:#fff;font-family:bookman old style,new york,times,serif;font-size:16px"><div>De fato esta não é a melhor análise a se fazer, apenas gostaria de entender como eu poderia organizar tais dados para agrupar estados uma função prcomp e a <span>hclust, em específico são dados do governo Federal de certo projeto, mas de vez em quando me deparo com isto aqui. Os dados são estes.</span></div><div dir="ltr">
dados<-read.xls("lixo.xls",encoding = "latin1")<br>str(dados)<br>'data.frame': 270 obs. of 5 variables:<br> $ UF: Factor w/ 27 levels "AC","AL","AM",..: 1 2 3 4 5 6 7 8 9 10 ...<br> $ V1: int 0 1 2 0 15 14 7 7 2 0 ...<br> $ V2: int 15 15 15 15 15 15 15 15 15 15 ...<br> $ V3: int 15 15 15 15 15 15 15 15 15 15 ...<br> $ V4: int 136 543 718 98 2976 2242 306 377 859 830 ...</div><div dir="ltr"><br></div><div dir="ltr">PCA <- prcomp(dados,scale=T)<br>Erro em colMeans(x, na.rm = TRUE) : 'x' deve ser numérico</div><div dir="ltr"><br></div><div dir="ltr">hc<-hclust(dist(dados),method='ward.D')<br>Mensagens de aviso perdidas:<br>In dist(dados) : NAs introduzidos por coerção<br></div><div dir="ltr"><br></div><div dir="ltr"><br></div><div dir="ltr">Claro que também testei ...colocando ANO no banco dados ...e TOTAL outras alternativas <br></div><div dir="ltr"><br></div><div dir="ltr"> UF2=relevel(UF, ref = "PR")<br>fit.model=glm(TOTAL~UF2+factor(ANO), family = Gamma))<br>summary(fit.model)<br><span></span></div><div><br></div><div><br><span></span></div><div><span></span></div><div><div dir="ltr">Mas, enfim qual estrutura nos banco de dados eu poderia usar para corrigir o erros descritos em prcomp e hclust apenas para testes?<br></div><div dir="ltr">Pensei em transformar meu banco de dados em algo do tipo USArrests e ai não teria tais erros, mas não sei se tem algo teórico que impeça. <br></div><div dir="ltr"> obrigado <br></div></div><div><div>
<br clear="none">
<br clear="none">André Oliveira Souza.
<br clear="none">Graduação em Matemática, mestrado em estatística aplicada.Instituto Federal de Educação, Ciência e Tecnologia do Espírito Santo. IFES
<br clear="none">
<br clear="none"></div></div> <br clear="none"><div><br clear="none"><br clear="none"></div></div><div style="color:#000;background-color:#fff;font-family:bookman old style,new york,times,serif;font-size:16px"> </div></div></div><div><div class="h5"><div> <div style="font-family:bookman old style,new york,times,serif;font-size:16px"> <div style="font-family:HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif;font-size:16px"> <div><br><br></div><div><div dir="ltr"> <font size="2" face="Arial"> Em Segunda-feira, 13 de Abril de 2015 15:57, Felipe <<a href="mailto:felipe.e.barletta@gmail.com" target="_blank">felipe.e.barletta@gmail.com</a>> escreveu:<br clear="none"> </font> </div> <br clear="none"><br clear="none"> <div><div><div>
André,<br clear="none">
<br clear="none">
Assim como o Cesar comentou, não consegui identificar os data.frame
por ano que você menciona.<br clear="none">
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?<br clear="none">
O pacote prcomp() extrai sim as PCA's <br clear="none">
<br clear="none">
No seu comando se colocar o argumento scale=T, ele vai criar as
PCA's de acordo com a matriz de correlação. Veja:<br clear="none">
PCA <- prcomp(USArrests,scale=T)<br clear="none">
summary(PCA)<br clear="none">
names(PCA)<br clear="none">
PCA$sdev #### Ríaz quadrada dos autovalores da matriz de
correlação<br clear="none">
PCA$rotation #### Matriz de autovetores normalizados<br clear="none">
<br clear="none">
Comparando com os autovalores e autovetores da matriz de correlação
terá valores como os extraídos ao acima.<br clear="none">
<br clear="none">
mcor <- cor(USArrests)<br clear="none">
mcor<br clear="none">
vv <- eigen(mcor)<br clear="none">
vv<br clear="none">
<br clear="none">
Logo desta forma terá suas PCA's. Por exemplo a PCA1:<br clear="none">
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]<br clear="none">
Y1<br clear="none">
roY1x1 <- (vv$vectors[1,1]*sqrt(vv$values[1]))/sqrt(mvar[1,1]) ##
Correlação da PCA1 com Murder<br clear="none">
roY1x1<br clear="none">
roY1x2 <- (vv$vectors[2,1]*sqrt(vv$values[1]))/sqrt(mvar[2,2]) ##
Correlação da PCA1 com Assault<br clear="none">
roY1x2<br clear="none">
roY1x3 <- (vv$vectors[3,1]*sqrt(vv$values[1]))/sqrt(mvar[3,3]) ##
Correlação da PCA1 com UrbanPop<br clear="none">
roY1x3<br clear="none">
roY1x4 <- (vv$vectors[4,1]*sqrt(vv$values[1]))/sqrt(mvar[4,4]) ##
Correlação da PCA1 com Rape<br clear="none">
roY1x4<br clear="none">
<br clear="none">
<br clear="none">
<br clear="none">
<br clear="none">
<br clear="none">
<div><div>On 12-04-2015 22:00, Andre Oliveira
wrote:<br clear="none">
</div>
<blockquote type="cite">
<div style="color:#000;background-color:#fff;font-family:bookman old style,new york,times,serif;font-size:16px">
<div><span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">Cesar Rabak,</span><span></span></div>
<div dir="ltr"><span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">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 </span>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 <span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">USArrests2007,
USArrests2009 e USArrests2010 são fictícios e estão ai
apenas para ilustrar que tenho 3 bancos com mesma estrutura
do </span><span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">USArrests. </span></div>
<div dir="ltr"><span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px"><br clear="none">
</span></div>
<div dir="ltr"><font face="Helvetica Neue, Segoe UI, Helvetica, Arial, Lucida Grande, sans-serif"><span style="font-size:13px">Dado que tenho
apenas o </span></font><span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">USArrests, tudo pode
ser resolvido com o CMR com pequenas variações de escala e
padronização das variáveis se desejar.</span></div>
<div dir="ltr"><span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px"><br clear="none">
</span></div>
<div dir="ltr"><span>hc=hclust(dist(</span><span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">USArrests)</span>)</div>
<div dir="ltr">plot(hc)</div>
<div dir="ltr"><span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px"></span></div>
<div dir="ltr"><span>summary(prcomp(</span><span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">USArrests</span>))</div>
<div dir="ltr"><span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px"><br clear="none">
</span></div>
<div dir="ltr"><span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">Obrigado </span></div>
<div dir="ltr"><span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px"><br clear="none">
</span></div>
<div dir="ltr"><span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px"><br clear="none">
</span></div>
<div dir="ltr"><span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px"><br clear="none">
</span></div>
<div dir="ltr"><br clear="none">
</div>
<div dir="ltr"><br clear="none">
</div>
<div> </div>
<div>
<div>
<br clear="none">
<br clear="none">
André Oliveira Souza. <br clear="none">
Graduação em Matemática, mestrado em estatística
aplicada.Instituto Federal de Educação, Ciência e Tecnologia
do Espirito Santo. IFES
<br clear="none">
<br clear="none">
</div>
</div>
<br clear="none">
<div><br clear="none">
<br clear="none">
</div>
<div style="display:block">
<div style="font-family:bookman old style,new york,times,serif;font-size:16px">
<div style="font-family:HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif;font-size:16px">
<div dir="ltr"> <font size="2" face="Arial"> Em Domingo,
12 de Abril de 2015 18:14, Cesar Rabak
<a rel="nofollow" shape="rect" href="mailto:cesar.rabak@gmail.com" target="_blank"><cesar.rabak@gmail.com></a> escreveu:<br clear="none">
</font> </div>
<br clear="none">
<br clear="none">
<div>
<div>
<div>
<div dir="ltr">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.
<div><br clear="none">
</div>
<div>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...</div>
<div><br clear="none">
</div>
<div>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).<br clear="none">
<div><br clear="none">
</div>
<div>Quanto aos comandos R que você colocou,
eles não formam um CMR e por isso não dá para
comentar a respeito.</div>
</div>
<div><br clear="none">
</div>
<div>HTH</div>
<div>--</div>
<div>Cesar Rabak</div>
</div>
<div><br clear="none">
<div>2015-04-10
16:39 GMT-03:00 Andre Oliveira <span dir="ltr"><<a rel="nofollow" shape="rect" href="mailto:andreolsouza@yahoo.com.br" target="_blank">andreolsouza@yahoo.com.br</a>></span>:<br clear="none">
<blockquote style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>
<div>
<div style="color:#000;background-color:#fff;font-family:bookman old style,new york,times,serif;font-size:16px">
<div dir="ltr"><span>Pessoal boa tarde,</span></div>
<div dir="ltr"><span>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. <br clear="none">
</span></div>
<div dir="ltr"><br clear="none">
</div>
<div dir="ltr"><span>dados=
data.frame(USArrests2007,
USArrests2009, USArrests2010</span>)
# Não sei se é data.frame aqui mesmo!
<br clear="none">
<span></span></div>
<div dir="ltr"><span><br clear="none">
</span></div>
<div dir="ltr"><span>V1=tapply(V1,grupos,mean)
<br clear="none">
</span></div>
<div dir="ltr"><span>.</span></div>
<div dir="ltr"><span>.</span></div>
<div dir="ltr"><span>.</span></div>
<div dir="ltr"><span>.</span></div>
<div dir="ltr"><span>.</span></div>
<div dir="ltr"><span>Vn=tapply(Vn,grupos,mean) </span></div>
<div dir="ltr"><span><br clear="none">
</span></div>
<div dir="ltr"><span>dadosmedio=cbind(V1,
........................,Vn)</span></div>
<div dir="ltr"><span>hclust(dist(dadosmedio)</span></div>
<div dir="ltr"><span>prcomp(dadosmédio)</span></div>
<div dir="ltr"><br clear="none">
</div>
<div dir="ltr">Ou usar a estrutura com
<span>Vn=tapply(Vn,grupos,sum) </span>em
vez de <span>Vn=tapply(Vn,grupos,mean).
</span>Ou usar o próprio banco formado
por <span>USArrests2007,
USArrests2009, USArrests2010. </span><br clear="none">
<span></span></div>
<div dir="ltr"><br clear="none">
<span></span></div>
<div dir="ltr"><span>Caso falei
besteira, desconsidere. Ficarei
agradecido por sugestões. <br clear="none">
</span></div>
<div dir="ltr"><span><br clear="none">
</span></div>
<div dir="ltr"><span><br clear="none">
</span></div>
<div dir="ltr"><span>obrigado pela
atenção<br clear="none">
</span></div>
<div dir="ltr"><br clear="none">
<span></span></div>
<div dir="ltr"><span><br clear="none">
</span></div>
<div dir="ltr"><br clear="none">
<span></span></div>
<div dir="ltr"><span><br clear="none">
</span></div>
<div dir="ltr"><br clear="none">
<span></span></div>
<div dir="ltr"><span></span></div>
<div> </div>
<div>
<div>
<br clear="none">
<br clear="none">
André Oliveira Souza. <br clear="none">
Graduação em Matemática, mestrado em
estatística aplicada.Instituto
Federal de Educação, Ciência e
Tecnologia do Espirito Santo. IFES
<br clear="none">
<br clear="none">
</div>
</div>
</div>
</div>
</div>
<br clear="none">
_______________________________________________<br clear="none">
R-br mailing list<br clear="none">
<a rel="nofollow" shape="rect" href="mailto:R-br@listas.c3sl.ufpr.br" target="_blank">R-br@listas.c3sl.ufpr.br</a><br clear="none">
<a rel="nofollow" shape="rect" href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br clear="none">
Leia o guia de postagem (<a rel="nofollow" shape="rect" href="http://www.leg.ufpr.br/r-br-guia" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>)
e forneça código mínimo reproduzível.<br clear="none">
</blockquote>
</div>
<br clear="none">
</div>
</div>
</div>
<br clear="none">
<br clear="none">
</div>
</div>
</div>
</div>
</div>
<br clear="none">
<fieldset></fieldset>
<br clear="none">
<pre>_______________________________________________
R-br mailing list
<a rel="nofollow" shape="rect" href="mailto:R-br@listas.c3sl.ufpr.br" target="_blank">R-br@listas.c3sl.ufpr.br</a>
<a rel="nofollow" shape="rect" href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a>
Leia o guia de postagem (<a rel="nofollow" shape="rect" href="http://www.leg.ufpr.br/r-br-guia" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código mínimo reproduzível.</pre>
</blockquote></div>
<br clear="none">
</div></div><br clear="none"><br clear="none"></div> </div></div><div> </div></div><div> </div></div></div></div></div></div><br>_______________________________________________<br>
R-br mailing list<br>
<a href="mailto:R-br@listas.c3sl.ufpr.br">R-br@listas.c3sl.ufpr.br</a><br>
<a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>
Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código mínimo reproduzível.<br></blockquote></div><br></div>