Ferramentas do usuário

Ferramentas do site


02_tutoriais:tutorial4:start

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
02_tutoriais:tutorial4:start [2020/09/22 23:47]
rafael.melhem [O quarteto de Anscombe]
02_tutoriais:tutorial4:start [2023/08/15 20:37] (atual)
Linha 6: Linha 6:
 ====== 4. Tutoriais de Análise Exploratória de Dados ====== ====== 4. Tutoriais de Análise Exploratória de Dados ======
  
-Antes de iniciar uma análise propriamente dita, precisamos conhecer os dados e avaliar problemas com relação às etapas anteriores da pesquisa (coleta, processamento,​ estruturação e digitação dos dados brutos). As variáveis coletadas são aleatórias,​ ou seja, há diferentes fontes de variabilidade associadas a sua representação Precisamos avaliar essa variabilidade ​ e suas relações com as outras variáveis para poder tomar decisões embasadas sobre as análises que irão testar as hipóteses a respeito dessa variável.+Antes de iniciar uma análise propriamente dita, precisamos conhecer os dados e avaliar problemas com relação às etapas anteriores da pesquisa (coleta, processamento,​ estruturação e digitação dos dados brutos). As variáveis coletadas são aleatórias,​ ou seja, há diferentes fontes de variabilidade associadas a elas. Precisamos avaliar essa variabilidade e suas relações com as outras variáveis para poder tomar decisões embasadas sobre as análises que pretendemos realizar.
  
 Dentre os principais **objetivos** de uma Análise Exploratória de Dados (AED) podemos listar os seguintes: Dentre os principais **objetivos** de uma Análise Exploratória de Dados (AED) podemos listar os seguintes:
Linha 17: Linha 17:
   * Avaliar se variáveis preditoras apresentam colinearidade;​   * Avaliar se variáveis preditoras apresentam colinearidade;​
  
-Não é objetivo ​desse tutorial passar por todos esses tópicos e sim, apresentar algumas técnicas da linguagem R para auxiliá-lo a iniciar as análises exploratória dos dados. Essas técnicas passam por duas instrumentações básicas: análise numérica com estatísticas descritivas e análises gráficas, explorando a variabilidade das variáveis e sua relação com outras variáveis.+Não é objetivo ​deste tutorial passar por todos esses tópicos e sim, apresentar algumas técnicas da linguagem R para auxiliá-lo a iniciar as análises exploratória dos dados. Essas técnicas passam por duas instrumentações básicas: análise numérica com estatísticas descritivas e análises gráficas, explorando a variabilidade das variáveis e sua relação com outras variáveis.
    
  
Linha 82: Linha 82:
  
 É possível também operar vários vetores lógicos para retornar os ''​NA''​s em mais de uma variável: É possível também operar vários vetores lógicos para retornar os ''​NA''​s em mais de uma variável:
 +
 +<code rsplus>
 +is.na(aves$urubu) | is.na(aves$carcara)
 +</​code>​
 +
 +Acima o teste lógico com ''​|''​ entre vetores lógicos, opera nas posições utilizando a <wrap em>regra de equivalência</​wrap>,​ retornando ''​TRUE''​ se pelo menos um dos vetores tiver, na mesma posição, o valor ''​TRUE''​. O teste retornará ''​FALSE''​ apenas se os vetores tiverem, na mesma posição, o valor ''​FALSE''​. Ao final, o vetor resultante terá ''​TRUE''​ quando ''​urubu''​ for ''​NA''​ <wrap em>​ou</​wrap>​ ''​carcara''​ for ''​NA''​ na posição equivalente. ​
  
 <code rsplus> <code rsplus>
Linha 87: Linha 93:
 </​code>​ </​code>​
  
