Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
| Ambos lados da revisão anterior Revisão anterior Próxima revisão | Revisão anterior | ||
| 03_apostila:05-exploratoria [2023/08/16 00:05] – edição externa 127.0.0.1 | 03_apostila:05-exploratoria [2023/08/16 00:45] (atual) – edição externa 127.0.0.1 | ||
|---|---|---|---|
| Linha 1: | Linha 1: | ||
| + | <WRAP tabs> | ||
| + | * [[02_tutoriais: | ||
| + | * [[01_curso_atual: | ||
| + | * [[03_apostila: | ||
| + | </ | ||
| + | ====== 4. Análise Exploratória 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: | ||
| + | * [[dados: | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ===== Estatísticas Descritivas ===== | ||
| + | |||
| + | |||
| + | A forma mais direta de se obter um resumo estatístico das variáveis num '' | ||
| + | <code rsplus> | ||
| + | > cax = read.csv(" | ||
| + | > | ||
| + | > summary(cax) | ||
| + | local parcela | ||
| + | | ||
| + | Class : | ||
| + | | ||
| + | Mean : | ||
| + | 3rd Qu.: | ||
| + | Max. : | ||
| + | | ||
| + | | ||
| + | Class :character | ||
| + | | ||
| + | |||
| + | |||
| + | |||
| + | > | ||
| + | </ | ||
| + | |||
| + | Outras estatísticas devem ser calculadas individualmente pelo analista: | ||
| + | <code rsplus> | ||
| + | > resumo1 = aggregate( cax[ , c(" | ||
| + | > resumo2 = aggregate( cax[ , c(" | ||
| + | > | ||
| + | > resumo = merge( resumo1, resumo2, by=" | ||
| + | > resumo | ||
| + | local cap.mean | ||
| + | 1 chauas 293.6385 | ||
| + | 2 jureia 404.4813 109.70954 213.8512 31.68068 | ||
| + | 3 retiro 236.5972 | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | === Exercícios === | ||
| + | |||
| + | |||
| + | <box left red | // | ||
| + | Construa um '' | ||
| + | |||
| + | Encontre a média e desvio padrão da área basal por '' | ||
| + | |||
| + | Calcule o intervalo de confiança de 95% da área basal por '' | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | ===== Analisando a Distribuição das Variáveis: Gráficos Univariados ===== | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ==== Histogramas ==== | ||
| + | |||
| + | A primeira abordagem ao se estudar a distribuição de uma variável é o uso de **histogramas**: | ||
| + | <code rsplus> | ||
| + | > cax$dap = (pi/4)* (cax$cap/ | ||
| + | > hist( cax$dap ) | ||
| + | > hist( cax$dap[ cax$local == " | ||
| + | > hist( cax$dap[ cax$local == " | ||
| + | > hist( cax$dap[ cax$local == " | ||
| + | </ | ||
| + | |||
| + | A função '' | ||
| + | <code rsplus> | ||
| + | > hist( cax$dap, plot=FALSE ) | ||
| + | $breaks | ||
| + | | ||
| + | |||
| + | $counts | ||
| + | | ||
| + | |||
| + | $intensities | ||
| + | [1] 7.010709e-03 3.972736e-02 3.203505e-02 1.129503e-02 6.037001e-03 | ||
| + | [6] 1.947420e-03 9.737098e-04 2.921130e-04 3.894839e-04 9.737098e-05 | ||
| + | [11] 9.737098e-05 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 | ||
| + | [16] 0.000000e+00 9.737098e-05 | ||
| + | |||
| + | $density | ||
| + | [1] 7.010709e-03 3.972736e-02 3.203505e-02 1.129503e-02 6.037001e-03 | ||
| + | [6] 1.947420e-03 9.737098e-04 2.921130e-04 3.894839e-04 9.737098e-05 | ||
| + | [11] 9.737098e-05 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 | ||
| + | [16] 0.000000e+00 9.737098e-05 | ||
| + | |||
| + | $mids | ||
| + | | ||
| + | |||
| + | $xname | ||
| + | [1] " | ||
| + | |||
| + | $equidist | ||
| + | [1] TRUE | ||
| + | |||
| + | attr(," | ||
| + | [1] " | ||
| + | > | ||
| + | </ | ||
| + | |||
| + | Note que o objeto gerado pela função '' | ||
| + | <code rsplus> | ||
| + | > dap.hist = hist( cax$dap, plot=FALSE ) | ||
| + | > class(dap.hist) | ||
| + | [1] " | ||
| + | > | ||
| + | > plot(dap.hist) | ||
| + | </ | ||
| + | |||
| + | Alguns parâmetros gráficos podem tornar o gráfico mais apresentável. Esses parâmetros gráficos pode ser utilizados como // | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | <code rsplus> | ||
| + | > hist( cax$dap[ cax$local==" | ||
| + | + xlab=" | ||
| + | + ylab=" | ||
| + | + main=" | ||
| + | + col = " | ||
| + | > | ||
| + | </ | ||
| + | |||
| + | Muitas vezes desejamos comparar gráficos, sendo útil termos mais de uma janela gráfica. A função '' | ||
| + | sendo que podemos abrir várias janelas: | ||
| + | <code rsplus> | ||
| + | > hist( cax$dap[ cax$local==" | ||
| + | > X11() | ||
| + | > hist( cax$dap[ cax$local==" | ||
| + | > X11() | ||
| + | > hist( cax$dap[ cax$local==" | ||
| + | > | ||
| + | > dev.off() | ||
| + | X11 | ||
| + | 2 | ||
| + | > dev.off() | ||
| + | X11 | ||
| + | 3 | ||
| + | > | ||
| + | </ | ||
| + | |||
| + | A função '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | <code rsplus> | ||
| + | > X11() | ||
| + | > hist( cax$dap[ cax$local==" | ||
| + | > X11() | ||
| + | > hist( cax$dap[ cax$local==" | ||
| + | > dev.cur() | ||
| + | X11 | ||
| + | 3 | ||
| + | > dev.set(2) | ||
| + | X11 | ||
| + | 2 | ||
| + | > hist( cax$dap[ cax$local==" | ||
| + | > dev.set(3) | ||
| + | X11 | ||
| + | 3 | ||
| + | > hist( cax$dap[ cax$local==" | ||
| + | > | ||
| + | > graphics.off() | ||
| + | > | ||
| + | </ | ||
| + | |||
| + | |||
| + | === Exercício === | ||
| + | |||
| + | <box left red | // | ||
| + | Construa um histograma da altura das árvores do caixetal. | ||
| + | |||
| + | Construa histogramas da altura das árvores para os diferentes caixetais ('' | ||
| + | |||
| + | Há diferenças entre as estruturas (distribuição de tamanhos) dos caixetais? | ||
| + | </ | ||
| + | |||
| + | <box left red | // | ||
| + | Construa um histograma do DAP das árvores de //E. saligna//. Procure interpretar o histograma. | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ==== Gráficos de Densidade ==== | ||
| + | |||
| + | Uma outra forma de explorar a distribuição de uma variável é trabalharmos com um gráfico de // | ||
| + | |||
| + | A função '' | ||
| + | para criar o gráfico, ou a função '' | ||
| + | <code rsplus> | ||
| + | > plot( density(cax$dap) ) | ||
| + | > | ||
| + | </ | ||
| + | |||
| + | O parâmetro que controla o comportamento do estimador de densidade é a amplitude da janela de observação ou // | ||
| + | <code rsplus> | ||
| + | > plot( density(cax$dap, | ||
| + | > lines( density(cax$dap, | ||
| + | > lines( density(cax$dap, | ||
| + | > | ||
| + | </ | ||
| + | |||
| + | |||
| + | === Exercícios === | ||
| + | |||
| + | <box left red | // | ||
| + | Realize uma análise de densidade do DAP para cada um dos caixetais. Os resultados confirmam o que foi visto nos histogramas? | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ==== Boxplot ==== | ||
| + | |||
| + | **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 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 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. | ||
| + | |||
| + | <code rsplus> | ||
| + | > boxplot( cax$dap ) | ||
| + | > | ||
| + | > esa = read.csv(" | ||
| + | > boxplot( esa$dap ) | ||
| + | > | ||
| + | </ | ||
| + | |||
| + | O **boxplot** é útil para analisar a // | ||
| + | Ele é problemático quando a variável analisada **não é unimodal**. Ele também é uma ferramenta útil para comparar distribuições, | ||
| + | quando desejamos um **boxplot** para cada situação: | ||
| + | <code rsplus> | ||
| + | > boxplot( dap ~ local, data=cax ) | ||
| + | > | ||
| + | </ | ||
| + | |||
| + | Note que o primeiro argumento da função '' | ||
| + | <code rsplus> | ||
| + | > class( dap ~ local ) | ||
| + | [1] " | ||
| + | > | ||
| + | </ | ||
| + | |||
| + | O primeiro argumento é uma '' | ||
| + | |||
| + | A fórmula '' | ||
| + | |||
| + | O argumento '' | ||
| + | |||
| + | |||
| + | A utilização da fórmula permite a construção de gráficos mais complexos, pensando na **interação** entre dois fatores influenciando a variável DAP: | ||
| + | <code rsplus> | ||
| + | > boxplot( dap ~ local * parcela, data=cax) | ||
| + | > | ||
| + | </ | ||
| + | |||
| + | Mas os gráficos no R podem ficar realmente // | ||
| + | <code rsplus> | ||
| + | > boxname = paste( sort(rep(unique(cax$local), | ||
| + | > boxcor = sort(rep(c(" | ||
| + | > boxplot( dap ~ local * parcela, data=cax , names=boxname, | ||
| + | > | ||
| + | </ | ||
| + | |||
| + | |||
| + | === Exercícios === | ||
| + | |||
| + | <box left red | // | ||
| + | Utilize o gráfico boxplot para analisar a altura das árvores em caixetais. | ||
| + | </ | ||
| + | |||
| + | <box left red | // | ||
| + | Utilize o gráfico boxplot para analisar o DAP de árvores de //E. grandis// em função das variáveis região ('' | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ==== Gráficos Quantil-Quantil ==== | ||
| + | |||
| + | 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 '' | ||
| + | <code rsplus> | ||
| + | > qqnorm( cax$dap ) | ||
| + | > qqline( cax$dap ) | ||
| + | > | ||
| + | </ | ||
| + | |||
| + | |||
| + | 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**, | ||
| + | |||
| + | É isso que a função '' | ||
| + | <code rsplus> | ||
| + | > vn1 = rnorm( 10000 ) | ||
| + | > qqnorm( vn1 ) | ||
| + | > qqline( vn1 ) | ||
| + | > | ||
| + | > ve1 = rexp( 100000 ) | ||
| + | > qqnorm( ve1 ) | ||
| + | > qqline( ve1 ) | ||
| + | > | ||
| + | > ve2 = apply( matrix(ve1, ncol=100), 1, mean) | ||
| + | > qqnorm( ve2 ) | ||
| + | > qqline( ve2 ) | ||
| + | > | ||
| + | </ | ||
| + | |||
| + | Também é possível comparar duas distribuições a partir dos **quantis empíricos**: | ||
| + | <code rsplus> | ||
| + | > qqplot( cax$dap[ cax$local==" | ||
| + | > abline( 0, 1, col=" | ||
| + | > | ||
| + | > a = min( cax$dap[ cax$local==" | ||
| + | > abline( a, 1, col=" | ||
| + | > | ||
| + | </ | ||
| + | |||
| + | **Nota:** a função '' | ||
| + | |||
| + | |||
| + | |||
| + | === Exercícios === | ||
| + | |||
| + | <box left red | // | ||
| + | Verifique se as variáveis quantitativas obtidas no inventário de florestas plantadas tem distribuição Normal: '' | ||
| + | </ | ||
| + | |||
| + | <box left red | // | ||
| + | Verifique se a distribuição da altura das árvores tem o mesmo comportamento nos diferentes caixetais. | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== Gráfico de Variável Quantitativa por Classes ==== | ||
| + | |||
| + | A maneira clássica de se apresentar uma variável quantitativa associada a uma classe é o famoso gráfico de barras. | ||
| + | |||
| + | Vejamos um exemplo comum em // | ||
| + | <code rsplus> | ||
| + | > da = table( cax$especie[ cax$local==" | ||
| + | > da = sort(da, decreasing=TRUE ) | ||
| + | > dr = da/sum(da) * 100 | ||
| + | </ | ||
| + | |||
| + | Para obter o gráfico de barras basta usar a função '' | ||
| + | <code rsplus> | ||
| + | > barplot( dr ) | ||
| + | </ | ||
| + | |||
| + | O resultado não é muito apropriado para interpretações, | ||
| + | <code rsplus> | ||
| + | > barplot( dr , xlab=" | ||
| + | </ | ||
| + | |||
| + | Os nomes das espécies precisam de mais espaço. É possível alterar o espaço trabalhando os parâmetros da função '' | ||
| + | Nesse caso, o parâmetro '' | ||
| + | <code rsplus> | ||
| + | > par( omd=c(0.2, | ||
| + | > barplot( dr , xlab=" | ||
| + | > | ||
| + | </ | ||
| + | |||
| + | 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, 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: | ||
| + | <code rsplus> | ||
| + | > par( omd=c(0, | ||
| + | > | ||
| + | > dotchart( dr ) | ||
| + | > | ||
| + | </ | ||
| + | |||
| + | No '' | ||
| + | |||
| + | Como nessa floresta a //Tabebuia cassinoides// | ||
| + | <code rsplus> | ||
| + | > dotchart( log(dr), xlab=" | ||
| + | </ | ||
| + | |||
| + | |||
| + | === Exercícios === | ||
| + | |||
| + | <box left red | // | ||
| + | Construa um gráfico da dominância (biomassa relativa) das espécies nos caixetais. | ||
| + | </ | ||
| + | |||
| + | |||
| + | <box left red | // | ||
| + | Utilizando a função '' | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ===== Análise Gráfica: Relação entre Variáveis ===== | ||
| + | |||
| + | ==== Gráfico de Dispersão ==== | ||
| + | |||
| + | 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 '' | ||
| + | <code rsplus> | ||
| + | > plot( x = cax$dap, y = cax$h ) | ||
| + | </ | ||
| + | |||
| + | Na funçã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, | ||
| + | |||
| + | 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): | ||
| + | <code rsplus> | ||
| + | > scatter.smooth( cax$dap, cax$h , col=" | ||
| + | </ | ||
| + | |||
| + | Uma série de parâmetros gráficos podem ser utilizados diretamente nas funções '' | ||
| + | <code rsplus> | ||
| + | > scatter.smooth( cax$dap, cax$h , col=" | ||
| + | > scatter.smooth( cax$dap, cax$h , col=" | ||
| + | > scatter.smooth( cax$dap, cax$h , col=" | ||
| + | > scatter.smooth( cax$dap, cax$h , col=" | ||
| + | </ | ||
| + | |||
| + | |||
| + | 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> | ||
| + | > scatter.smooth( cax$dap, cax$h ) | ||
| + | > dim( cax ) | ||
| + | [1] 1027 8 | ||
| + | > identify( cax$dap, cax$h, 1:1027 ) | ||
| + | [1] 362 556 557 | ||
| + | > | ||
| + | > | ||
| + | > cax[ c(362, 556, 557), ] | ||
| + | local parcela arvore fuste cap | ||
| + | 362 chauas | ||
| + | 556 jureia | ||
| + | 557 jureia | ||
| + | > | ||
| + | </ | ||
| + | |||
| + | A função '' | ||
| + | |||
| + | Ao executar a funçã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> | ||
| + | > cax2 = cax[ -c(362, 556, 557), ] | ||
| + | > scatter.smooth( cax2$dap, cax2$h , col=" | ||
| + | </ | ||
| + | |||
| + | |||
| + | Também na função '' | ||
| + | <code rsplus> | ||
| + | > plot( h ~ dap, data=cax2 ) | ||
| + | </ | ||
| + | |||
| + | Nesse caso, para adicionar a linha não-paramétrica de tendência é necessário um segundo comando: | ||
| + | <code rsplus> | ||
| + | > plot( h ~ dap, data=cax2 ) | ||
| + | > lines( lowess( cax2$dap, cax2$h ) , col=" | ||
| + | </ | ||
| + | |||
| + | O uso da '' | ||
| + | <code rsplus> | ||
| + | > coplot( h ~ dap | local , data=cax2 ) | ||
| + | > coplot( h ~ dap | local*parcela , data=cax2 ) | ||
| + | </ | ||
| + | |||
| + | Também é possível adicionar uma linha de tendência em cada gráfico gerado pela função '' | ||
| + | <code rsplus> | ||
| + | > coplot( h ~ dap | local , data=cax2 , panel= panel.smooth) | ||
| + | > coplot( h ~ dap | local*parcela , data=cax2 , panel=panel.smooth) | ||
| + | </ | ||
| + | |||
| + | Na '' | ||
| + | * A barra vertical indica uma situação condicional, | ||
| + | * O asterísco ('' | ||
| + | |||
| + | A função '' | ||
| + | <code rsplus> | ||
| + | > egr = read.table(" | ||
| + | > coplot( ht ~ dap | idade, data=egr, panel = panel.smooth ) | ||
| + | > coplot( ht ~ dap | idade * rotacao , data=egr, panel = panel.smooth ) | ||
| + | > coplot( ht ~ dap | idade * as.factor(rotacao) , data=egr, panel = panel.smooth ) | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | === Exercícios === | ||
| + | |||
| + | <box left red | // | ||
| + | Analise a relação dap-altura ('' | ||
| + | </ | ||
| + | |||
| + | |||
| + | <box left red | // | ||
| + | Analise a relação entre as variáveis '' | ||
| + | </ | ||
| + | |||
| + | ==== 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: | ||
| + | <code rsplus> | ||
| + | > pairs( egr[ , c(" | ||
| + | </ | ||
| + | |||
| + | 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> | ||
| + | |||
| + | > pairs( egr[ , c(" | ||
| + | > pairs( egr[ , c(" | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | === Exercícios === | ||
| + | |||
| + | <box 100% left red | // | ||
| + | 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 ('' | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ===== 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: | ||
| + | <code rsplus> | ||
| + | > library(lattice) | ||
| + | </ | ||
| + | |||
| + | 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, | ||
| + | |||
| + | ==== Gráficos de Dispersão ===== | ||
| + | |||
| + | Para construir gráficos de dispersão no lattice usa-se a função **xyplot**: | ||
| + | <code rsplus> | ||
| + | > egr = read.csv(" | ||
| + | > xyplot( ht ~ dap, data=egr ) | ||
| + | </ | ||
| + | |||
| + | 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> | ||
| + | > xyplot( ht ~ dap | regiao , data=egr ) | ||
| + | > xyplot( ht ~ dap | regiao * rotacao , data=egr ) | ||
| + | </ | ||
| + | |||
| + | Também é possível construir gráficos com suavização: | ||
| + | <code rsplus> | ||
| + | > xyplot( ht ~ dap | regiao * rotacao , data=egr, | ||
| + | panel = function(x, | ||
| + | { | ||
| + | | ||
| + | | ||
| + | } ) | ||
| + | > | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | === Exercícios === | ||
| + | |||
| + | <box left red | // | ||
| + | Utilizando o pacote '' | ||
| + | </ | ||
| + | |||
| + | <box left red | // | ||
| + | Utilizando os dados de floresta plantada (//E. grandis//), analise a relação entre altura das árvores dominantes ('' | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | ==== Painel de Gráficos de Dispersão ===== | ||
| + | |||
| + | O pacote lattice também possui uma função específica para fazer um painel de gráficos de dispersão: **splom** (//scatter plot//): | ||
| + | <code rsplus> | ||
| + | > splom( egr[ , c(" | ||
| + | </ | ||
| + | |||
| + | Identificar grupos em cada gráfico de dispersão é mais fácil com a função **splom**, basta utilizar o argumento '' | ||
| + | <code rsplus> | ||
| + | > splom( egr[ , c(" | ||
| + | > splom( egr[ , c(" | ||
| + | </ | ||
| + | |||
| + | Também é possível adicionar uma //linha de suavização//, | ||
| + | <code rsplus> | ||
| + | > splom( egr[ , c(" | ||
| + | + panel = function(x, | ||
| + | + { | ||
| + | + | ||
| + | + | ||
| + | + } | ||
| + | + ) | ||
| + | > | ||
| + | </ | ||
| + | |||
| + | A função **panel.loess** é a função que efetivamente faz a suavização em cada gráfico de dispersão. | ||
| + | |||
| + | |||
| + | |||
| + | === Exercícios === | ||
| + | |||
| + | <box left red | // | ||
| + | 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 '' | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | ==== 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**: | ||
| + | <code rsplus> | ||
| + | > cax = read.csv(" | ||
| + | > cax$dap = cax$cap / pi | ||
| + | > | ||
| + | > histogram( ~ dap, data=cax ) | ||
| + | > histogram( ~ dap | local , data=cax ) | ||
| + | > | ||
| + | > densityplot( ~ dap, data=cax ) | ||
| + | > densityplot( ~ dap | local , data=cax ) | ||
| + | </ | ||
| + | |||
| + | |||
| + | Também é possível construir um histograma com linhas de densidade, para isso o tipo do histograma deve ser definido como '' | ||
| + | <code rsplus> | ||
| + | > histogram( ~ ht | regiao * rot , dat=egr, type=" | ||
| + | + panel = function(x, ...){ | ||
| + | + | ||
| + | + | ||
| + | + } | ||
| + | + ) | ||
| + | </ | ||
| + | |||
| + | |||
| + | 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, | ||
| + | <code rsplus> | ||
| + | > histogram( ~ ht | regiao * rot , dat=egr, type=" | ||
| + | + panel = function(x, ...){ | ||
| + | + | ||
| + | + | ||
| + | + } | ||
| + | + ) | ||
| + | </ | ||
| + | |||
| + | === Exercícios === | ||
| + | |||
| + | <box red left | // | ||
| + | Explore o comportamento da variável altura das árvores dominantes ('' | ||
| + | </ | ||
| + | |||
| + | <box red left | // | ||
| + | Analise o comportamento da variável altura ('' | ||
| + | </ | ||
| + | |||
| + | ==== Gráficos Quantil-Quantil ===== | ||
| + | |||
| + | O pacote **lattice** implementa a construção de gráficos sempre através de fórmulas, isso pode ser conveniente | ||
| + | no caso de se verificar a distribuição de uma variável em várias situações: | ||
| + | <code rsplus> | ||
| + | > qqmath( ~ dap | local, data=cax ) | ||
| + | </ | ||
| + | |||
| + | Para adicionar a linha do gráfico qq é necessário editar a função de painel: | ||
| + | <code rsplus> | ||
| + | > qqmath( ~ dap | local, data=cax, | ||
| + | + panel = function(x, ...) | ||
| + | + { | ||
| + | + | ||
| + | + | ||
| + | + } | ||
| + | + ) | ||
| + | </ | ||
| + | |||
| + | 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, a distribuição observada de DAP das árvores dos caixetais é comparada com a distribuição exponencial ('' | ||
| + | <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)), | ||
| + | + panel = function(x, | ||
| + | + { | ||
| + | + | ||
| + | + | ||
| + | + } | ||
| + | + ) | ||
| + | > | ||
| + | </ | ||
| + | |||
| + | Também é possível fazer gráficos quantil-quantil de um conjuntos de dados empíricos usando a função **qq**: | ||
| + | <code rsplus> | ||
| + | > qq( local ~ dap, data=cax, subset = ( local==" | ||
| + | > qq( local ~ dap, data=cax, subset = ( local==" | ||
| + | > qq( local ~ dap, data=cax, subset = ( local==" | ||
| + | </ | ||
| + | |||
| + | Dois aspectos devem ser notados no código acima: | ||
| + | - A variável '' | ||
| + | - O argumento '' | ||
| + | |||
| + | |||
| + | |||
| + | === Exercícios === | ||
| + | |||
| + | <box 100% red left | // | ||
| + | Verifique se a altura das árvores ('' | ||
| + | |||
| + | Faça uma análise geral e depois por região ('' | ||
| + | </ | ||
| + | |||
| + | <box 100% red left | // | ||
| + | Verifique se biomassa total ('' | ||
| + | </ | ||