Ferramentas de Utilizador

Ferramentas de Site


planeco:roteiro:05-descr_base

Diferenças

Esta página mostra as diferenças entre as duas revisões da página.

Links para esta vista de comparação

Ambos os lados da revisão anteriorRevisão anterior
Próxima revisão
Revisão anterior
planeco:roteiro:05-descr_base [2018/02/26 19:33] melina.leiteplaneco:roteiro:05-descr_base [2024/01/09 18:38] (Atual) – edição externa 127.0.0.1
Linha 40: Linha 40:
   * Os dados têm valores extremos (//outliers//)?   * Os dados têm valores extremos (//outliers//)?
  
-Ao final deste tutorial esperamos que você consiga responder algumas dessas questões. +Ao final deste tutorial esperamos que você consiga responder algumas dessas questões. 
-  +
-===== Copiando os arquivos de dados e instalando pacotes =====  +
  
-As análises serão realizadas em ambiente R e para isso teremos que instalar alguns pacotes, mas não será necessário ter conhecimento prévio sobre o R, pois forneceremos todos os comandos necessários para a realização da atividade. 
- 
-1) Crie um diretório (pasta), copie os arquivos de dados abaixo para esse diretório e faça a descompactação no mesmo diretório: 
- 
- 
-  * {{ :planeco:roteiro:univar1.csv.zip |univar.zip}} 
-  * {{ :planeco:roteiro:autocorr.csv.zip|autocorr.zip}} 
-  
-/*  
-  * bivar 
-  * transf 
-*/ 
- 
-===== ANALISANDO DADOS UNIVARIADOS ===== 
- 
-1) importe o conjunto de dados para o R 
-<code> 
-univar1<-read.csv("univar1.csv") 
-</code> 
- 
-2) Use a função //head// para visualizar as 5 primeiras linhas do conjunto de dados 
-<code> 
-head(univar1) 
-</code> 
- 
-3) Inspecione o resumo dos dados 
-<code> 
-summary(univar1) 
-</code> 
  
-=== Conhecendo os dados: ===+===== Conhecendo os dados: =====
 Note que para variáveis numéricas (contínuas ou discretas) são apresentados os valores Mínimo, Máximo, Média, Mediana, Primeiro quartil, Terceiro quartil, e, no caso de haver dados faltantes, será apresentado o número de dados faltantes (linhas não preenchidas com valores), representados como "NA's". Para variáveis categóricas são apresentados os níveis existentes e quantas observações cada um dos níveis possui. Se houver dados faltantes, será apresentado o número de "NA's" Note que para variáveis numéricas (contínuas ou discretas) são apresentados os valores Mínimo, Máximo, Média, Mediana, Primeiro quartil, Terceiro quartil, e, no caso de haver dados faltantes, será apresentado o número de dados faltantes (linhas não preenchidas com valores), representados como "NA's". Para variáveis categóricas são apresentados os níveis existentes e quantas observações cada um dos níveis possui. Se houver dados faltantes, será apresentado o número de "NA's"
  
Linha 81: Linha 50:
 </WRAP> </WRAP>
  
-4) Se quiser, visualize o conjunto de dados como uma planilha convencional 
-<code> 
-edit(univar1) 
-</code> 
  
  
-===ANÁLISES GRÁFICAS===+ 
 +===== ANÁLISES GRÁFICAS =====
  
 <WRAP center round important 80%> <WRAP center round important 80%>
Linha 93: Linha 59:
 </WRAP> </WRAP>
  
-1) Vamos olhar como os dados das quatro variáveis numéricas estão distribuídos graficamente+1) __Vamos olhar como os dados das quatro variáveis numéricas estão distribuídos graficamente__ 
 + 
 + 
 **1.a) Histograma de frequência:** **1.a) Histograma de frequência:**
  
-<code>  + 
-par(mfrow c(2,2)) ##Aqui estamos criando um layout para colocar os quatro gráficos juntos +===== histograma =====
-hist(univar1$COMPRIMENTO_BICO) +
-hist(univar1$BIOMASSA_AVE) +
-hist(univar1$BIOMASSA_INSETOS) +
-hist(univar1$TAMANHO_SEMENTES) +
-par(mfrow=c(1,1)) ## voltando ao padrão de apresentar apenas 1 gráfico por página  +
-</code>+
  
 <WRAP center round box 80%> <WRAP center round box 80%>
