Ferramentas do usuário

Ferramentas do site


03_apostila:05-exploratoria

Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Ambos lados da revisão anterior Revisão anterior
Próxima revisão
Revisão anterior
03_apostila:05-exploratoria [2020/09/08 10:18]
adalardo [4. Análise Exploratória de Dados]
03_apostila:05-exploratoria [2023/08/15 21:45] (atual)
Linha 6: Linha 6:
 ====== 4. Análise Exploratória de Dados ====== ​ ====== 4. Análise Exploratória de Dados ====== ​
  
-Antes de iniciar uma análise propriamente dita, precisamos conhecer os dados e avaliar problemas. As variáveis coletadas são aleatórias e precisamos entender a variabilidade associada a elas e suas relações para poder partir para uma análise forma que irá testar as hipóteses a respeito dessa variabilidade. 
  
-Dentre os principais ​**objetivos** de uma AED podemos listar os seguintes:+Podemos conduzir a análise exploratória de dados de duas formas: 
 +  ​análise numérica: computar estatísticas descritivas;​ 
 +  ​análise gráficaexplorar o comportamento e a relação entre as variáveis através de gráficos.
  
-  * Detectar erros nos dados; +Nesse tópico ​utilizaremos ​os arquivos de dados:
-  * Detectar pontos extremos (//​outliers//​) e anomalias;​ +
-  * Compreender a estrutura dos dados coletados;​ +
-  * Indicar a melhor distribuição para modelar a variabilidade nos dados; +
-  * Avaliar preliminarmente se os dados apresentam dependência/​autocorrelação (espacial ou temporal). ​  +
-  * Avaliar se variáveis preditoras apresentam colinearidade;​ +
-  +
- +
- +
-Podemos implementar a análise exploratório de dados de duas formas: +
-  * análise numérica: ​ computa estatísticas descritivas;​ +
-  * análise gráfica: explora o comportamento e a relação entre as variáveis através de gráficos. +
- +
-Nesse tópico ​utlizaremos ​os arquivos de dados:+
   * [[dados:​dados-caixeta| Levantamento em caixetais:​]] {{dados:​caixeta.csv|caixeta.csv}}   * [[dados:​dados-caixeta| Levantamento em caixetais:​]] {{dados:​caixeta.csv|caixeta.csv}}
   * [[dados:​dados-esaligna| Dados de biomassa de árvores:]] {{:​dados:​esaligna.csv|esaligna.csv}}   * [[dados:​dados-esaligna| Dados de biomassa de árvores:]] {{:​dados:​esaligna.csv|esaligna.csv}}
Linha 37: Linha 25:
  
  
-A forma mais direta de se obter um resumo estatístico das variáveis num '''​data.frame'''​ é através da função ​'''​summary'''​. ​ Ela apresenta estatísticas descritivas para as variáveis numéricas.+A forma mais direta de se obter um resumo estatístico das variáveis num ''​data.frame''​ é através da função ''​summary''​. Ela apresenta estatísticas descritivas para as variáveis numéricas.
 <code rsplus> <code rsplus>
 > cax = read.csv("​caixeta.csv",​ header=TRUE,​ as.is=TRUE) > cax = read.csv("​caixeta.csv",​ header=TRUE,​ as.is=TRUE)
Linha 77: Linha 65:
  
  
-<box left red | //​**Exercício:​** ​ Estatísticas do Caixetal// > +<box left red | //​**Exercício:​** Estatísticas do Caixetal// > 
-Construa um '''​data.frame'''​ com os dados de **área basal** por '''​local'''​ e '''​parcela'''​.+Construa um ''​data.frame''​ com os dados de **área basal** por ''​local''​ e ''​parcela''​.
  
-Encontre a média e desvio padrão da área basal por '''​local'''​.+Encontre a média e desvio padrão da área basal por ''​local''​.
  
-Calcule o intervalo de confiança de 95% da área basal por '''​local'''​.+Calcule o intervalo de confiança de 95% da área basal por ''​local''​.
 </​box>​ </​box>​
  
Linha 104: Linha 92:
 </​code>​ </​code>​
  
-A função ​'''​hist'''​ também pode fornecer os dados do histograma, sem gerar o histograma propriamente dito:+A função ''​hist''​ também pode fornecer os dados do histograma, sem gerar o histograma propriamente dito:
 <code rsplus> <code rsplus>
 > hist( cax$dap, plot=FALSE ) > hist( cax$dap, plot=FALSE )
Linha 139: Linha 127:
 </​code>​ </​code>​
  
-Note  que o objeto gerado pela função ​'''​hist'''​ tem classes '''​histogram''',​ logo pode ser guardado e grafado posteriormente:​+Note que o objeto gerado pela função ''​hist''​ tem a classe ​''​histogram'',​ logo ele pode ser guardado e grafado posteriormente:​
 <code rsplus> <code rsplus>
 > dap.hist = hist( cax$dap, plot=FALSE ) > dap.hist = hist( cax$dap, plot=FALSE )
Linha 148: Linha 136:
 </​code>​ </​code>​
  
-Alguns parâmetros gráficos podem tornar o gráfico mais apresentável. ​ Esses parâmetros gráficos pode ser utilizados como //​argumentos//​ em diversas funções gráficas onde são pertinentes:​ +Alguns parâmetros gráficos podem tornar o gráfico mais apresentável. Esses parâmetros gráficos pode ser utilizados como //​argumentos//​ em diversas funções gráficas onde são pertinentes:​ 
-  *  ​'''​xlab'''​ e '''​ylab'''​ = nomes dos eixos X e Y, respectivamente;​ +  *  ''​xlab''​ e ''​ylab''​ = nomes dos eixos X e Y, respectivamente;​ 
-  * '''​main'''​ = nome do título do histograma;  +  * ''​main''​ = nome do título do histograma;  
-  *  ​'''​col'''​ = cor da barra (histograma),​ ou de linhas e símbolos plotados;+  *  ''​col''​ = cor da barra (histograma),​ ou de linhas e símbolos plotados;
 <code rsplus> <code rsplus>
 > hist( cax$dap[ cax$local=="​chauas"​ ], > hist( cax$dap[ cax$local=="​chauas"​ ],
Linha 161: Linha 149:
 </​code>​ </​code>​
  
-Muitas ​vêzes ​desejamos comparar gráficos, sendo útil termos mais de uma janela gráfica. ​ A função ​'''​X11()''​' (no UNIX) abre uma janela gráfica+Muitas ​vezes desejamos comparar gráficos, sendo útil termos mais de uma janela gráfica. A função ''​X11()''​ abre janelas gráficas
-sendo que podemos abrir várias:+sendo que podemos abrir várias ​janelas:
 <code rsplus> <code rsplus>
 > hist( cax$dap[ cax$local=="​chauas"​ ] , main="​Chauás"​ ) > hist( cax$dap[ cax$local=="​chauas"​ ] , main="​Chauás"​ )
Linha 179: Linha 167:
 </​code>​ </​code>​
  
-A função ​'''​dev.off()'''​ fecha uma janela gráfica e faz parte de um conjunto de funções que manipula as janelas gráficas. ​ Nessa manipulação,​ somente uma janela gráfica pode estar '''​ACTIVE'''​ de cada vez, e as janelas são consideradas como estando num círculo, onde podemos passar de uma para outra: +A função ''​dev.off()''​ fecha uma janela gráfica e faz parte de um conjunto de funções que manipula as janelas gráficas. Nessa manipulação,​ somente uma janela gráfica pode estar '''​ACTIVE'''​ de cada vez, e as janelas são consideradas como estando num círculo, onde podemos passar de uma para outra: 
-  * '''​dev.off()'''​ - fecha a janela gráfica; +  * ''​dev.off()''​ - fecha a janela gráfica; 
-  * '''​dev.cur()'''​ - diz qual janela gráfica está '''​ACTIVE''';​ +  * ''​dev.cur()''​ - diz qual janela gráfica está ''​ACTIVE'';​ 
-  * '''​dev.set(which=dev.cur())'''​ - define qual janela deverá ficar ativa, o argumento ​'''​which'''​ deve ser o número da janela;  +  * ''​dev.set(which=dev.cur())''​ - define qual janela deverá ficar ativa, o argumento ''​which''​ deve ser o número da janela;  
-  * '''​dev.next(which=dev.cur())'''​ - informa o número da próxima janela gráfica; +  * ''​dev.next(which=dev.cur())''​ - informa o número da próxima janela gráfica; 
-  * '''​dev.prev(which=dev.cur())'''​ - informa o número da janela gráfica anterior; +  * ''​dev.prev(which=dev.cur())''​ - informa o número da janela gráfica anterior; 
-  * '''​graphics.off()'''​ - fecha todas as janelas gráficas.+  * ''​graphics.off()''​ - fecha todas as janelas gráficas.
 <code rsplus> <code rsplus>
 > X11() > X11()
Linha 213: Linha 201:
 Construa um histograma da altura das árvores do caixetal. Construa um histograma da altura das árvores do caixetal.
  
-Construa histogramas da altura das árvores para os diferentes caixetais ('''​local'''​).+Construa histogramas da altura das árvores para os diferentes caixetais (''​local''​).
  
 Há diferenças entre as estruturas (distribuição de tamanhos) dos caixetais? Há diferenças entre as estruturas (distribuição de tamanhos) dos caixetais?
Linha 219: Linha 207:
  
 <box left red | //​**Exercício:​** Diâmetros de Árvores de Eucalipto// > <box left red | //​**Exercício:​** Diâmetros de Árvores de Eucalipto// >
-Construa um histogram ​do DAP das árvores de //E. saligna//​. ​ Procure interpretar o histograma.+Construa um histograma ​do DAP das árvores de //E. saligna//. Procure interpretar o histograma.
 </​box>​ </​box>​
  
Linha 228: Linha 216:
 ==== Gráficos de Densidade ==== ==== Gráficos de Densidade ====
  
-Uma outra forma de explorar a distribuição de uma variável é trabalharmos com um gráfico de //​densidade//​. ​ O gráfico de densidade é gerado como se fosse um histograma com uma classe móvel, isto é, a classe que tem uma certa amplitude, se move da esquerda para direita e em cada ponto estima a //densidade probabilística da variável//​. ​   Tecnicamente,​ a função ​'''​density'''​ é um **estimador de densidade de kernel gaussiano**.+Uma outra forma de explorar a distribuição de uma variável é trabalharmos com um gráfico de //​densidade//​. O gráfico de densidade é gerado como se fosse um histograma com uma classe móvel, isto é, a classe que tem uma certa amplitude, se move da esquerda para direita e em cada ponto estima a //densidade probabilística da variável//​. Tecnicamente,​ a função ''​density''​ é um **estimador de densidade de kernel gaussiano**.
  
-A função ​'''​density'''​ faz a análise da densidade, mas não faz o gráfico, devendo ser utilizada juntamente com a função ​'''​plot''',​ +A função ''​density''​ faz a análise da densidade, mas não faz o gráfico, devendo ser utilizada juntamente com a função ''​plot'',​ 
-para criar o gráfico, ou a função ​'''​lines''',​ para adicionar uma linha a um gráfico já criado:+para criar o gráfico, ou a função ''​lines'',​ para adicionar uma linha a um gráfico já criado:
 <code rsplus> <code rsplus>
 > plot( density(cax$dap) ) > plot( density(cax$dap) )
Linha 237: Linha 225:
 </​code>​ </​code>​
  
-O parâmetro que controla o comportamento do estimador de densidade é a amplitude da janela de observação //​bandwidth//​ ('''​bw'''​). ​ Janela pequenasgeram estimativas de densidade com viés pequeno, mas com variância grande. Janelas grandes geram estimativas de densidade com viés grande, mas pequena variância. O ideal é o equilíbrio entre os extremos e o R possui algumas funções que buscam automaticamente da //​bandwidth//​ apropriada, mas o analista tem controle sobre esse parâmetro:+O parâmetro que controla o comportamento do estimador de densidade é a amplitude da janela de observação ​ou //​bandwidth//​ (''​bw''​). Janela pequenas geram estimativas de densidade com viés pequeno, mas com variância grande. Janelas grandes geram estimativas de densidade com viés grande, mas pequena variância. O ideal é o equilíbrio entre os extremos e o R possui algumas funções que buscam automaticamente da //​bandwidth//​ apropriada, mas o analista tem controle sobre esse parâmetro:
 <code rsplus> <code rsplus>
 > plot( density(cax$dap,​ bw=0.5), col="​red"​ ) > plot( density(cax$dap,​ bw=0.5), col="​red"​ )
Linha 249: Linha 237:
  
 <box left red | //​**Exercício:​** Distribuição de DAP nos Caixetais// > <box left red | //​**Exercício:​** Distribuição de DAP nos Caixetais// >
-Realize uma análise de densidade do DAP para cada um dos caixetais. ​ Os resultados confirmam o que foi visto nos histogramas?​+Realize uma análise de densidade do DAP para cada um dos caixetais. Os resultados confirmam o que foi visto nos histogramas?​
 </​box>​ </​box>​
  
Linha 258: Linha 246:
 ==== Boxplot ==== ==== Boxplot ====
  
-**Boxplot** é um gráfico estatístico também utilizado para estudar o comportamento de variáveis. ​ Ele é composto dos elementos:+**Boxplot** é um gráfico estatístico também utilizado para estudar o comportamento de variáveis. Ele é composto dos elementos:
   * Uma caixa (//box//) que representa a região entre o primeiro e o terceiro quartis (quantis 25% e 75%), ou seja, 50% dos dados estão dentro da caixa.   * Uma caixa (//box//) que representa a região entre o primeiro e o terceiro quartis (quantis 25% e 75%), ou seja, 50% dos dados estão dentro da caixa.
   * Uma linha dentro da caixa que representa a posição da mediana (segundo quartil ou quantil 50%).   * Uma linha dentro da caixa que representa a posição da mediana (segundo quartil ou quantil 50%).
-  * Linhas que se prolongam a partir da caixa até no máximo 1,5 vêzes ​a distância interquartil (diferença entre o 1o. e 3o. quartis).+  * Linhas que se prolongam a partir da caixa até no máximo 1,5 vezes a distância interquartil (diferença entre o 1o. e 3o. quartis).
   * As observações que passarem essa distância são representadas individualmente por pontos.   * As observações que passarem essa distância são representadas individualmente por pontos.
  
 <code rsplus> <code rsplus>
-+> boxplot( cax$dap )
->​boxplot( cax$dap )+
 > >
 > esa = read.csv("​dados/​esaligna.csv",​header=TRUE) > esa = read.csv("​dados/​esaligna.csv",​header=TRUE)
Linha 273: Linha 260:
 </​code>​ </​code>​
  
-O **boxplot** é útil para analisar a //​simetria//​ de uma distribuição,​ o //​espalhamento//​ das observações ​ e a presença de observações discrepantes. +O **boxplot** é útil para analisar a //​simetria//​ de uma distribuição,​ o //​espalhamento//​ das observações e a presença de observações discrepantes. 
-Ele é problemático quando a variável analisada **não é unimodal**. ​  ​Ele também é uma ferramenta útil para comparar distribuições,​ isso é realizado+Ele é problemático quando a variável analisada **não é unimodal**. Ele também é uma ferramenta útil para comparar distribuições,​ isso é realizado
 quando desejamos um **boxplot** para cada situação: quando desejamos um **boxplot** para cada situação:
 <code rsplus> <code rsplus>
Linha 288: Linha 275:
 </​code>​ </​code>​
  
-O primeiro argumento é uma '''​formula'''​ estatística onde o símbolo **~** tem um significado especial. ​+O primeiro argumento é uma ''​formula''​ estatística onde o símbolo **~** tem um significado especial. ​
  
-A fórmula ​'''​dap ~ local'''​ deve ser lida como: //modele a variável// ''​dap''​ //como função da variável// ''​local''​.+A fórmula ''​dap ~ local''​ deve ser lida como: //modele a variável// ''​dap''​ //como função da variável// ''​local''​.
  
-O argumento ​'''​data'''​ informa em qual '''​data.frame'''​ estão as variáveis citadas na fórmula e é um argumento essencial toda vez que se utiliza uma fórmula.+O argumento ''​data''​ informa em qual ''​data.frame''​ estão as variáveis citadas na fórmula e é um argumento essencial toda vez que se utiliza uma fórmula.
  
  
Linha 317: Linha 304:
  
 <box left red | //​**Exercício:​** Estrutura de Eucaliptais // > <box left red | //​**Exercício:​** Estrutura de Eucaliptais // >
-Utilize o gráfico boxplot para analisar o DAP de árvores de //E. grandis// em função das variáveis região ('''​regiao'''​) e rotação ('''​rot'''​).+Utilize o gráfico boxplot para analisar o DAP de árvores de //E. grandis// em função das variáveis região (''​regiao''​) e rotação (''​rot''​).
 </​box>​ </​box>​
  
Linha 331: Linha 318:
 Gráficos Quantil-Quantil também são uma forma de estudar o comportamento de variáveis, mas utilizando as propriedades que emergem de uma variável quando trabalhamos com os seus quantis. Gráficos Quantil-Quantil também são uma forma de estudar o comportamento de variáveis, mas utilizando as propriedades que emergem de uma variável quando trabalhamos com os seus quantis.
  
-O gráfico quantil-quantil mais tradicional é aquele usado para verificar se uma variável possui distribuição Normal. ​ No R isso é realizado com a função ​'''​qqnorm''',​ associada à função ​'''​qqline'''​ que adiciona uma linha ao gráfico:+O gráfico quantil-quantil mais tradicional é aquele usado para verificar se uma variável possui distribuição Normal. No R isso é realizado com a função ''​qqnorm'',​ associada à função ''​qqline''​ que adiciona uma linha ao gráfico:
 <code rsplus> <code rsplus>
 > qqnorm( cax$dap ) > qqnorm( cax$dap )
Linha 341: Linha 328:
 A idéia central do gráfico quantil-quantil é a seguinte: quando um variável segue uma dada distribuição (como a distribuição Normal) os **quantis empíricos**,​ isto é, calculados a partir de uma amostra, formam uma linha reta contra os **quantis teóricos**,​ calculados a partir das estimativas dos parâmetros da distribuição (no caso da Normal: média e desvio padrão). ​ A idéia central do gráfico quantil-quantil é a seguinte: quando um variável segue uma dada distribuição (como a distribuição Normal) os **quantis empíricos**,​ isto é, calculados a partir de uma amostra, formam uma linha reta contra os **quantis teóricos**,​ calculados a partir das estimativas dos parâmetros da distribuição (no caso da Normal: média e desvio padrão). ​
  
-É isso que a função ​'''​qqnorm'''​ faz para distribuição Normal:+É isso que a função ''​qqnorm''​ faz para distribuição Normal:
 <code rsplus> <code rsplus>
 > vn1 = rnorm( 10000 ) > vn1 = rnorm( 10000 )
Linha 367: Linha 354:
 </​code>​ </​code>​
  
-**Nota:** a função ​'''​abline( a, b)'''​ adiciona a um gráfico ​um reta com intercepto //a// e inclinação //b//.+**Nota:** a função ''​abline( a, b)''​ adiciona a um gráfico ​uma reta com intercepto //a// e inclinação //b//.
  
  
Linha 374: Linha 361:
  
 <box left red | //​**Exercício:​** Inventário em Floresta Plantada // > <box left red | //​**Exercício:​** Inventário em Floresta Plantada // >
-Verifique se as variáveis quantitativas obtidas no inventário de florestas plantadas tem distribuição Normal: ​'''​dap''', ​'''​ht'''​ e '''​hdom'''​.+Verifique se as variáveis quantitativas obtidas no inventário de florestas plantadas tem distribuição Normal: ''​dap'',​ ''​ht''​ e ''​hdom''​.
 </​box>​ </​box>​
  
Linha 393: Linha 380:
 </​code>​ </​code>​
  
-Para obter o gráfico de barras basta usar a função ​'''​barplot''':​+Para obter o gráfico de barras basta usar a função ''​barplot'':​
 <code rsplus> <code rsplus>
 > barplot( dr ) > barplot( dr )
Linha 403: Linha 390:
 </​code>​ </​code>​
  
-O nome das espécies precisam de mais espaço. É possível alterar o espaço trabalhando os parâmetros da função ​'''​par'''​ que controla todos os parâmetros gráficos de uma janela gráfica. ​  +Os nomes das espécies precisam de mais espaço. É possível alterar o espaço trabalhando os parâmetros da função ''​par''​ que controla todos os parâmetros gráficos de uma janela gráfica.  
-Nesse caso, o parâmetro ​'''​omd=c(x1,​x2,​y1,​y2)'''​ define o início e final da região de plotagem em termos relativos. ​ O valor //default// é '''​omd=c(0,​ 1, 0, 1)'''​. ​+Nesse caso, o parâmetro ''​omd=c(x1,​x2,​y1,​y2)''​ define o início e final da região de plotagem em termos relativos. O valor //default// é ''​omd=c(0,​ 1, 0, 1)''​. ​
 <code rsplus> <code rsplus>
 > par( omd=c(0.2,​1,​0,​1) ) > par( omd=c(0.2,​1,​0,​1) )
Linha 413: Linha 400:
 Na verdade, o gráfico de barras não é um gráfico muito apropriado para o que se propõe, apesar do uso generalizado que se faz dele na comunidade científica. Na verdade, o gráfico de barras não é um gráfico muito apropriado para o que se propõe, apesar do uso generalizado que se faz dele na comunidade científica.
  
-No gráfico de barras, somos levados a comparar o comprimento das barras para estabelecer um julgamento entre as categorias. ​ No gráfico de densidade relativa, ​compararmos ​os comprimentos de barra para obter uma visão das densidades relativas das espécies.+No gráfico de barras, somos levados a comparar o comprimento das barras para estabelecer um julgamento entre as categorias. No gráfico de densidade relativa, ​comparamos ​os comprimentos de barra para obter uma visão das densidades relativas das espécies.
  
 Existe no R, um gráfico que faz a mesma coisa de modo muito mais simples e direto: Existe no R, um gráfico que faz a mesma coisa de modo muito mais simples e direto:
Linha 423: Linha 410:
 </​code>​ </​code>​
  
-No '''​dotchart''',​ somos levados a comparar a posição relativa dos pontos, e a relação entre as categorias fica muito mais rápida e direta.+No ''​dotchart'',​ somos levados a comparar a posição relativa dos pontos, e a relação entre as categorias fica muito mais rápida e direta.
  
 Como nessa floresta a //Tabebuia cassinoides//​ (caixeta) é a espécie dominante, é interessantes fazer o gráfico na escala logarítmica para enfatizar a diferença entre as outras espécies: Como nessa floresta a //Tabebuia cassinoides//​ (caixeta) é a espécie dominante, é interessantes fazer o gráfico na escala logarítmica para enfatizar a diferença entre as outras espécies:
Linha 434: Linha 421:
  
 <box left red | //​**Exercício:​** Dominância em Caixetais// > <box left red | //​**Exercício:​** Dominância em Caixetais// >
-Construa um gráfico da dominância das espécies nos caixetais.+Construa um gráfico da dominância ​(biomassa relativa) ​das espécies nos caixetais.
 </​box>​ </​box>​
  
  
 <box left red | //​**Exercício:​** Inventário em Floresta Plantada // > <box left red | //​**Exercício:​** Inventário em Floresta Plantada // >
-Utilizando a função ​'''​dotchart'''​ investigue o número de árvores no inventário em função da região ('''​regiao'''​) e rotação ('''​rot'''​).+Utilizando a função ''​dotchart''​ investigue o número de árvores no inventário em função da região (''​regiao''​) e rotação (''​rot''​).
 </​box>​ </​box>​
  
Linha 452: Linha 439:
 Os gráficos de dispersão (ou gráficos x-y) são os gráficos mais utilizados para estudar a relação entre duas variáveis. Os gráficos de dispersão (ou gráficos x-y) são os gráficos mais utilizados para estudar a relação entre duas variáveis.
  
-A função genérica no R para gráficos de dispersão é a função ​'''​plot''':​+A função genérica no R para gráficos de dispersão é a função ''​plot'':​
 <code rsplus> <code rsplus>
 > plot( x = cax$dap, y = cax$h ) > plot( x = cax$dap, y = cax$h )
 </​code>​ </​code>​
  
-Na função ​'''​plot''',​ o primeiro argumento é plotado nas //​abscissas//​ (eixo-x) e o segundo argumento nas //​ordenadas//​ (eixo-y). ​+Na função ''​plot'',​ o primeiro argumento é plotado nas //​abscissas//​ (eixo-x) e o segundo argumento nas //​ordenadas//​ (eixo-y). ​
  
-Ao investigar a relação entre duas variáveis, ​freqüentemente ​a densidade de pontos no gráfico torna o julgamento da relação problemática,​ pois é muito difícil considerar a variação da densidade ao se julgar a relação no gráfico de dispersão. ​ +Ao investigar a relação entre duas variáveis, ​frequentemente ​a densidade de pontos no gráfico torna o julgamento da relação problemática,​ pois é muito difícil considerar a variação da densidade ao se julgar a relação no gráfico de dispersão.
  
 Há no R uma função adicional que auxilia o julgamento adicionando ao gráfico de dispersão uma linha não-paramétrica de tendência (**smooth** ou suavização):​ Há no R uma função adicional que auxilia o julgamento adicionando ao gráfico de dispersão uma linha não-paramétrica de tendência (**smooth** ou suavização):​
Linha 466: Linha 453:
 </​code>​ </​code>​
  
-Uma série de parâmetros gráficos podem ser utilizados diretamente nas funções ​'''​plot'''​ e '''​scatter.smooth''':​+Uma série de parâmetros gráficos podem ser utilizados diretamente nas funções ''​plot''​ e ''​scatter.smooth'':​
 <code rsplus> <code rsplus>
 > scatter.smooth( cax$dap, cax$h , col="​red",​ xlab="​DAP (cm)", ylab="​Altura (dm)", main="​Caixetais"​) > scatter.smooth( cax$dap, cax$h , col="​red",​ xlab="​DAP (cm)", ylab="​Altura (dm)", main="​Caixetais"​)
Linha 475: Linha 462:
  
  
-O R também permite um certo grau de **interação** com gráficos de dispersão. ​ Uma delas é a identificação de observações no gráfico:+O R também permite um certo grau de **interação** com gráficos de dispersão. Uma delas é a identificação de observações no gráfico:
 <code rsplus> <code rsplus>
 > scatter.smooth( cax$dap, cax$h ) > scatter.smooth( cax$dap, cax$h )
Linha 492: Linha 479:
 </​code>​ </​code>​
  
-A função ​'''​identify'''​ atua sobre um gráfico produzido (plot) e possui três argumentos. ​ Os dois primeiros são os mesmos argumentos que geraram o gráfico. ​ O terceiro argumento é uma variável de identificação. ​ No exemplo acima a variável de identificação é o índice que identifica a observação (linha do ''​data.frame''​).+A função ''​identify''​ atua sobre um gráfico produzido (plot) e possui três argumentos. Os dois primeiros são os mesmos argumentos que geraram o gráfico. O terceiro argumento é uma variável de identificação. ​ No exemplo acima a variável de identificação é o índice que identifica a observação (linha do ''​data.frame''​).
  
-Ao executar a função ​'''​identify''',​ o R entra num modo interativo com o gráfico. ​ Ao posicionar o //mouse// sobre uma observação no gráfico e pressionar o **botão esquerdo**, o R identifica a observação. ​ É possível identificar tantas observações quanto se desejar. ​ Para sair do modo interativo, pressiona-se o **botão direito** do //mouse//.+Ao executar a função ''​identify'',​ o R entra num modo interativo com o gráfico. Ao posicionar o //mouse// sobre uma observação no gráfico e pressionar o **botão esquerdo**, o R identifica a observação. É possível identificar tantas observações quanto se desejar. Para sair do modo interativo, pressiona-se o **botão direito** do //mouse//.
  
  
-No exemplo acima, as três observações discrepantes do gráfico parecem de fato muito erradas.Assim,​ podemos eliminá-las e continuar o estudo da relação:+No exemplo acima, as três observações discrepantes do gráfico parecem de fato muito erradas. Assim, podemos eliminá-las e continuar o estudo da relação:
 <code rsplus> <code rsplus>
 > cax2 = cax[ -c(362, 556, 557), ] > cax2 = cax[ -c(362, 556, 557), ]
Linha 504: Linha 491:
  
  
-Também na função ​'''​plot'''​ é possível se utilizar como argumento inicial uma '''​formula''',​ seguida do ''​data.frame''​ que contem ​as variáveis:+Também na função ''​plot''​ é possível se utilizar como argumento inicial uma ''​formula'',​ seguida do ''​data.frame''​ que contém ​as variáveis:
 <code rsplus> <code rsplus>
 > plot( h ~ dap, data=cax2 ) > plot( h ~ dap, data=cax2 )
Linha 515: Linha 502:
 </​code>​ </​code>​
  
-O uso da ''​formula''​ permite a utilização da função ​'''​coplot'''​ para formação de gráficos de dispersão em função de variáveis categóricas:​+O uso da ''​formula''​ permite a utilização da função ''​coplot''​ para formação de gráficos de dispersão em função de variáveis categóricas:​
 <code rsplus> <code rsplus>
 > coplot( h ~ dap | local , data=cax2 ) > coplot( h ~ dap | local , data=cax2 )
Linha 521: Linha 508:
 </​code>​ </​code>​
  
-Também é possível adicionar uma linha de tendência em cada gráfico gerado pela função ​'''​coplot''':​+Também é possível adicionar uma linha de tendência em cada gráfico gerado pela função ''​coplot'':​
 <code rsplus> <code rsplus>
 > coplot( h ~ dap | local , data=cax2 , panel= panel.smooth) > coplot( h ~ dap | local , data=cax2 , panel= panel.smooth)
Linha 529: Linha 516:
 Na ''​formula''​ acima, surgiram elementos novos: Na ''​formula''​ acima, surgiram elementos novos:
   * A barra vertical indica uma situação condicional,​ no caso fazer um gráfico de dispersão para cada ''​local''​.   * A barra vertical indica uma situação condicional,​ no caso fazer um gráfico de dispersão para cada ''​local''​.
-  * O asterísco (''​*''​) indica **interação**,​ no caso o gráfico de dispersão é realizado para cada interação entre as variáveis ​ ''​local''​ e ''​parcela''​.+  * O asterísco (''​*''​) indica **interação**,​ no caso o gráfico de dispersão é realizado para cada interação entre as variáveis ''​local''​ e ''​parcela''​.
  
-A função ​'''​coplot'''​ atua de forma diferente, se as variáveis que classificam o gráfico de dispersão são variáveis categóricas ('''​factor'''​) ou numéricas ('''​numeric'''​):​+A função ''​coplot''​ atua de forma diferente, se as variáveis que classificam o gráfico de dispersão são variáveis categóricas (''​factor''​) ou numéricas (''​numeric''​):​
 <code rsplus> <code rsplus>
 > egr = read.table("​dados/​egrandis.csv",​header=TRUE,​sep=";"​) > egr = read.table("​dados/​egrandis.csv",​header=TRUE,​sep=";"​)
 > coplot( ht ~ dap | idade, data=egr, panel = panel.smooth ) > coplot( ht ~ dap | idade, data=egr, panel = panel.smooth )
-> coplot( ht ~ dap | idade * rot , data=egr, panel = panel.smooth ) +> coplot( ht ~ dap | idade * rotacao ​, data=egr, panel = panel.smooth ) 
-> coplot( ht ~ dap | idade * as.factor(rot) , data=egr, panel = panel.smooth )+> coplot( ht ~ dap | idade * as.factor(rotacao) , data=egr, panel = panel.smooth )
 </​code>​ </​code>​
  
Linha 545: Linha 532:
  
 <box left red | //​**Exercício:​** Relação Hipsométrica da Caixeta // > <box left red | //​**Exercício:​** Relação Hipsométrica da Caixeta // >
-Analise a relação dap-altura ('''​dap'''​ e '''​h'''​) em função do caixetal, mas **somente** para as árvores de caixeta (//Tabebuia cassinoides//​).+Analise a relação dap-altura (''​dap''​ e ''​h''​) em função do caixetal, mas **somente** para as árvores de caixeta (//Tabebuia cassinoides//​).
 </​box>​ </​box>​
  
  
 <box left red | //​**Exercício:​** Inventário em Floresta Plantada II // > <box left red | //​**Exercício:​** Inventário em Floresta Plantada II // >
-Analise a relação entre as variáveis ​'''​hdom'''​ (altura das árvores dominantes) e '''​dap'''​ para diferentes regiões ('''​regiao'''​) e rotações (''​'​rot'​''​).+Analise a relação entre as variáveis ''​hdom''​ (altura das árvores dominantes) e ''​dap''​ para diferentes regiões (''​regiao''​) e rotações (''​rotacao''​).
 </​box>​ </​box>​
  
 ==== Painel de Gráficos de Dispersão ==== ==== Painel de Gráficos de Dispersão ====
  
-Quando o objetivo é explorar a relação entre variáveis quantitativas com o objetivo de construir modelos ou analisar a estrutura de correlação é útil poder fazer gráficos de dispersão das variáveis duas-a-duas. ​ A função **pairs** realiza essa operação automaticamente:​+Quando o objetivo é explorar a relação entre variáveis quantitativas com o objetivo de construir modelos ou analisar a estrutura de correlação é útil poder fazer gráficos de dispersão das variáveis duas-a-duas. A função **pairs** realiza essa operação automaticamente:​
 <code rsplus> <code rsplus>
-> pairs( egr[ , c("​dap","​ht","​hdom","​idade"​)] )+> pairs( egr[ , c("​dap","​ht","​idade"​)] )
 </​code>​ </​code>​
  
-Sempre é possível sofisticar os gráficos. ​ No exemplo abaixo o painel apresenta a relação entre as variáveis quantitativas utilizando cores para mostrar as variáveis região e rotação:+Sempre é possível sofisticar os gráficos. No exemplo abaixo o painel apresenta a relação entre as variáveis quantitativas utilizando cores para mostrar as variáveis região e rotação:
 <code rsplus> <code rsplus>
  
-> pairs( egr[ , c("​dap","​ht","​hdom","​idade"​)] , pch=21, bg=c("​red","​blue","​green"​)[unclass(egr$regiao)] ) +> pairs( egr[ , c("​dap","​ht","​idade"​)] , pch=21, bg=c("​red","​blue","​green", "gold"​)[unclass(as.factor(egr$regiao))] ) 
-> pairs( egr[ , c("​dap","​ht","​hdom","​idade"​)] , pch=21, bg=c("​red","​green"​)[unclass(egr$rot)] )+> pairs( egr[ , c("​dap","​ht","​idade"​)] , pch=21, bg=c("​red","​green"​)[unclass(egr$rotacao)] )
  
 </​code> ​   ​ </​code> ​   ​
Linha 574: Linha 561:
 Analise a relação entre as variáveis quantitativas do conjunto de dados sobre biomassa das árvores de //E. saligna//. Analise a relação entre as variáveis quantitativas do conjunto de dados sobre biomassa das árvores de //E. saligna//.
  
-Qual a influência da variável classe ('''​classe'''​) sobre a relação entre as variáveis?+Qual a influência da variável classe (''​classe''​) sobre a relação entre as variáveis?
 </​box>​ </​box>​
  
Linha 588: Linha 575:
 ===== Gráficos em Painel: O Pacote Lattice ===== ===== Gráficos em Painel: O Pacote Lattice =====
  
-Para ampliar a capacidade de análise gráfica exploratória e mesmo //modelagem gráfica// dos dados, existe no R o pacote **lattice**. ​ Para carregar o pacote usa-se o comando:+Para ampliar a capacidade de análise gráfica exploratória e mesmo //modelagem gráfica// dos dados, existe no R o pacote **lattice**. Para carregar o pacote usa-se o comando:
 <code rsplus> <code rsplus>
 > library(lattice) > library(lattice)
 </​code>​ </​code>​
  
-O pacote **lattice** oferece uma série de funções análogas às funções gráficas do R, mas permite a construção de **paineis**. ​ Um painel é um série de gráficos de mesmo tipo (dispersão,​ histograma, etc.) colocados lado-a-lado acompanhando uma variável categórica ou quantitativa.+O pacote **lattice** oferece uma série de funções análogas às funções gráficas do R, mas permite a construção de **paineis**. Um painel é um série de gráficos de mesmo tipo (dispersão,​ histograma, etc.) colocados lado-a-lado acompanhando uma variável categórica ou quantitativa.
  
 ==== Gráficos de Dispersão ===== ==== Gráficos de Dispersão =====
Linha 603: Linha 590:
 </​code>​ </​code>​
  
-Note que no lattice, os gráficos são construídos com base em fórmulas. ​ Essas fórmulas permitem estrutura mais complexas de análise:+Note que no lattice, os gráficos são construídos com base em fórmulas. Essas fórmulas permitem estrutura mais complexas de análise:
 <code rsplus> <code rsplus>
 > xyplot( ht ~ dap | regiao , data=egr ) > xyplot( ht ~ dap | regiao , data=egr )
-> xyplot( ht ~ dap | regiao * rot , data=egr )+> xyplot( ht ~ dap | regiao * rotacao ​, data=egr )
 </​code>​ </​code>​
  
 Também é possível construir gráficos com suavização:​ Também é possível construir gráficos com suavização:​
 <code rsplus> <code rsplus>
-> xyplot( ht ~ dap | regiao * rot , data=egr, +> xyplot( ht ~ dap | regiao * rotacao ​, data=egr, 
-panel = function(x,​y) + panel = function(x,​y) 
-+ { 
-        panel.xyplot(x,​y) +         ​panel.xyplot(x,​y) 
-        panel.loess(x,​y,​ span=1, col="​red"​) +         ​panel.loess(x,​y,​ span=1, col="​red"​) 
-} )+ } )
 >    >   
 </​code>​ </​code>​
Linha 625: Linha 612:
  
 <box left red | //​**Exercício:​** Relação Hipsométrica da Caixeta II // > <box left red | //​**Exercício:​** Relação Hipsométrica da Caixeta II // >
-Utilizando o pacote lattice, analise a relação dap-altura ('''​dap'''​ e '''​h'''​) em função do caixetal, mas **somente** para as árvores de caixeta (//Tabebuia cassinoides//​).+Utilizando o pacote ​''​lattice''​, analise a relação dap-altura (''​dap''​ e ''​h''​) em função do caixetal, mas **somente** para as árvores de caixeta (//Tabebuia cassinoides//​).
 </​box>​ </​box>​
  
 <box left red | //​**Exercício:​** Relação Altura das Dominantes - Idade em Florestas Plantadas // > <box left red | //​**Exercício:​** Relação Altura das Dominantes - Idade em Florestas Plantadas // >
-Utilizando os dados de floresta plantada (//E. grandis//), analise a relação entre altura das árvores dominantes ('''​hdom'''​) e idade ('''​idade'''​) por rotação (''​'​rot'​''​) e região ('''​regiao'''​).+Utilizando os dados de floresta plantada (//E. grandis//), analise a relação entre altura das árvores dominantes (''​hdom''​) e idade (''​idade''​) por rotação (''​rotacao''​) e região (''​regiao''​).
 </​box>​ </​box>​
  
Linha 641: Linha 628:
 </​code>​ </​code>​
  
-Identificar grupos em cada gráfico de dispersão é mais fácil com a função **splom**, basta utilizar o argumento ​'''​group''':​+Identificar grupos em cada gráfico de dispersão é mais fácil com a função **splom**, basta utilizar o argumento ''​group'':​
 <code rsplus> <code rsplus>
 > splom( egr[ , c("​dap","​ht","​hdom","​idade"​)] , group=egr$regiao ) > splom( egr[ , c("​dap","​ht","​hdom","​idade"​)] , group=egr$regiao )
Linha 647: Linha 634:
 </​code>​ </​code>​
  
-Também é possível adicionar uma //linha de suavização//,​ mas é necessário definir a função de painel (argumento ​'''​painel'''​):​+Também é possível adicionar uma //linha de suavização//,​ mas é necessário definir a função de painel (argumento ''​painel''​):​
 <code rsplus> <code rsplus>
 > splom( egr[ , c("​dap","​ht","​hdom","​idade"​)] , group=egr$regiao,​ > splom( egr[ , c("​dap","​ht","​hdom","​idade"​)] , group=egr$regiao,​
Linha 666: Linha 653:
  
 <box left red | //​**Exercício:​** Biomassa de Árvores de Eucalipto // > <box left red | //​**Exercício:​** Biomassa de Árvores de Eucalipto // >
-Analise a relação entre as variáveis quantitativas dos dados de biomassa de //E. saligna// utilizando a função **splom**. ​ Inclua na sua análise a variável ​'''​classe'''​.+Analise a relação entre as variáveis quantitativas dos dados de biomassa de //E. saligna// utilizando a função **splom**. Inclua na sua análise a variável ''​classe''​.
 </​box>​ </​box>​
  
Linha 673: Linha 660:
 ==== Histogramas e Gráficos de Densidade ===== ==== Histogramas e Gráficos de Densidade =====
  
-No lattice, todos os tipos de gráficos podem ser construídos na forma de painel. ​ Para estudar a distribuição de variáveis temos a função **histogram** e **densityplot**:​+No lattice, todos os tipos de gráficos podem ser construídos na forma de painel. Para estudar a distribuição de variáveis temos a função **histogram** e **densityplot**:​
 <code rsplus> <code rsplus>
 > cax = read.csv("​caixeta.csv",​header=T) > cax = read.csv("​caixeta.csv",​header=T)
Linha 686: Linha 673:
  
  
-Também é possível construir um histograma com linhas de densidade, para isso o tipo do histograma deve ser definido como '''​density''':​+Também é possível construir um histograma com linhas de densidade, para isso o tipo do histograma deve ser definido como ''​density'':​
 <code rsplus> <code rsplus>
 > histogram( ~ ht | regiao * rot , dat=egr, type="​density",​ > histogram( ~ ht | regiao * rot , dat=egr, type="​density",​
Linha 697: Linha 684:
  
  
-As funções de histograma e densidade podem se tornar mais complexas. ​ No exemplo abaixo, uma curva de densidade assumindo a distribuição Normal é adicionada aos histogramas,​ os quais são construídos com a densidade nas ordenadas:+As funções de histograma e densidade podem se tornar mais complexas. No exemplo abaixo, uma curva de densidade assumindo a distribuição Normal é adicionada aos histogramas,​ os quais são construídos com a densidade nas ordenadas:
 <code rsplus> <code rsplus>
 > histogram( ~ ht | regiao * rot , dat=egr, type="​density",​ > histogram( ~ ht | regiao * rot , dat=egr, type="​density",​
Linha 710: Linha 697:
  
 <box red left | //​**Exercício:​** Altura das Árvores Dominantes em Florestas Plantadas //> <box red left | //​**Exercício:​** Altura das Árvores Dominantes em Florestas Plantadas //>
-Explore o comportamento da variável altura das árvores dominantes ('''​hdom'''​) por região ('''​regiao'''​) e rotação ('''​rot'''​) na floresta plantada de //E. grandis//.+Explore o comportamento da variável altura das árvores dominantes (''​hdom''​) por região (''​regiao''​) e rotação (''​rot''​) na floresta plantada de //E. grandis//.
 </​box>​ </​box>​
  
 <box red left | //​**Exercício:​** Altura de Árvores de Caixeta //> <box red left | //​**Exercício:​** Altura de Árvores de Caixeta //>
-Analise o comportamento da variável altura ('''​h'''​) das árvores de caixeta.+Analise o comportamento da variável altura (''​h''​) das árvores de caixeta.
 </​box>​ </​box>​
  
Linha 737: Linha 724:
  
 Uma vantagem do pacote lattice é a possibilidade de gráficos quantil-quantil com outras distribuições além da Uma vantagem do pacote lattice é a possibilidade de gráficos quantil-quantil com outras distribuições além da
-distribuição normal. ​ Nos gráficos abaixo, ​DAP das árvores dos caixetais é comparada com a distribuição exponencial ('''​qexp'''​).+distribuição normal. Nos gráficos abaixo, ​a distribuição observada de DAP das árvores dos caixetais é comparada com a distribuição exponencial (''​qexp''​).
 <code rsplus> <code rsplus>
 > qqmath( ~ dap | local , data=cax, distribution = function(p) qexp(p, 1/mean(x)) ) > qqmath( ~ dap | local , data=cax, distribution = function(p) qexp(p, 1/mean(x)) )
Linha 759: Linha 746:
  
 Dois aspectos devem ser notados no código acima: Dois aspectos devem ser notados no código acima:
-  - A variável ​'''​local'''​ (categórica) aparece **à esquerda** do sinal de modelagem. +  - A variável ''​local''​ (categórica) aparece **à esquerda** do sinal de modelagem. 
-  - O argumento ​'''​subset'''​ faz com que a variável ​'''​local'''​ fique com apenas duas categorias.+  - O argumento ''​subset''​ faz com que a variável ''​local''​ fique com apenas duas categorias.
  
  
Linha 767: Linha 754:
  
 <box 100% red left | //​**Exercício:​** Altura das Árvores em Florestas Plantadas //> <box 100% red left | //​**Exercício:​** Altura das Árvores em Florestas Plantadas //>
-Verifique se a altura das árvores ('''​ht'''​) nas florestas plantadas de //E. grandis// segue distribuição Normal.+Verifique se a altura das árvores (''​ht''​) nas florestas plantadas de //E. grandis// segue distribuição Normal.
  
-Faça uma análise geral e depois por região ('''​regiao'''​) e rotação ('''​rot'''​).+Faça uma análise geral e depois por região (''​regiao''​) e rotação (''​rot''​).
 </​box>​ </​box>​
  
 <box 100% red left | //​**Exercício:​** Biomassa de Árvores de Eucalipto //> <box 100% red left | //​**Exercício:​** Biomassa de Árvores de Eucalipto //>
-Verifique se biomassa total ('''​total'''​) e a biomassa do tronco ('''​tronco'''​) das árvores de //E. saligna// possuem distribuição semelhante. ​  ​E a biomassa das folhas ('''​folha'''​),​ tem distribuição semelhante à biomassa do tronco?+Verifique se biomassa total (''​total''​) e a biomassa do tronco (''​tronco''​) das árvores de //E. saligna// possuem distribuição semelhante. E a biomassa das folhas (''​folha''​),​ tem distribuição semelhante à biomassa do tronco?
 </​box>​ </​box>​
03_apostila/05-exploratoria.1599571100.txt.gz · Última modificação: 2020/09/08 10:18 por adalardo