Visualizando e analisando dados de espécies

No Dicas de R dessa semana, iremos analisar alguns dados sobre espécies, utilizando a base de dados AnAge, disponibilizada no pacote (não disponível no CRAN) hagr. Para instalar ele, devemos rodar o código:


devtools::install_github("datawookie/hagr")

Após isso, basta carregar o pacote e teremos acesso aos dados.

library(hagr)
library(tidyverse)
library(ggplot2)
library(wordcloud2)

dados <- age

levels(factor(dados$data_quality))

dados_limpos <- dados %>% filter((data_quality == "high" | data_quality == "acceptable") &
kingdom == "Animalia" &
(sample_size == "large" | sample_size == "medium"),
phylum == "Chordata")

Devemos notar que o pessoal aqui da Análise Macro não é especializado em biologia, e as ferramentas utilizadas aqui no Dicas têm intuito de serem apresentadas apenas como modos de utilizar a programação em R, logo se houverem erros específicos ao tema, comentários são bem-vindos. Os dados contêm os nomes de cada espécie, e, como no post de semana passada, pode ser interessante verificar os animais com maior quantidade de espécies. Iremos fazer isso através de um wordcloud:



nomes <- dados_limpos %>% select(common_name) %>%
mutate(principal = word(common_name, -1))

wordcloud2(table(unlist(nomes$principal)))

Como podemos ver, alguns dos animais com mais espécies são sapos, lagartos, morcegos e ratos. Outra relação que podemos verificar é entre a massa dos animais e sua taxa de metabolismo:


met <- dados_limpos %>% filter(metabolic_rate_watt>0)

ggplot(data = met, aes(x=body_mass_g, y = metabolic_rate_watt, color = class)) +
geom_point()+scale_x_continuous(trans = 'log10') +
scale_y_continuous(trans = 'log10')+
labs(title = "Comparação entre massa corporal e taxa de metabolismo",
x="Massa", y="Taxa de metabolismo")+
theme_minimal()+
theme(legend.title = element_blank())

Como podemos ver, a relação é crescente para todos os grupos que possuem dados. É interessante notar que animais de sangue quente, como mamíferos e aves, parecem ter - na média- taxas de metabolismo maiores do que animais de sangue frio, como répteis e anfíbios. Vamos então testar estatisticamente essa relação, analisando as populações de mamíferos e répteis - supomos aqui que espécies são amostras independentes, o que pode não ser verdade dependendo de quão próximos são os animais identificados, ferindo o TCL e inviabilizando o teste t de Student. Ademais, os dados para mamíferos não aparentam seguir distribuição normal, como podemos ver a seguir:


par(mfrow=c(1,2))
qqnorm(log10(filter(met, class=='Mammalia')$metabolic_rate_watt)); qqline(log10(filter(met, class=='Mammalia')$metabolic_rate_watt))
qqnorm(log10(filter(met, class=='Reptilia')$metabolic_rate_watt)); qqline(log10(filter(met, class=='Reptilia')$metabolic_rate_watt))

shapiro.test(log10(filter(met, class=='Mammalia')$metabolic_rate_watt))
shapiro.test(log10(filter(met, class=='Reptilia')$metabolic_rate_watt))

A distribuição de taxa de metabolismo de mamíferos (à esquerda) apresenta caudas pesadas em comparação à normal.

Além dos gráficos Q-Q, a estatística de Wilk-Shapiro para a amostra tem p-valor 0.04, indicando rejeição da hipótese nula de normalidade. Tanto o gráfico Q-Q como a estatística para répteis (p-valor de 0.99) indicam normalidade dessa amostra, logo o problema só ocorre com mamíferos. Com isso, como a amostra para mamíferos é grande (n=167), iremos aplicar o teste t, dado que a média das observações será razoavelmente normal. Ademais, para contornar a possibilidade do tamanho da amostra não ser grande o bastante - e também o problema de independência dentro de cada amostra já observado -, também iremos aplicar o teste de Wilcoxon-Mann-Whitney, que é não-paramétrico e não faz hipóteses sobre as distribuições das amostras. Os códigos para os testes são:


t.test(log10(filter(met, class=='Mammalia')$metabolic_rate_watt), log10(filter(met, class=='Reptilia')$metabolic_rate_watt),
alternative = 'two.sided')

wilcox.test(log10(filter(met, class=='Mammalia')$metabolic_rate_watt), log10(filter(met, class=='Reptilia')$metabolic_rate_watt))

O resultado dos testes é de p-valor menor que 0.01 para ambos, evidenciando assim que a média entre as duas populações é estatisticamente diferente.


Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Como Construir um Monitor de Política Monetária Automatizado com Python?

Descubra como transformar dados do Banco Central em inteligência de mercado com um Monitor de Política Monetária Automatizado. Neste artigo, exploramos o desenvolvimento de uma solução híbrida (Python + R) que integra análise de sentimento das atas do COPOM, cálculo da Regra de Taylor e monitoramento da taxa Selic. Aprenda a estruturar pipelines ETL eficientes e a visualizar insights econômicos em tempo real através de um dashboard interativo criado com Shiny, elevando o nível das suas decisões de investimento.

Qual o efeito de um choque de juros sobre a inadimplência?

Neste exercício, exploramos a relação dinâmica entre o custo do crédito (juros na ponta) e o risco realizado (taxa de inadimplência) através de uma análise exploratória de dados e modelagem econométrica utilizando a linguagem de programação R.

Qual a relação entre benefícios sociais e a taxa de participação do mercado de trabalho?

Este exercício apresenta uma investigação econométrica sobre a persistente estagnação da taxa de participação no mercado de trabalho brasileiro no período pós-pandemia. Utilizando a linguagem R e dados públicos do IBGE e Banco Central, construímos um modelo de regressão linear múltipla com correção de erros robustos (Newey-West). A análise testa a hipótese de que o aumento real das transferências de renda (Bolsa Família/Auxílio Brasil) elevou o salário de reserva, desincentivando o retorno à força de trabalho.

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

como podemos ajudar?

Preencha os seus dados abaixo e fale conosco no WhatsApp

Boletim AM

Preencha o formulário abaixo para receber nossos boletins semanais diretamente em seu e-mail.