-Acima teste lógico com ''​|'' ​entre vetores lógicos, retorna ​''​TRUE''​ se um dos vetores tiver na posição ''​TRUE''​ e ''​FALSE'' ​apenas se todos tiverem ​''​FALSE'',​ ou seja, retorna as linhas ​onde existe algum ''​NA''​ entre as variáveis ''​urubu'',​ ''​caracara''​ ou ''​seriema''​.+Se indexarmos ​objeto ​''​aves'' ​com a operação lógica ​''​is.na''​ e ''​|'' ​para os três vetores, ele retorna as linhas onde o teste é ''​TRUE'',​ ou seja, onde existe algum ''​NA''​ entre as variáveis ''​urubu'',​ ''​caracara''​ ou ''​seriema''​.
 Vamos guardar esses registros em um objeto, atribuindo o resultado do código acima a um objeto: Vamos guardar esses registros em um objeto, atribuindo o resultado do código acima a um objeto:
  
Linha 94: Linha 100:
 </​code>​ </​code>​
  
-Agora vamos sobrescrever os ''​NA''​s com o valor ''​0''​ nas posições associadas aos vetores lógicos produzidos pelo ''​is.na''​. Para garantir que está sobrescrevendo ​posição onde está o erro, faça o processo em duas etapas, primeiro verifique o valor daquela ​posição antes de alterá-lo.+Agora vamos sobrescrever os ''​NA''​s com o valor ''​0''​ nas posições associadas aos vetores lógicos produzidos pelo ''​is.na''​. Para garantir que está sobrescrevendo ​na posição onde está o erro, faça o processo em duas etapas, primeiro verifique o valor naquela ​posição antes de alterá-lo.
  
 <code rsplus> <code rsplus>
Linha 110: Linha 116:
 </​code>​ </​code>​
  
-Para garantir que fizemos a substituição corretamente,​ vamos verificar, comparando as linhas que agora tem zeros com o objeto onde guardamos os registros contendo ''​NA''​s:​+Para garantir que fizemos a substituição corretamente,​ vamos verificar, comparando as linhas que agora têm ''​0''​((Lembrando que antes não havia nenhum ''​0''​ nos dados, ou seja, as linhas que agora têm ''​0''​ são as linhas onde, anteriormente,​ sobrescrevemos algum elemento por ''​0''​)) ​com o objeto onde guardamos os registros contendo ''​NA''​s:​
  
 <code rsplus> <code rsplus>
Linha 119: Linha 125:
 ==== Conferindo Fatores ==== ==== Conferindo Fatores ====
  
-As variáveis categóricas ou fatores podem ser conferidas com as funções ''​table''​ ou ''​unique''​ que retornam os níveis únicos, no primeiro caso fazendo a contagem e no segundo apenas os nomes únicos. Vamos aplicá-las para a variável ''​fisionomia'': ​  ​+As variáveis categóricas ou fatores podem ser conferidas com as funções ''​table''​ ou ''​unique''​ que retornam os níveis únicos, no primeiro caso fazendo a contagem e no segundo apenas os nomes únicos. Vamos aplicá-las para a variável ''​fisionomia'': ​ 
  
  
Linha 151: Linha 157:
 Agora parece que tudo está correto! Agora parece que tudo está correto!
 ===== Estatística Descritiva ===== ===== Estatística Descritiva =====