-**O que está representado no eixo X e no eixo Y de cada um desses gráficos? 
-Quais são os valores que definem as classes usadas no eixo X desse histograma? São os mesmos valores para todos os gráficos? Poderiam ser usados diferentes valores para essas mesmas variáveis? Qual a melhor forma de definir as classes de um histograma? 
-** 
-</WRAP> 
  
-E se mudássemos para 20 classes no eixo X, como ficariam os gráficos? +**__Entenda o seu Histograma__**
-<code> +
-par(mfrow = c(2,2))  +
-hist(univar1$COMPRIMENTO_BICO, breaks = 20) +
-hist(univar1$BIOMASSA_AVE, breaks = 20) +
-hist(univar1$BIOMASSA_INSETOS, breaks = 20) +
-hist(univar1$TAMANHO_SEMENTES, breaks = 20) +
-par(mfrow=c(1,1))   +
-</code>+
  
 +  * O que está representado no eixo X e no eixo Y de cada um desses gráficos?
 +  * Quais são os valores que definem as classes usadas no eixo X desse histograma? 
 +  * São os mesmos valores para todos os gráficos? 
 +  * Poderiam ser usados diferentes valores para essas mesmas variáveis? 
 +  * Qual a melhor forma de definir as classes de um histograma?
  
-E se mudássemos para 10 classes no eixo Xcomo ficariam os gráficos+</WRAP> 
-<code> + 
-par(mfrow = c(2,2))  +Vamos mudar então o número de classes no eixo X e ver como ficam os gráficos. Refaça os gráficos para 20 classes e para 10 classes:
-hist(univar1$COMPRIMENTO_BICO, breaks = 10+
-hist(univar1$BIOMASSA_AVE, breaks = 10) +
-hist(univar1$BIOMASSA_INSETOS, breaks = 10) +
-hist(univar1$TAMANHO_SEMENTES, breaks = 10) +
-par(mfrow=c(1,1))   +
-</code>+
  
 /* /*
 Existem também os gráficos stem-and-leaf (ramos e folhas), que são uma outra forma de representar a distribuição dos dados brutos Existem também os gráficos stem-and-leaf (ramos e folhas), que são uma outra forma de representar a distribuição dos dados brutos
-Vantagens: **Dentro** de uma determinada classe (por exemplo, dentre os valores que estào entre 10 e 20) é possível visualizar se tem algum valor predominante (agregação) entre os valores à direita do "|" ou se os valores estão distribuídos mais homogeneamente+Vantagens: **Dentro** de uma determinada classe (por exemplo, dentre os valores que estão entre 10 e 20) é possível visualizar se tem algum valor predominante (agregação) entre os valores à direita do "|" ou se os valores estão distribuídos mais homogeneamente
 Desvantagens: Visualização um pouco mais confusa e maior dificuldade para representar valores contínuos, além de ser pouco utilizado em geral. Desvantagens: Visualização um pouco mais confusa e maior dificuldade para representar valores contínuos, além de ser pouco utilizado em geral.
  
 MOSTRAR ALGUMA FIGURA COM DOIS STEM-AND-LEAF, UM PARA DADOS CONTÍNUOS E OUTRO PARA DADOS DISCRETOS*/ MOSTRAR ALGUMA FIGURA COM DOIS STEM-AND-LEAF, UM PARA DADOS CONTÍNUOS E OUTRO PARA DADOS DISCRETOS*/
  
- +===== densidade ======
  
 **1.b) Gráfico de densidade** **1.b) Gráfico de densidade**
 Ao invés de usarmos classes, podemos representar a distribuição por meio de uma linha, que é obtida usando a densidade estimada (por uma função conhecida como //kernel//) de valores para "janelas" (//bandwidth//) muito pequenas. Ao invés de usarmos classes, podemos representar a distribuição por meio de uma linha, que é obtida usando a densidade estimada (por uma função conhecida como //kernel//) de valores para "janelas" (//bandwidth//) muito pequenas.
 Vamos ver como ficam as distribuições das nossas quatro variáveis numéricas: Vamos ver como ficam as distribuições das nossas quatro variáveis numéricas:
-<code> 
-par(mfrow = c(2,2))  
-plot(density(univar1$COMPRIMENTO_BICO)) 
-plot(density(univar1$BIOMASSA_AVE)) 
-plot(density(univar1$BIOMASSA_INSETOS)) 
-plot(density(univar1$TAMANHO_SEMENTES)) 
-par(mfrow=c(1,1))   
-</code> 
- 
-Podemos juntar esses dois gráficos em um só. Para isso, use o código abaixo: 
- 
-<code> 
-par(mfrow = c(2,2))  
-hist(univar1$COMPRIMENTO_BICO, prob=T ) 
-lines(density(univar1$COMPRIMENTO_BICO)) 
- 
-hist(univar1$BIOMASSA_AVE, prob=T) 
-lines(density(univar1$BIOMASSA_AVE)) 
- 
-hist(univar1$BIOMASSA_INSETOS, prob=T) 
-lines(density(univar1$BIOMASSA_INSETOS)) 
- 
-hist(univar1$TAMANHO_SEMENTES, prob=T) 
-lines(density(univar1$TAMANHO_SEMENTES)) 
-par(mfrow=c(1,1))   
-</code> 
- 
- 
-Podemos também mostrar, na parte inferior do gráfico de densidade, o número de observações em cada faixa do gráfico. Para isso vamos usar a função //rug()//  
-<code> 
-par(mfrow = c(2,2))  
-plot(density(univar1$COMPRIMENTO_BICO)) 
-rug(univar1$COMPRIMENTO_BICO, side=1) 
- 
-plot(density(univar1$BIOMASSA_AVE)) 
-rug(univar1$BIOMASSA_AVE, side=1) 
- 
-plot(density(univar1$BIOMASSA_INSETOS)) 
-rug(univar1$BIOMASSA_INSETOS, side=1) 
- 
-plot(density(univar1$TAMANHO_SEMENTES)) 
-rug(univar1$TAMANHO_SEMENTES, side=1) 
- 
-par(mfrow=c(1,1))   
-</code> 
- 
-Todas essas informações nos auxiliam para identificarmos a quais distribuições teóricas nossos dados se ajustam. 
  
 +===== boxplot =====
  
 **1.c) Box-plot ou Box-whiskers plot ou Five-numbers-summary** **1.c) Box-plot ou Box-whiskers plot ou Five-numbers-summary**
