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
Próxima revisão Ambos lados da revisão seguinte
03_apostila:05-exploratoria [2020/08/26 09:30]
adalardo [Boxplot]
03_apostila:05-exploratoria [2023/08/15 21:40]
127.0.0.1 edição externa
Linha 6: Linha 6:
 ====== 4. Análise Exploratória de Dados ====== ​ ====== 4. Análise Exploratória de Dados ====== ​
  
-Podemos pensar 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:+Podemos conduzir a análise exploratória de dados de duas formas: 
 +  * análise numérica: computar estatísticas descritivas;​ 
 +  * análise gráfica: explorar o comportamento e a relação entre as variáveis através de gráficos. 
 + 
 +Nesse tópico ​utilizaremos ​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 24: 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 64: 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 91: 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 126: 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 135: 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 148: 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 166: 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 200: 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 206: 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 215: 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 224: 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 236: 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 245: 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 260: 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>>de uma distribuição+<code rsplus>
 > boxplot( dap ~ local, data=cax ) > boxplot( dap ~ local, data=cax )
 > >
Linha 275: 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 304: 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 318: 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 328: 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 354: 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 361: 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 380: 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 390: 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 400: 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 410: 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 421: 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 439: 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 453: 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 462: 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 479: 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 491: 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 502: 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 508: 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 516: 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 532: 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 561: 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 575: 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 590: 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 )
Linha 612: 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 (''​rot''​) e região (''​regiao''​).
 </​box>​ </​box>​
  
Linha 628: 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 634: 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 653: 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 660: 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 673: 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 684: 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 697: 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 724: 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 746: 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 754: 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.txt · Última modificação: 2023/08/15 21:45 (edição externa)