Detalhe importante: Em 7:20 a função prcomp da base R não converte automaticamente os dados pra scale, neste caso a sugestão é usar "prcomp(scale = TRUE, center = TRUE)". Desta forma os loadings serão apresentados como resultado de saída na tela.
Perfeito, Marcelo. Parabéns belo excelente tutorial. Gostaria de alterar a legenda de um gráfico biplot (Fil.) inserindo na ordem cronológica correta uma variável meses (jan, fev, mar...) . No meu gráfico eles estão aparecendo em ordem alfabética. Você pode me auxiliar?
Boa noite Professor, Gostaria de uma orientação quanto a plotar o gráfico da PCA em 3D. Estou usando o pacote rgl. Com o comando (plot3d(pca$scores[,1:3], col = "red", type = "p") eu consigo plotar os scores, entretanto, todas os meus pontos ficam vermelhos, sendo que tenho dois conjuntos de amostras. Como poderia estar discriminado para as duas para terem cores diferentes? Excelente aula Professor.
Meus parabéns, muito didático o vídeo. Obrigada por nos oferecer essas informações. Minha dúvida: como faço para aumentar o tamanho das letras e números no gráfico? Desde já agradeço 😊
Você pode usar as funções normais do ggplot2 após seu código. Ficaria assim fviz_pca_biplot(iris_pca) + #este aqui é seu código theme(text = element_text(size=25), axis.text.x = element_text(angle=90, hjust=1), plot.title = element_text(size=35)) pra você saber quais outroa argumentos(opções de formatação ele permite digite isso no seu R. ?theme
Parabéns pelo vídeo, gostaria de saber como agrupar esses vários pontos (bolinhas) que foi gerado no gráfico, para representar por apenas uma bolinha que represente a média delas?
Fico feliz que o conteúdo tenha sido útil. Não sei como fazer isso, mas esses pontos são as coordenadas dos indivíduos dentro do componente. Se for ajustar tem que ser no res_pca$coord
No gráfico não é possível fazer. Mas caso você vá fazer modelos com os dados do PCA você pode usar vários componentes sim, inclusive você pode definir uma grade com números de componentes e rodar vários modelos e ele mostrará qual número de componentes é o ideal. Eu fiz uma playlist que mostra como fazer modelos ruclips.net/p/PLN6VD2VdqF6eVMoMrR8pDQ0MCfTWRHOk2
Adoro suas aulas professor, agora finalmente aprendi! Gostaria de saber como distribuir melhor as setas, pq algumas ficaram sobrepostas e não é possível visualizar os nomes das variáveis nos meus dados.
fico contente que o conteúdo tenha sido útil, se tiver alguma dúvida quanto a interpretação do PCA eu fiz um vídeo também: ruclips.net/video/BmeBIWW4fsI/видео.html Quando tem muitas variáveis fica muito truncado mesmo e uma forma de dar uma melhora é usar o argumento repel = TRUE exemplo: fviz_pca_biplot(meu_pca, repel = TRUE)
Olá gostaria de saber se tem como adicionar dois grupos de distinção como tratamento? Exemplo nível de adubação 0, 10, 20 e cobertura do solo soja, milho
Acho que vai depender a questão que deseja responder mas dá sim, geralmente eu coloco como variaveis suplementares.Neste caso, os grupos não terão nenhuma influência sobre os componentes principais, eles apenas ajudam a interpretar as dimensões da variabilidade. Procure por um professor chamado François Husson, ele publicou vários materiais explicando a técnica, e ele que criou esse pacote.
Neste caso específico significa apenas que a esfera maior é o centro, caso eu fosse desenhar uma elipse ali. Você pode customizar o tamanho da esfera se quiser por exemplo plotar a "qualidade da representação dentro de cada componte". Ficaria assim pointsize = "cos2" que nada mais é do que as coordenadas ao quadrado. Se ficou meio abstrato, pontue os principais pontos de dúvida que faço outro vídeo pra ajudar
Para obter essa resposta teriamos que entender o que queremos mostrar/analisar e ver se a resposta dada pelo PCA nos ajuda nisso. Por exemplo. 1. Eu quero analisar a variação e prever os preços de imoveis na minha cidade, eu tenho uma variável chamada preço(resposta/dependente) e outras 70(preditoras/independentes) como tamanho do jardim, tamanho da casa, area construida, qtd de banheiros, qtd de quatros, tamanho do terreto etc 2. Duas coisas que o PCA faz pra me ajudar nesse caso. Ele consegue pegar as 70 variáveis e transformar em duas variáveis não correlacionadas chamadas (componente 1 e componente 2) que irão conter grande parte das variações que estavam dentro daquelas 70 variáveis. Esses dois componentes me ajudará a prever corretamente os preços dos imóveis. 3. Outra coisa que o PCA pode ajudar e mostrar no gráfico associações e dissociações entre os elementos dentro desses componentes
@@carvalhoribeiro Obrigada por me responder, então, eu tenho dados de biomassa e biovolume relativos (em porcentagem) de zooplâncton marinho e gostaria de fazer um PCA com variáveis ambientais e de isótopos estáveis, quero saber quais grupos do zooplâncton (biomassa e biovolume relativos) explicam as variações dos valores de isótopos de carbono e nitrogênio ao longo do tempo (variação sazonal e temporal). Meu orientador sugeriu fazer a transformação de Hellinger nos dados, mas eu estou um pouco perdida ainda com isso. Tenho muitos dados e provavelmente vou precisar fazer mais de um PCA, não é?
@@MorganaLolaia Atenta aqui. Também trabalho com biovolume, porem de fitoplâncton. Estou bem perdida. Inclusive se você estiver conseguido rodar esse script que ele usa no vídeo e puder me enviar algum material, ficaria muito grata. Já deixo meu email aqui. vitoria.melo@unesp.br. Boa sorte pra gente :D
@@vkvmvih oi! Então, consegui rodar sim. Foi uma luta pq R não é fácil kkkkk podemos nos falar por e-mail. Daqui a pouco eu sento no computador e eu mando o script e te explico como eu fiz, pq eu utilizei o PCA pra achar quais das minhas variáveis independentes eu iria utilizar para posterior análises, utilizando o PC1 e o PC2. Não sei se é seu caso, não fiz gráficos.
Tentem usar um conjunto de dados nativo do R o iris...tentem isso #bliblioteca usada library(tidyverse) #dados usados 3 especies de plantas com e característica como largura e comprimento da petala e sepala data(iris) #vamos fazer a pca sem nenhum pacote iris %>% select(-Species) %>% prcomp(center = TRUE, scale. = TRUE) na primeira linha eu pego o conjunto iris, e então, seleciono todas menos especies por que é qualitativa(categórica) e pca só funciona com números, e então eu faço a pca...o resultado já vai sair os desvios padrão e os loadings. Esse sinal %>% significa "e então" no R. O center = TRUE e scale. = TRUE significa que estou padronizando os dados...mesmo se você estiver usando escalas diferentes, essas escalas não vão influenciar no PCA
Os simbolos maiores no gráfico de PCA significa o centro do agrupamento. Fica mais evidente quando você plota a ellipse. library(tidyverse) data(iris) iris %>% select(-Species) %>% prcomp(center=TRUE, scale.= TRUE) %>% factoextra::fviz_pca_biplot(geom.ind = "point", habillage = iris$Species, addEllipses = TRUE)
@@carvalhoribeiro Obrigado, nesse comando, "PCA(dados_agua...)" a padronização já é realizada? Se sim, pode me dizer a formula para eu citar na minha monografia, por favor
tente isso..no cabecalho do seu codigo faça isso windowsFonts(minha_fonte = windowsFont("Times New Roman")) e depois do ultimo parentes do seu gráfico adicione o + e depois isso theme(text = element_text(family = "minha_fonte"))
@@carvalhoribeiro Muito obrigada! Com esse comando ele altera a fonte dos eixos, do título e da legenda, mas a fonte de dentro do gráfico, das variáveis (esses parâmetros no fim de cada seta azul, por exemplo "oxig", "m_orgar", no caso do seu) não mudam.
Obrigado pelo video. Eu tenho uma dúvida básica... Como devo organizar meus dados para iniciar essa análise? Eu utilizo as médias dos tratamentos ou todas as repetições?
Para obter essa resposta teriamos que entender o que queremos mostrar/analisar e ver se a resposta dada pelo PCA nos ajuda nisso. Por exemplo. 1. Eu quero analisar a variação e prever os preços de imoveis na minha cidade, eu tenho uma variável chamada preço(resposta/dependente) e outras 70(preditoras/independentes) como tamanho do jardim, tamanho da casa, area construida, qtd de banheiros, qtd de quatros, tamanho do terreto etc 2. Duas coisas que o PCA faz pra me ajudar nesse caso. Ele consegue pegar as 70 variáveis e transformar em duas variáveis não correlacionadas chamadas (componente 1 e componente 2) que irão conter grande parte das variações que estavam dentro daquelas 70 variáveis. Esses dois componentes me ajudará a prever corretamente os preços dos imóveis, entender a contribuição de cada variável nos componentes etc. 3. Outra coisa que o PCA pode ajudar e mostrar no gráfico associações e dissociações entre os elementos dentro desses componentes
Sim tem o site do dono do pacote chama se datanovia. Tem os livros dele na Amazon mas no site acho mais barato. Você também por consultar o help do pacote com os argumentos usando o comando ?fviz_pca_biplot
Muito bom o vídeo, Marcelo. Obrigada por compartilhar seu conhecimento. Minha dúvida é a seguinte: como tirar os vetores que representam as variáveis no gráfico? Queria deixar só o nome das variáveis para deixar o gráfico mais limpo.
Que bom que o conteúdo tenha sido útil. Você pode experimentar algumas opções no código 1. Para apagar tudo use: invisible = "var" 2. Para apagar os vetores: geom.var = c("point","text")
Segui o tutorial e deu certo. Obrigado! Você explica muito bem. Uma dúvida: esse script já padroniza os dados da tabela ou é necessário um comando adicional como é o caso do deconstand do pacote vegan?
boa pergunta. Sim, ele já padroniza mas é sempre bom perguntar por que o recipes, o primcomp, prcomp nenhum deles padroniza antes. No caso do factomineR a função já vem como o scale como TRUE exemplo: PCA(X, scale.unit = TRUE, ncp = 5, ind.sup = NULL, quanti.sup = NULL, quali.sup = NULL, row.w = NULL, col.w = NULL, graph = TRUE, axes = c(1,2))
Olá Marcelo, primeiramente gostaria de te agradecer imensamente pelo vídeo. Ele está muito fácil de entender e você explica super bem. Eu estou com uma dúvida, gostaria muito que você me ajudasse (se possível, é claro). Quando você usa o comando sweep, com o código sqrt, você o está utilizando para padronizar os dados corretos? Como eu faria se eu tivesse que padronizar meus dados com logaritmo, no caso ficaria: log10(Tabela + 1) - (sendo Tabela o nome dos meus dados). Tentei substituir mas deu certo. Tentei padronizar a tabela de dados brutos antes de fazer a PCA e rodar o comando sweep, sem o termo sqrt, mas não sei se está correto. Desde já, agradeço
Olá Lorrayne quando eu uso a função sweep no exemplo o que estou fazendo é extraindo os loadings do PCA. Se eu fosse traduzir seria "pegue as coordenadas das variaveis e divida pela raiz quadrada dos autovalores associados a cada componente". sweep(dados, MARGIN = 2, STATS = media, FUN = "/") Eu não entendi muito bem o que você precisa, mas assumindo que você tem um conjunto de dados e deseja usar o log em todos os dados numéricos uma função útil seria usando o tidyverse ficaria assim: #instala o pacote tidyverse install.packages(tidyverse) #chama o pacote library(tidyverse) #lista o conjunto de dados iris pra ver o conteúdo das colunas note que tem 4 numericas e 1 categórica iris %>% head() #pegue o conjunto iris e então altere os valores onde for numerico para log10 iris %>% mutate(across(where(is.numeric), log10)) ps. embora a função acima funcione bem, sugiro sempre para trabalhos científicos tentar usar o pacote recipes do tidymodels o que facilita a reprodutibilidade, manutenção do código e interpretação caso seu artigo seja submetido no USA e Europa. Falo do recipes nos vídeos de pré processamento.
Você consegue listar por item se quiser..coloque o nome do objeto neste caso res_pca e depois acrecente o $ por exemplo res_pca$ind # ele vai listar vários elementos res_pca$ind$coord #ele vai listar as coordenadas
Amigo, bom dia. Parabens pelo seu trabalho, muito didatico e bem esclarecedor. So tenho uma duvida. Eu tenho um capitulo de minha tese em que trabalho com oito variaveis de qualidade de sementes (numericas), oito locais de coleta (fator) e duas temperaturas de germinação (fator), como que trabalho isso no PCA? No seu exemplo vc so tem uma variavel categorica que é LOCAL, como que trabalho quando temos mais de uma? Abraços e aguardo retorno.
Bom, a primeira coisa que eu faria. 1. Por que eu optei por usar PCA ? 2. Se for pra reduzir o número de variáveis, uma opção dado que seu problema envolve mais variáveis categóricas, seria usar MCA(Análise de correspondência multipla) ao invés de PCA. 3. Se não for redução qual seria o objetivo ?
@@carvalhoribeiro certo... Até agora nunca conseguir fazer isso... Por exemplo... O nome de minhas variáveis são: P2, P2... Mas no PCA só aparece 1, 2...
@@joaocarlosmorais2359 Realmente não sei dizer. O nome da variável deve aparecer normalmente no gráfico como ali. Oxigenio, N, M Organica etc... Se você se referir aos nomes dos pontos de dados, esses realmente não irão aparecer o nome, apenas o número dele.
@@carvalhoribeiro e João Carlos Morais, seguindo o passo a passo do vídeo que o Marcelo ensina a transformar a primeira coluna em categórica, eu consegui fazer "aparecer o nome"... Segue script utilizado: #Tirar a coluna cliente e colocar ela como rótulo de linha dados
Obrigado Marcelo pelo vídeo, gostei muito. Tenho uma pergunta: Como faço para trocar o cor dos pontos dentro do gráfico, no meu caso eu tenho três épocas de colheita, mais quando finalizo o gráfico as colheitas aparecem como o mesmo cor de ponto, sendo que o nome das colheitas sim aparecem.
@@carvalhoribeiroprofessor, e é possível escolher as cores para o conjunto de amostras por espécie? O argumento da um conjunto aleatório. É possível ser questionado pq as cores nao são adaptadas para pessoas daltônicas. Obrigado
pra colocar a setas pretas adiciona esse argumento após pointsize por exemplo. col.var = "black" . Pra deixar o gráfico mais limpo experimente retirar todos os códigos citados e testar apeas "fviz_pca_biplot()" depois vai adicionando o que desejar.
tem várias formas de fazer vou passar duas que você vai colocar na linha debaixo do seu código. #manual scale_fill_manual(values = c("grey30", "red", "lightblue")) # ou usando o gradiente brewer com cores amigáveis para daltonicos scale_fill_brewer(palette = "BrBG")
neste caso do exemplo aí é só adicionar o argumento abaixo e pronto. addEllipses = TRUE Sempre que precisar separar por grupo é necessário ter uma variável categória que representa esse grupo e a quantidade de níveis que tiver essa variável, vai ser a quantidade de cluster que será formado.
Detalhe importante: Em 7:20 a função prcomp da base R não converte automaticamente os dados pra scale, neste caso a sugestão é usar "prcomp(scale = TRUE, center = TRUE)". Desta forma os loadings serão apresentados como resultado de saída na tela.
Muito obrigado pelo compartilhamento de conhecimento, Marcelo. Ótimos exemplos e didática. Abraço.
Muito obrigada pelo vídeo, Professor! Excelente!
fico feliz que o conteúdo tenha sido útil pra você
Valeu demais pelo conteúdo professor, tem sido muito útil por aqui. Sucesso pra você!
fico contente que o conteúdo tenha sido útil pra você
Perfeito! Ajudou muito. Obrigado!
fico feliz que o conteúdo tenha sido útil
Muito obrigado, professor.
fico feliz que o conteúdo tenha sido util pra você Izaias
Vídeo excelente! Parabéns!!! 😁
fico feliz que o conteúdo tenha sido útil pra você
Obrigado pelo vídeo.
Como faço para evitar a sobreposição de pontos, quando há muitas observações?
dentro da função *fviz_pca_biplot* por exemplo use o argumento *repel = TRUE*
Perfeito, Marcelo.
Parabéns belo excelente tutorial. Gostaria de alterar a legenda de um gráfico biplot (Fil.) inserindo na ordem cronológica correta uma variável meses (jan, fev, mar...) . No meu gráfico eles estão aparecendo em ordem alfabética. Você pode me auxiliar?
essa eu vou ficar devendo, eu também não sei como fazer isso
Boa noite Professor,
Gostaria de uma orientação quanto a plotar o gráfico da PCA em 3D. Estou usando o pacote rgl. Com o comando (plot3d(pca$scores[,1:3], col = "red", type = "p") eu consigo plotar os scores, entretanto, todas os meus pontos ficam vermelhos, sendo que tenho dois conjuntos de amostras. Como poderia estar discriminado para as duas para terem cores diferentes? Excelente aula Professor.
Este pacote não conheço. Os que uso são 2D tente dar uma procurada no Stackoverflow
Meus parabéns, muito didático o vídeo. Obrigada por nos oferecer essas informações. Minha dúvida: como faço para aumentar o tamanho das letras e números no gráfico? Desde já agradeço 😊
Você pode usar as funções normais do ggplot2 após seu código. Ficaria assim
fviz_pca_biplot(iris_pca) + #este aqui é seu código
theme(text = element_text(size=25),
axis.text.x = element_text(angle=90, hjust=1),
plot.title = element_text(size=35))
pra você saber quais outroa argumentos(opções de formatação ele permite digite isso no seu R.
?theme
Parabéns pelo vídeo, gostaria de saber como agrupar esses vários pontos (bolinhas) que foi gerado no gráfico, para representar por apenas uma bolinha que represente a média delas?
Fico feliz que o conteúdo tenha sido útil. Não sei como fazer isso, mas esses pontos são as coordenadas dos indivíduos dentro do componente. Se for ajustar tem que ser no
res_pca$coord
Olá, obrigada pelo belo vídeo! Gostaria de saber (se possível) como adiciona uma 3a dimensão (PCA3)?
No gráfico não é possível fazer. Mas caso você vá fazer modelos com os dados do PCA você pode usar vários componentes sim, inclusive você pode definir uma grade com números de componentes e rodar vários modelos e ele mostrará qual número de componentes é o ideal. Eu fiz uma playlist que mostra como fazer modelos ruclips.net/p/PLN6VD2VdqF6eVMoMrR8pDQ0MCfTWRHOk2
@@carvalhoribeiro Obrigada pelo retorno.
Adoro suas aulas professor, agora finalmente aprendi! Gostaria de saber como distribuir melhor as setas, pq algumas ficaram sobrepostas e não é possível visualizar os nomes das variáveis nos meus dados.
fico contente que o conteúdo tenha sido útil, se tiver alguma dúvida quanto a interpretação do PCA eu fiz um vídeo também: ruclips.net/video/BmeBIWW4fsI/видео.html
Quando tem muitas variáveis fica muito truncado mesmo e uma forma de dar uma melhora é usar o argumento repel = TRUE
exemplo: fviz_pca_biplot(meu_pca, repel = TRUE)
Muito obrigado pela ajuda, me salvou!!!! Só fiquei com uma dúvida: como faço pra obter a matriz de correlação das variáveis utilizadas na PCA?
res_pca$var$cor para variáveis e res_pca$ind$cor para individuos
exemplo como pode ser usado junto com corrplot (vou usar o iris dataset)
res_pca
Olá gostaria de saber se tem como adicionar dois grupos de distinção como tratamento? Exemplo nível de adubação 0, 10, 20 e cobertura do solo soja, milho
Acho que vai depender a questão que deseja responder mas dá sim, geralmente eu coloco como variaveis suplementares.Neste caso, os grupos não terão nenhuma influência sobre os componentes principais, eles apenas ajudam a interpretar as dimensões da variabilidade. Procure por um professor chamado François Husson, ele publicou vários materiais explicando a técnica, e ele que criou esse pacote.
Oi Marcelo, obrigada por disponibilizar essa aula. Tenho uma dúvida, o que significa o tamanho das esferas na PCA?
Neste caso específico significa apenas que a esfera maior é o centro, caso eu fosse desenhar uma elipse ali. Você pode customizar o tamanho da esfera se quiser por exemplo plotar a "qualidade da representação dentro de cada componte". Ficaria assim
pointsize = "cos2" que nada mais é do que as coordenadas ao quadrado. Se ficou meio abstrato, pontue os principais pontos de dúvida que faço outro vídeo pra ajudar
Excelente explicação. Gostaria de saber se é possível fazer o PCA a partir de dados de abundância relativa?
Para obter essa resposta teriamos que entender o que queremos mostrar/analisar e ver se a resposta dada pelo PCA nos ajuda nisso. Por exemplo.
1. Eu quero analisar a variação e prever os preços de imoveis na minha cidade, eu tenho uma variável chamada preço(resposta/dependente) e outras 70(preditoras/independentes) como tamanho do jardim, tamanho da casa, area construida, qtd de banheiros, qtd de quatros, tamanho do terreto etc
2. Duas coisas que o PCA faz pra me ajudar nesse caso. Ele consegue pegar as 70 variáveis e transformar em duas variáveis não correlacionadas chamadas (componente 1 e componente 2) que irão conter grande parte das variações que estavam dentro daquelas 70 variáveis. Esses dois componentes me ajudará a prever corretamente os preços dos imóveis.
3. Outra coisa que o PCA pode ajudar e mostrar no gráfico associações e dissociações entre os elementos dentro desses componentes
@@carvalhoribeiro Obrigada por me responder, então, eu tenho dados de biomassa e biovolume relativos (em porcentagem) de zooplâncton marinho e gostaria de fazer um PCA com variáveis ambientais e de isótopos estáveis, quero saber quais grupos do zooplâncton (biomassa e biovolume relativos) explicam as variações dos valores de isótopos de carbono e nitrogênio ao longo do tempo (variação sazonal e temporal). Meu orientador sugeriu fazer a transformação de Hellinger nos dados, mas eu estou um pouco perdida ainda com isso. Tenho muitos dados e provavelmente vou precisar fazer mais de um PCA, não é?
@@MorganaLolaia Atenta aqui. Também trabalho com biovolume, porem de fitoplâncton. Estou bem perdida. Inclusive se você estiver conseguido rodar esse script que ele usa no vídeo e puder me enviar algum material, ficaria muito grata. Já deixo meu email aqui. vitoria.melo@unesp.br. Boa sorte pra gente :D
@@vkvmvih oi! Então, consegui rodar sim. Foi uma luta pq R não é fácil kkkkk podemos nos falar por e-mail. Daqui a pouco eu sento no computador e eu mando o script e te explico como eu fiz, pq eu utilizei o PCA pra achar quais das minhas variáveis independentes eu iria utilizar para posterior análises, utilizando o PC1 e o PC2. Não sei se é seu caso, não fiz gráficos.
Tentem usar um conjunto de dados nativo do R o iris...tentem isso
#bliblioteca usada
library(tidyverse)
#dados usados 3 especies de plantas com e característica como largura e comprimento da petala e sepala
data(iris)
#vamos fazer a pca sem nenhum pacote
iris %>%
select(-Species) %>%
prcomp(center = TRUE, scale. = TRUE)
na primeira linha eu pego o conjunto iris, e então, seleciono todas menos especies por que é qualitativa(categórica) e pca só funciona com números, e então eu faço a pca...o resultado já vai sair os desvios padrão e os loadings. Esse sinal %>% significa "e então" no R.
O center = TRUE e scale. = TRUE significa que estou padronizando os dados...mesmo se você estiver usando escalas diferentes, essas escalas não vão influenciar no PCA
Ótimo conteúdo. Só uma dúvida, por que há bolas maiores e outras menores no gráfico? Existe algum tipo de grandeza ?
Os simbolos maiores no gráfico de PCA significa o centro do agrupamento. Fica mais evidente quando você plota a ellipse.
library(tidyverse)
data(iris)
iris %>%
select(-Species) %>%
prcomp(center=TRUE, scale.= TRUE) %>%
factoextra::fviz_pca_biplot(geom.ind = "point",
habillage = iris$Species,
addEllipses = TRUE)
@@carvalhoribeiro Obrigado, nesse comando, "PCA(dados_agua...)" a padronização já é realizada? Se sim, pode me dizer a formula para eu citar na minha monografia, por favor
por padrão sim, mas você pode declarar também pra ficar mais fácil a comunicação
pca_agua
Obrigado! Muito bem explicado
Obrigado
Oi, Marcelo! Sabe me informar como modificar a fonte dos plots? Gostaria de usar times new roman em tudo.
tente isso..no cabecalho do seu codigo faça isso windowsFonts(minha_fonte = windowsFont("Times New Roman"))
e depois do ultimo parentes do seu gráfico adicione o + e depois isso
theme(text = element_text(family = "minha_fonte"))
@@carvalhoribeiro Muito obrigada! Com esse comando ele altera a fonte dos eixos, do título e da legenda, mas a fonte de dentro do gráfico, das variáveis (esses parâmetros no fim de cada seta azul, por exemplo "oxig", "m_orgar", no caso do seu) não mudam.
Obrigado pelo video. Eu tenho uma dúvida básica... Como devo organizar meus dados para iniciar essa análise? Eu utilizo as médias dos tratamentos ou todas as repetições?
Para obter essa resposta teriamos que entender o que queremos mostrar/analisar e ver se a resposta dada pelo PCA nos ajuda nisso. Por exemplo.
1. Eu quero analisar a variação e prever os preços de imoveis na minha cidade, eu tenho uma variável chamada preço(resposta/dependente) e outras 70(preditoras/independentes) como tamanho do jardim, tamanho da casa, area construida, qtd de banheiros, qtd de quatros, tamanho do terreto etc
2. Duas coisas que o PCA faz pra me ajudar nesse caso. Ele consegue pegar as 70 variáveis e transformar em duas variáveis não correlacionadas chamadas (componente 1 e componente 2) que irão conter grande parte das variações que estavam dentro daquelas 70 variáveis. Esses dois componentes me ajudará a prever corretamente os preços dos imóveis, entender a contribuição de cada variável nos componentes etc.
3. Outra coisa que o PCA pode ajudar e mostrar no gráfico associações e dissociações entre os elementos dentro desses componentes
Prof, há algum tutorial ou material para consultar que traga todas as possibilidades de funções para editar o gráfico? Muito obrigado
Sim tem o site do dono do pacote chama se datanovia. Tem os livros dele na Amazon mas no site acho mais barato. Você também por consultar o help do pacote com os argumentos usando o comando ?fviz_pca_biplot
Muito bom o vídeo, Marcelo. Obrigada por compartilhar seu conhecimento. Minha dúvida é a seguinte: como tirar os vetores que representam as variáveis no gráfico? Queria deixar só o nome das variáveis para deixar o gráfico mais limpo.
Que bom que o conteúdo tenha sido útil. Você pode experimentar algumas opções no código
1. Para apagar tudo use: invisible = "var"
2. Para apagar os vetores: geom.var = c("point","text")
Muito obrigada.
muito bom o seu canal. parabéns!
Que bom que foi útil
Segui o tutorial e deu certo. Obrigado! Você explica muito bem. Uma dúvida: esse script já padroniza os dados da tabela ou é necessário um comando adicional como é o caso do deconstand do pacote vegan?
boa pergunta. Sim, ele já padroniza mas é sempre bom perguntar por que o recipes, o primcomp, prcomp nenhum deles padroniza antes. No caso do factomineR a função já vem como o scale como TRUE exemplo:
PCA(X, scale.unit = TRUE, ncp = 5, ind.sup = NULL, quanti.sup = NULL, quali.sup = NULL, row.w = NULL, col.w = NULL, graph = TRUE, axes = c(1,2))
Olá Marcelo, primeiramente gostaria de te agradecer imensamente pelo vídeo. Ele está muito fácil de entender e você explica super bem.
Eu estou com uma dúvida, gostaria muito que você me ajudasse (se possível, é claro).
Quando você usa o comando sweep, com o código sqrt, você o está utilizando para padronizar os dados corretos? Como eu faria se eu tivesse que padronizar meus dados com logaritmo, no caso ficaria: log10(Tabela + 1) - (sendo Tabela o nome dos meus dados). Tentei substituir mas deu certo. Tentei padronizar a tabela de dados brutos antes de fazer a PCA e rodar o comando sweep, sem o termo sqrt, mas não sei se está correto.
Desde já, agradeço
Olá Lorrayne quando eu uso a função sweep no exemplo o que estou fazendo é extraindo os loadings do PCA. Se eu fosse traduzir seria "pegue as coordenadas das variaveis e divida pela raiz quadrada dos autovalores associados a cada componente".
sweep(dados, MARGIN = 2, STATS = media, FUN = "/")
Eu não entendi muito bem o que você precisa, mas assumindo que você tem um conjunto de dados e deseja usar o log em todos os dados numéricos uma função útil seria usando o tidyverse ficaria assim:
#instala o pacote tidyverse
install.packages(tidyverse)
#chama o pacote
library(tidyverse)
#lista o conjunto de dados iris pra ver o conteúdo das colunas note que tem 4 numericas e 1 categórica
iris %>% head()
#pegue o conjunto iris e então altere os valores onde for numerico para log10
iris %>% mutate(across(where(is.numeric), log10))
ps. embora a função acima funcione bem, sugiro sempre para trabalhos científicos tentar usar o pacote recipes do tidymodels o que facilita a reprodutibilidade, manutenção do código e interpretação caso seu artigo seja submetido no USA e Europa. Falo do recipes nos vídeos de pré processamento.
Como faz pra colocar mais de 10 variáveis no Summary?
Parabéns pelo canal!
Você consegue listar por item se quiser..coloque o nome do objeto neste caso res_pca e depois acrecente o $ por exemplo
res_pca$ind # ele vai listar vários elementos
res_pca$ind$coord #ele vai listar as coordenadas
Amigo, bom dia. Parabens pelo seu trabalho, muito didatico e bem esclarecedor.
So tenho uma duvida. Eu tenho um capitulo de minha tese em que trabalho com oito variaveis de qualidade de sementes (numericas), oito locais de coleta (fator) e duas temperaturas de germinação (fator), como que trabalho isso no PCA? No seu exemplo vc so tem uma variavel categorica que é LOCAL, como que trabalho quando temos mais de uma? Abraços e aguardo retorno.
Bom, a primeira coisa que eu faria.
1. Por que eu optei por usar PCA ?
2. Se for pra reduzir o número de variáveis, uma opção dado que seu problema envolve mais variáveis categóricas, seria usar MCA(Análise de correspondência multipla) ao invés de PCA.
3. Se não for redução qual seria o objetivo ?
Marcelo, obrigado por compartilhar o conhecimento! Queria saber o seguinte: como posso colocar o nome dos pontos (labels) diretamente neles?
é só apagar o geom.ind = "point" mas eu não recomendo fazer isso com muitas variáveis por vai truncar seu gráfico.
@@carvalhoribeiro certo... Até agora nunca conseguir fazer isso... Por exemplo... O nome de minhas variáveis são: P2, P2... Mas no PCA só aparece 1, 2...
@@joaocarlosmorais2359 Realmente não sei dizer. O nome da variável deve aparecer normalmente no gráfico como ali. Oxigenio, N, M Organica etc... Se você se referir aos nomes dos pontos de dados, esses realmente não irão aparecer o nome, apenas o número dele.
@@carvalhoribeiro e João Carlos Morais, seguindo o passo a passo do vídeo que o Marcelo ensina a transformar a primeira coluna em categórica, eu consegui fazer "aparecer o nome"...
Segue script utilizado:
#Tirar a coluna cliente e colocar ela como rótulo de linha
dados
@@fagnerjr.5857 que bom!!! Vou tentar!!!
Marcelo, é possível mudar a escala dos eixos? Obrigada
é possível sim ajustando os rótulos eu fiz o exemplo abaixo apenas no eixo X
library(FactoMineR)
library(factoextra)
iris_pca
Obrigado Marcelo pelo vídeo, gostei muito. Tenho uma pergunta: Como faço para trocar o cor dos pontos dentro do gráfico, no meu caso eu tenho três épocas de colheita, mais quando finalizo o gráfico as colheitas aparecem como o mesmo cor de ponto, sendo que o nome das colheitas sim aparecem.
a configuração pra trocar a cor fica em fill.ind = seu_conjunto_dados$variavel_nome_das_colheitas
@@carvalhoribeiroprofessor, e é possível escolher as cores para o conjunto de amostras por espécie? O argumento da um conjunto aleatório. É possível ser questionado pq as cores nao são adaptadas para pessoas daltônicas. Obrigado
olá, como faço para deixar a cor das setas pretas?, deixar mais limpo visualmente.
pra colocar a setas pretas adiciona esse argumento após pointsize por exemplo. col.var = "black" . Pra deixar o gráfico mais limpo experimente retirar todos os códigos citados e testar apeas "fviz_pca_biplot()" depois vai adicionando o que desejar.
oi marcelo e se eu quiser mudar a cor dessas bolinhas... como faço?
tem várias formas de fazer vou passar duas que você vai colocar na linha debaixo do seu código.
#manual
scale_fill_manual(values = c("grey30", "red", "lightblue"))
# ou usando o gradiente brewer com cores amigáveis para daltonicos scale_fill_brewer(palette = "BrBG")
Marcelo, supondo que eu tenha que fazer três cluster nesse gráfico de PCA, os circulando com uma elipse, é possível? Como poderia fazer?
neste caso do exemplo aí é só adicionar o argumento abaixo e pronto.
addEllipses = TRUE
Sempre que precisar separar por grupo é necessário ter uma variável categória que representa esse grupo e a quantidade de níveis que tiver essa variável, vai ser a quantidade de cluster que será formado.
No fill você colocou "local de coleta". Mas como seria se eu não quisesse que aparecesse nenhum nome na legenda?
Experimente colocar isso na frente do código
+ theme(legend.title = element_blank())
caso queira tirar a legenda
+ theme(legend.position = "none")
@@carvalhoribeiro obrigada🥰
@@nikerllyamaral3024 Nâo há de que. desejo sucesso em suas pesquisas