Linha 203: Linha 106:
  
 - Ordene a variável COMPRIMENTO_BICO do menor para o maior valor: - Ordene a variável COMPRIMENTO_BICO do menor para o maior valor:
-<code> + 
-(sort(univar1$COMPRIMENTO_BICO)) + 
-</code>+===== boxplot2 =====
  
 <WRAP center round box 80%> <WRAP center round box 80%>
-  * - Anote quantos dados existem (i.e. qual é o //n// da amostra)?+  * - Anote quantos dados existem (i.e. qual é o //n// da amostra?).
   * - Anote os valores mínimo e o máximo   * - Anote os valores mínimo e o máximo
-  * - Anote o valor que separa os dados ordenados em duas metades (i.e. o valor que representa 50% dos dados)+  * - Anote o valor que separa os dados ordenados em duas metades (i.e. o valor que representa 50% dos dados) 
   * - Anote o valor que separa os primeiros 25% valores dos restantes 75%   * - Anote o valor que separa os primeiros 25% valores dos restantes 75%
   * - Anote o valor que separa os primeiros 75% valores dos restantes 25%   * - Anote o valor que separa os primeiros 75% valores dos restantes 25%
Linha 225: Linha 128:
  
 Mas temos uma função que faz isso por nós: Mas temos uma função que faz isso por nós:
-<code> + 
-boxplot(univar1$COMPRIMENTO_BICO, range=0)  +===== outliers =====
-</code>+
  
 Confira se os valores utilizados pela função //boxplot// são iguais aos que você calculou Confira se os valores utilizados pela função //boxplot// são iguais aos que você calculou
Linha 248: Linha 150:
 </WRAP> </WRAP>
  
-Vamos fazer um boxplot modificado com os nossos dados de COMPRIMENTO_BICO 
-<code> 
-boxplot(univar1$COMPRIMENTO_BICO)  
-</code> 
  
 +===== boxplot3 =====
  
 <WRAP center round box 80%> <WRAP center round box 80%>
Linha 272: Linha 171:
    
 No nosso conjunto de dados, podemos avaliar se a biomassa de insetos apresenta diferentes distribuições em locais com diferentes níveis de distúrbio: No nosso conjunto de dados, podemos avaliar se a biomassa de insetos apresenta diferentes distribuições em locais com diferentes níveis de distúrbio:
-<code> 
-boxplot(univar1$BIOMASSA_INSETOS ~ univar1$NIVEL_DISTURBIO) 
-</code> 
  
 +===== boxplot4 =====
 <WRAP center round box 80%> <WRAP center round box 80%>
 **Avalie a posição das medianas, a distribuição dos valores entre os quartis, os valores máximos e mínimos, a simetria da distribuição, os //outliers// e indique se, a partir desses gráficos, você se sente confiante em afirmar se a biomassa de insetos difere ou não entre os dois níveis de distúrbio.** **Avalie a posição das medianas, a distribuição dos valores entre os quartis, os valores máximos e mínimos, a simetria da distribuição, os //outliers// e indique se, a partir desses gráficos, você se sente confiante em afirmar se a biomassa de insetos difere ou não entre os dois níveis de distúrbio.**
Linha 283: Linha 180:
 Existe uma forma bastante simples de calcular **"intervalos de confiança da mediana"** e que podem nos ajudar a tomar decisões a respeito da similaridade ou diferença de respostas. Esse método é baseado em técnicas de Monte Carlo((ver tópico de randomização e permutação)) e produz os valores limites para os intervalos de confiança da mediana. Existe um argumento (//notched//) que podemos inserir na função //boxplot()//, que permite que esses intervalos de confiança da mediana sejam visualizados como um estreitamento da caixa central do boxplot na região que estiver dentro do intervalo de confiança da mediana. Se esses estreitamentos não se sobrepuserem podemos admitir que os dois conjuntos de dados são diferentes.  Existe uma forma bastante simples de calcular **"intervalos de confiança da mediana"** e que podem nos ajudar a tomar decisões a respeito da similaridade ou diferença de respostas. Esse método é baseado em técnicas de Monte Carlo((ver tópico de randomização e permutação)) e produz os valores limites para os intervalos de confiança da mediana. Existe um argumento (//notched//) que podemos inserir na função //boxplot()//, que permite que esses intervalos de confiança da mediana sejam visualizados como um estreitamento da caixa central do boxplot na região que estiver dentro do intervalo de confiança da mediana. Se esses estreitamentos não se sobrepuserem podemos admitir que os dois conjuntos de dados são diferentes. 
  
-<code> 
-boxplot(univar1$BIOMASSA_INSETOS ~ univar1$NIVEL_DISTURBIO, notch=TRUE) 
-</code> 
  
-<WRAP center round box 80%> 
  
-**E agora, você está mais seguro(a) para afirmar se a biomassa de insetos difere ou não entre os dois níveis de distúrbio?** +=====CHECANDO O AJUSTE DOS DADOS A UMA DISTRIBUIÇÃO=====
- +
-</WRAP> +
- +
- +
-===CHECANDO O AJUSTE DOS DADOS A UMA DISTRIBUIÇÃO===+
  
 Agora vamos avaliar visualmente se as variáveis se distribuem de acordo com uma distribuição conhecida. Por simplicidade, vamos fazer isso com a **distribuição normal**, porém, o mesmo pode ser feito com outros tipos de distribuição. Agora vamos avaliar visualmente se as variáveis se distribuem de acordo com uma distribuição conhecida. Por simplicidade, vamos fazer isso com a **distribuição normal**, porém, o mesmo pode ser feito com outros tipos de distribuição.
- 
  
 <WRAP center round important 90%> <WRAP center round important 90%>
Linha 303: Linha 190:
 Nesse momento, em que estamos analisando a normalidade de uma variável isoladamente, estamos apenas compreendendo e descrevendo o tipo de dado que coletamos. Nesse momento, em que estamos analisando a normalidade de uma variável isoladamente, estamos apenas compreendendo e descrevendo o tipo de dado que coletamos.
 </WRAP> </WRAP>
- 
  
  
Linha 324: Linha 210:
 ATENÇÃO: Outra forma de representar os dados esperados para a distribuição normal é usar a distribuição normal padronizada, que tem média zero e desvio padrão = 1. Da mesma forma que descrito anteriormente,  os valores de mínimo e de máximo dos dados coletados serão utilizados para padronizar a escala do gráfico no eixo x. ATENÇÃO: Outra forma de representar os dados esperados para a distribuição normal é usar a distribuição normal padronizada, que tem média zero e desvio padrão = 1. Da mesma forma que descrito anteriormente,  os valores de mínimo e de máximo dos dados coletados serão utilizados para padronizar a escala do gráfico no eixo x.
 */ */
- 
-Vamos então aplicar as funções abaixo aos nossos dados: 
- 
-<code> 
-par(mfrow = c(2,2))  
- 
-qqnorm(univar1$COMPRIMENTO_BICO) 
-qqline(univar1$COMPRIMENTO_BICO) 
- 
-qqnorm(univar1$BIOMASSA_AVE) 
-qqline(univar1$BIOMASSA_AVE) 
- 
-qqnorm(univar1$BIOMASSA_INSETOS) 
-qqline(univar1$BIOMASSA_INSETOS) 
- 
-qqnorm(univar1$TAMANHO_SEMENTES) 
-qqline(univar1$TAMANHO_SEMENTES) 
- 
-par(mfrow=c(1,1))   
-</code> 
- 
  
  
 +===== qqplot2 =====
 <WRAP center round box 80%> <WRAP center round box 80%>
  
Linha 361: Linha 227:
  
  
-===AVALIANDO AUTOCORRELAÇÃO=== +=====AVALIANDO AUTOCORRELAÇÃO=====
- +
-Para essa parte do tutorial, importe o conjunto de dados "autocorr.csv" para o R e inspecione os dados: +
-<code> +
-autocorr<-read.csv("autocorr.csv"+
-head(autocorr) +
-summary(autocorr) +
-</code>+
  
  
Linha 389: Linha 248:
  
 Vejamos como ficam esses gráficos para os dados do conjunto **autocorr** que temos disponível para essa análise. Nesse arquivo temos os dados de dois transectos (x1 e x2) com 100 pontos cada.   Vejamos como ficam esses gráficos para os dados do conjunto **autocorr** que temos disponível para essa análise. Nesse arquivo temos os dados de dois transectos (x1 e x2) com 100 pontos cada.  
-<code> 
-lag.plot(autocorr$x1, do.lines = FALSE, diag=FALSE) 
  
-lag.plot(autocorr$x2, do.lines FALSE, diag=FALSE) + 
-</code>+===== autocorr2 =====
  
 <WRAP center round box 80%> <WRAP center round box 80%>
Linha 413: Linha 270:
  
  
-====ANALISANDO DADOS BIVARIADOS====+=====ANALISANDO DADOS BIVARIADOS=====
  
 Muitas vezes não estamos interessados em analisar a distribuição de uma variável //per se//, mas sim em analisar se existe alguma relação entre duas variáveis numéricas ordenadas.  Muitas vezes não estamos interessados em analisar a distribuição de uma variável //per se//, mas sim em analisar se existe alguma relação entre duas variáveis numéricas ordenadas. 
Linha 429: Linha 286:
   * {{ :planeco:roteiro:bivar.csv.zip|bivar.zip}}   * {{ :planeco:roteiro:bivar.csv.zip|bivar.zip}}
  
--Importe o arquivo para o R+- Importe o arquivo para o R
 +- Faça um gráfico de dispersão (ou //Gráfico XY//) e  descreva sua primeira impressão sobre a relação entre as variáveis. 
  
-<code> 
-bivar<-read.csv("bivar.csv") 
-head(bivar) 
-summary (bivar) 
-</code> 
  
-Faça um gráfico de dispersão (ou //Gráfico XY//) e  descreva sua primeira impressão sobre a relação entre as variáveis.  +===== bivariado2 =====
- +
-<code> +
-plot(bivar$y.l ~ bivar$x.l) +
-</code>+
  
 <WRAP center round box 80%> <WRAP center round box 80%>
Linha 450: Linha 299:
 Para tentar captar a tendência da relação, você poderia ir traçando pequenas linhas que buscassem a melhor relação entre os dados da variável y.l e da variável x.l ao longo de pequenos trechos da variável x.l, como se estivesse desenhando "à mão" Para tentar captar a tendência da relação, você poderia ir traçando pequenas linhas que buscassem a melhor relação entre os dados da variável y.l e da variável x.l ao longo de pequenos trechos da variável x.l, como se estivesse desenhando "à mão"
 Existe uma função que faz isso. Ela se chama //lowess// e pode ser aplicada da seguinte forma: Existe uma função que faz isso. Ela se chama //lowess// e pode ser aplicada da seguinte forma:
-<code> 
-plot(bivar$y.l ~ bivar$x.l) 
-lines(lowess(bivar$y.l ~ bivar$x.l)) 
-</code> 
  
 +
 +===== bivariado3 =====
 <WRAP center round box 80%> <WRAP center round box 80%>
 **E agora, suas respostas às 4 questões colocadas no início dessa seção mudariam?** **E agora, suas respostas às 4 questões colocadas no início dessa seção mudariam?**
Linha 460: Linha 307:
  
  
-Agora vamos fazer o gráfico de dispersão para outras duas variáveis y.n (resposta) e x.n (preditora): +Agora vamos fazer o gráfico de dispersão para outras duas variáveis y.n (resposta) e x.n (preditora). 
-<code> + 
-plot(bivar$y.n ~ bivar$x.n) + 
-lines(lowess(bivar$y.n ~ bivar$x.n)) +===== bivariado4 =====
-</code>+
  
 <WRAP center round box 80%> <WRAP center round box 80%>
Linha 471: Linha 317:
  
  
-Existe um gráfico no pacote //car// que nos mostra várias informações de uma relação entre duas variáveis e pode ajudar bastante no entendimento da relação.+Existe um gráfico que nos mostra várias informações de uma relação entre duas variáveis e pode ajudar bastante no entendimento da relação.
  
  
-<code> 
-scatterplot (bivar$y.l ~ bivar$x.l) 
-</code> 
  
-<code> +=====Transformando os dados:=====
-scatterplot (bivar$y.n ~ bivar$x.n) +
-</code> +
- +
- +
- +
-====Transformando os dados:====+
  
 Algumas vezes, a relação que observamos entre duas variáveis não é linear, mas gostaríamos de analisar essa relação dentro do escopo de uma Análise de Regressão Linear, em função das facilidades de trabalhar com esse tipo de análise. Para isso, precisamos recorrer aos recursos de **transformação dos dados**.  Algumas vezes, a relação que observamos entre duas variáveis não é linear, mas gostaríamos de analisar essa relação dentro do escopo de uma Análise de Regressão Linear, em função das facilidades de trabalhar com esse tipo de análise. Para isso, precisamos recorrer aos recursos de **transformação dos dados**. 
Linha 494: Linha 331:
 ==Logaritmo natural (ln)== ==Logaritmo natural (ln)==
 Vamos analisar a relação entre as variáveis COMPRIMENTO_BICO e BIOMASSA_AVE e verificar se a relação parece linear. Para isso vamos utilizar o gráfico síntese produzido pelo pacote //car//: Vamos analisar a relação entre as variáveis COMPRIMENTO_BICO e BIOMASSA_AVE e verificar se a relação parece linear. Para isso vamos utilizar o gráfico síntese produzido pelo pacote //car//:
-<code> 
-scatterplot(univar1$COMPRIMENTO_BICO ~ univar1$BIOMASSA_AVE) 
-</code> 
  
-Como podemos observar pelos boxplots laterais, nesse caso, aparentemente são os dados da variável Y que parecem estar afetando a linearidade da relação. Então, vamos transformar os dados de Y pelo logaritmo natural e ver se o ajuste melhora. 
  
-<code> + 
-scatterplot (log(univar1$COMPRIMENTO_BICO) ~ univar1$BIOMASSA_AVE) +===== transforma2 =====
-</code>+
  
 <WRAP center round box 80%> <WRAP center round box 80%>
planeco/roteiro/05-descr_base.1519673613.txt.gz · Última modificação em: 2024/01/09 18:38 (edição externa)