- 
-[[http://​cerradoemquadrinhos.blogspot.com/​|{{:​02_tutoriais:​tutorial4:​cerrado38.jpg?​600 ​ |}}]] 
  
 Vamos usar o mesmo arquivo da sessão anterior para explorar as estatísticas descritivas básicas, começando pela média e pela mediana. Nós já usamos o ''​apply''​ para aplicar uma função a alguma dimensão de um objeto: Vamos usar o mesmo arquivo da sessão anterior para explorar as estatísticas descritivas básicas, começando pela média e pela mediana. Nós já usamos o ''​apply''​ para aplicar uma função a alguma dimensão de um objeto:
Linha 172: Linha 176:
 O ''​trim''​ retira do cálculo da média os valores extremos com o corte definido pelo fator estipulado a partir das observações extremas. Nesse caso, retiramos 10% dos maiores valores e 10% dos menores. Como a média é muito sensível a valores extremos, se houver algum valor muito grande ou pequeno em relação ao resto, a média truncada seria bem diferente da média com todos os dados. O ''​trim''​ retira do cálculo da média os valores extremos com o corte definido pelo fator estipulado a partir das observações extremas. Nesse caso, retiramos 10% dos maiores valores e 10% dos menores. Como a média é muito sensível a valores extremos, se houver algum valor muito grande ou pequeno em relação ao resto, a média truncada seria bem diferente da média com todos os dados.
    
-Os quantis ​são também ​é uma forma de verificar se a distribuição dos valores é simétrica. O padrão da função ''​quantile''​ é retornar os quartis, que é a divisão dos dados em seus quartos depois de ordená-los:​ mínimo, 1/4, 1/2, 3/4 e máximo, sendo que a mediana é o segundo quartil onde os dados são divididos pela metade (menores e maiores). Quando usamos a função ''​summary''​ em um vetor de dados numéricos, esses valores também são apresentados:​+Os quantis também ​são uma forma de verificar se a distribuição dos valores é simétrica. O padrão da função ''​quantile''​ é retornar os quartis, que é a divisão dos dados em seus quartos depois de ordená-los:​ mínimo, 1/4, 1/2, 3/4 e máximo, sendo que a mediana é o segundo quartil onde os dados são divididos pela metade (menores e maiores). Quando usamos a função ''​summary''​ em um vetor de dados numéricos, esses valores também são apresentados:​
 <code rsplus> <code rsplus>
 quantile(aves$urubu) ​ quantile(aves$urubu) ​
Linha 192: Linha 196:
 ===== Gráficos Univariados ====== ===== Gráficos Univariados ======
  
-Os gráficos são ferramentas importantes para avaliarmos as variáveis dos nossos dados. No tópico de gráficos vamos estudar mais fundo as funções associadas a elaboração de gráficos no R, por enquanto vamos apenas aplicar algumas funções básicas sem nos preocuparmos muito com o acabamento dos gráficos. Normalmente a análise exploratória de dados é introspectiva,​ buscando entender as variáveis e não apresentá-las para alguma audiência.+Os gráficos são ferramentas importantes para avaliarmos as variáveis dos nossos dados. No tópico de gráficos vamos estudar mais fundo as funções associadas a elaboração de gráficos no R, por enquanto vamos apenas aplicar algumas funções básicas sem nos preocuparmos muito com o acabamento dos gráficos. Normalmente a análise exploratória de dados é introspectiva,​ buscando entender as variáveis e não apresentá-las para alguma audiência.
 Vejamos alguns gráficos básicos de diagnóstico de uma variável numérica, usando como exemplo o avistamento de urubus no Cerrado: Vejamos alguns gráficos básicos de diagnóstico de uma variável numérica, usando como exemplo o avistamento de urubus no Cerrado:
  
Linha 260: Linha 264:
  
  
-==== Histogramas ​====+==== Comparações com distribuições teóricas ​====
  
 Vamos agora retornar aos dados reais de [[dados:​dados-caixeta|caixetais]] para explorar a variável numérica contínua ''​cap''​ das árvores: Vamos agora retornar aos dados reais de [[dados:​dados-caixeta|caixetais]] para explorar a variável numérica contínua ''​cap''​ das árvores:
  
 <code rsplus> <code rsplus>
-caixeta <- read.table(file = "​caixeta.csv",​ sep = ",",​ header = TRUE) #​certifique-se que o arquivo esta em seu diretorio ​de trabalho+caixeta <- read.table(file = "​caixeta.csv",​ sep = ",",​ header = TRUE) #​certifique-se que o arquivo esta em seu diretório ​de trabalho
 summary(caixeta$cap) summary(caixeta$cap)
 par(mfrow = c(1, 2)) par(mfrow = c(1, 2))
Linha 273: Linha 277:
 </​code> ​ </​code> ​
  
-Essa distribuições ​de valores não parece nada com uma distribuição normal. Parece muito assimétrica com os dados concentrados nos valores menores. Além disso, tem uma longa cauda para os valores maiores. Várias características desses dados levam a uma distribuição como essa, as principais são:+Essa distribuição ​de valores não parece nada com uma distribuição normal. Parece muito assimétrica com os dados concentrados nos valores menores. Além disso, tem uma longa cauda para os valores maiores. Várias características desses dados levam a uma distribuição como essa, as principais são:
   * o ''​cap''​ mínimo de inclusão foi 20 mm, ou seja não há como ter valores menores. Mesmo que pudesse, os valores estariam restritos a valores positivos e seria truncado no zero;   * o ''​cap''​ mínimo de inclusão foi 20 mm, ou seja não há como ter valores menores. Mesmo que pudesse, os valores estariam restritos a valores positivos e seria truncado no zero;
   * a estrutura de tamanho de populações estáveis de plantas tem a tendência a ter uma distribuição como essa de ''​J''​ invertido, devido às variações nas taxas vitais (crescimento,​ sobrevivência e reprodução) ao longo da sua ontogênese.   * a estrutura de tamanho de populações estáveis de plantas tem a tendência a ter uma distribuição como essa de ''​J''​ invertido, devido às variações nas taxas vitais (crescimento,​ sobrevivência e reprodução) ao longo da sua ontogênese.
Linha 291: Linha 295:
 </​code>  ​ </​code>  ​
  
-Para resolver o problema de distribuição de valores assimétricos e truncados no zero é muito comum utilizar a transformação ''​log'',​ vamos explorar essa transformação:​+Para resolver o problema de distribuição de valores assimétricos e positivos ​é muito comum utilizar a transformação ''​log'',​ vamos explorar essa transformação:​
  
 <code rsplus> <code rsplus>
Linha 312: Linha 316:
 /* /*
 ===== Exploração de uma Variável Categórica ===== ===== Exploração de uma Variável Categórica =====
-Vamos usar um conjunto de dados de um inventário de árvores, que você baixa [[:​dados:​dados-caixeta| aqui]]. Leia com atenção a descrição deste conjunto de dados.+Vamos usar um conjunto de dados de um inventário de árvores, que você pode baixar ​[[:​dados:​dados-caixeta| aqui]]. Leia com atenção a descrição deste conjunto de dados.
  
 Vamos explorar a variável categórica nome da espécie, com a função ''​table'':​ Vamos explorar a variável categórica nome da espécie, com a função ''​table'':​
Linha 404: Linha 408:
  
 Os dados originais continha 1027 observações,​ agora o ''​caixetaH''​ tem 48, pois compilou os dados de altura em sua média para cada espécie em cada uma das localidades. O objeto ''​caixAlt''​ por sua vez tem 43 linhas e 3 colunas que contém as mesmas médias. Como é possível? ​ \\ Os dados originais continha 1027 observações,​ agora o ''​caixetaH''​ tem 48, pois compilou os dados de altura em sua média para cada espécie em cada uma das localidades. O objeto ''​caixAlt''​ por sua vez tem 43 linhas e 3 colunas que contém as mesmas médias. Como é possível? ​ \\
-No primeiro caso nos temos 3 variáveis: ''​local'',​ ''​especie''​ e ''​x''​ (média de altura). No ''​caixAlt''​ temos as linhas representando as ''​espécies'',​ as colunas representando as ''​localidades''​ e os valores no interior da ''​matrix''​ como as médias das alturas.+No primeiro caso nós temos 3 variáveis: ''​local'',​ ''​especie''​ e ''​x''​ (média de altura). No ''​caixAlt''​ temos as linhas representando as ''​espécies'',​ as colunas representando as ''​localidades''​ e os valores no interior da ''​matrix''​ como as médias das alturas.
    
  
Linha 429: Linha 433:
 O gráfico de dispersão nos permite avaliar a relação entre duas variáveis numéricas: O gráfico de dispersão nos permite avaliar a relação entre duas variáveis numéricas:
  
-<​code>​+<​code ​rsplus>
 plot(x = caixeta$cap,​ caixeta$h) plot(x = caixeta$cap,​ caixeta$h)
 </​code>​ </​code>​
Linha 446: Linha 450:
  
 <code rsplus> <code rsplus>
-fun(x ~ y, data = dados)+fun(y ~ x, data = dados)
 </​code>​ </​code>​
  
Linha 474: Linha 478:
  
 <code rsplus> <code rsplus>
-fun(x ~ y | z, data = dados)+fun(y ~ x | z, data = dados)
 </​code>​ </​code>​
   * ''​z''​ = variável condicionantes   * ''​z''​ = variável condicionantes
Linha 528: Linha 532:
 </​code>​ </​code>​
  
-Uma outra forma de apresentar essa relação é através dos coeficientes da reta de um modelo linear entre as duas variáveis. Essa relação é obtida pela função ''​coef''​ aplicada ao um objeto de modelo linear ((isso será alvo das aulas de modelo linear)). Vamos avaliar esse coeficientes para os quatro conjuntos de variáveis:+Uma outra forma de avaliar a relação é através dos coeficientes da reta de um modelo linear entre as duas variáveis. Essa relação é obtida pela função ''​coef''​ aplicada ao um objeto de modelo linear ((isso será alvo das aulas de modelo linear)). Vamos avaliar esse coeficientes para os quatro conjuntos de variáveis:
  
 <code rsplus> <code rsplus>
Linha 537: Linha 541:
 </​code> ​ </​code> ​
  
-Todos os coeficientes estão muito próximos a ''​3.00''​ e ''​0.50''​, indicando que os dados são muito similares e tem as mesmas características:​ médias, desvios, correlações e a relação linear.  +Perceba que todos os coeficientes estão muito próximos a ''​3.00''​ e ''​0.50''​. 
-Vamos fazer os gráficos de dispersão entre as variáveis ''​x''​ e ''​y''​ para os quatro casos e vamos incluir a relação linear para cada par com a função ''​abline''​ que grafa essa relação. Nossa única inclusão no  ''​plot''​ foram os argumentos ''​xlim''​ e ''​ylim''​ para que todos os gráficos tenham as mesmas escalas nos eixos ((veja a documentação do ''​plot''​)):​+Vamos fazer os gráficos de dispersão entre as variáveis ''​x''​ e ''​y''​ para os quatro casos e vamos incluir a relação linear para cada par com a função ''​abline''​ que grafa essa relação. Nossa única inclusão no ''​plot''​ foram os argumentos ''​xlim''​ e ''​ylim''​ para que todos os gráficos tenham as mesmas escalas nos eixos ((veja a documentação do ''​plot''​)):​
  
  
Linha 569: Linha 573:
 </​code>​ </​code>​
  
-Este conjunto de dados foi criado pelo estatístico Frank Anscombe para demonstrar a importância da análise visual de dadosveja [[http://​en.wikipedia.org/​wiki/​Anscombe'​s_quartet|aqui]]. Note como são diferentes, o primeiro é uma relação que parece estar adequada às premissas dos modelos lineares, o segundo mostra uma clara relação não linear entre as variáveis, já o terceiro tem um dado influente que promove uma inclinação que não acompanha o conjunto dos dados e promove além da mudança da relação uma não homogeneidade da variância, por fim, o quarto mostra também um ponto muito influente e com alta alavancagem que define a relação entre as variáveis e, caso seja retirado da amostra, as variáveis ''​y4''​ em função de ''​x4''​ não apresenta ​nenhuma relação! ​+Este conjunto de dados foi criado pelo estatístico Frank Anscombe para demonstrar a importância da análise visual de dados (veja mais detalhes ​[[http://​en.wikipedia.org/​wiki/​Anscombe'​s_quartet|aqui]]). Em nossas análises exploratórias não gráficas, vimos que as médias, desvios, correlações e coeficientes de reta são praticamente idênticos, o que indicaria que os dados são similares. Note como são diferentes, ​apesar das estatísticas similares: ​o primeiro é uma relação que parece estar adequada às premissas dos modelos lineares, o segundo mostra uma clara relação não linear entre as variáveis, já o terceiro tem um dado influente que promove uma inclinação que não acompanha o conjunto dos dados e promove além da mudança da relação uma não homogeneidade da variância, por fim, o quarto mostra também um ponto muito influente e com alta alavancagem que define a relação entre as variáveis e, caso seja retirado da amostra, as variáveis ''​y4''​ em função de ''​x4''​ não apresentam ​nenhuma relação! ​
  
 ===== Leia mais sobre análise exploratória de dados ===== ===== Leia mais sobre análise exploratória de dados =====
02_tutoriais/tutorial4/start.1600829231.txt.gz · Última modificação: 2020/09/22 23:47 por rafael.melhem