·

Cursos Gerais ·

Probabilidade e Estatística 2

Envie sua pergunta para a IA e receba a resposta na hora

Fazer Pergunta

Texto de pré-visualização

Universidade Presbiteriana Mackenzie CIÊNCIAS DE DADOS BIG DATA ANALYTICS BIG DATA Analytics Análise Estatística Trilha de Aprendizagem 03 Análise Exploratória de Dados Mário Olímpio de Menezes Conteúdo I Análise Exploratória de Dados 1 Análise Exploratória de Dados 5 Checklist da Análise Exploratória de Dados 6 II Gráficos Exploratórios 2 Gráficos Exploratórios 23 Origem dos nossos dados 23 Obtendo os dados 24 Inspecionando os dados 25 Sumários Simples Uma dimensão univariados 25 ggplot2 Grammar of Graphics 26 Conclusões 33 Bibliografia 34 Ciência de Dados BIG DATA ANALYTICS BIG DATA Analytics Análise Estatística 3 I 1 Análise Exploratória de Dados 5 Análise Exploratória de Dados 1 Análise Exploratória de Dados A Análise Exploratória de Dados AED ou do inglês Exploratory Data Analysis EDA é uma abordagem ou filosofia de análise de dados que emprega uma variedade de técnicas muitas das quais gráficas para 1 Maximizar insights sobre o conjunto de dados 2 Descobrir estruturas subjacentes 3 Extrair variávies importantes 4 Detectar Anomalias e outliers 5 Testar hipóteses subjacentes ou premissas iniciais 6 Desenvolver modelos parsimoniosos e 7 Determinar um conjunto ótimo de fatoresvariáveis para a modelagem Um característica importante da AED é exatamente ser uma abordagem e não um conjunto rígido de técnicas Ao invés disso ela está mais para uma atitude ou filosofia sobre como a análise de dados deve ser conduzida Neste capítulo abordaremos alguns aspectos da AED visando identificar relacionamentos entre variáveis interessantes e às vezes inesperados verificar se existe alguma evidência a favor ou contra uma hipótese estabelecida verificar se ocorreu algum problema na coleta de dados tais como dados faltantes ou erros Ciência de Dados BIG DATA ANALYTICS BIG DATA Analytics Análise Estatística 5 Trilha de Aprendizagem 03 Análise Exploratória de Dados de medida identificar áreas onde mais dados são necessários Nesta etapa detalhes mais finos de apresentação dos dados e evidências importantes no produto final não são necessariamente o foco Checklist da Análise Exploratória de Dados 1 Formule suas questãoões 2 Leia seus dados 3 Verifique o conteúdo 4 Rode str 5 Veja o topo e o final de seus dados 6 Verifique as quantidades os ns 7 Valide com pelo uma fonte de dados externa 8 Tente a solução fácil primeiro 9 Desafie sua solução 10 Continue 1 Formule sua questão Uma questão precisa ou hipótese pode servir como uma ferramenta de redução de dimensão pode eliminar variáveis que não são imediatamente relevantes para responder a questão There are no routine statistical questions only questionable statistical routines Sir David Cox Apud RADHAKRISHNA RAO 1994 Far better an approximate answer to the right question which is often vague than an exact answer to the wrong question which can always be made precise John Tukey TUKEY 1962 Ciência de Dados BIG DATA ANALYTICS BIG DATA Analytics Análise Estatística 6 Trilha de Aprendizagem 03 Análise Exploratória de Dados Exemplos de questões Uma questão geral Os níveis de poluição do ar são maiores na costa Leste do que na costa Oeste Uma questão mais específica Os níveis de ozônio a cada hora são em média mais altos na cidade de Nova York do que em Los Angeles Ambas as questões podem ser de interesse nenhuma é certa ou errada Mas a primeira requer a inspeção de todos os poluentes ao longo de toda costa Leste e costa Oeste A segunda por outro lado somente requer a inspeção de uma única variável em duas cidades Vale a pena o tempo investido em se descobrir qual é a questão que se está realmente interessado e deixála o mais específica possível Por exemplo Que cidades nos Estados Unidos tem os mais altos níveis de poluição de ozônio ambiente Uma das questões mais importantes que se pode responder com EDA é Será que eu tenho os dados corretos para responder esta questão 2 Leia seus dados Os dados de que dispomos para analisar podem vir bem bagunçados podem precisar de limpeza Algumas vezes alguem já fez o trabalho de limpeza e você não precisará sujar as mãos Os dados podem vir de diversas fontes diferentes em diferentes formatos aprenda como lerimportálos no R R CORE TEAM 2018 Veja no material complementar da Trilha mais conteúdo sobre o dplyr uma ferramenta indispensável para a manipulação eficiente de dados no R Vamos explorar um conjunto de dados relativamente limpo da Agência de Proteção ao Meio Ambiente EPA dos EUA Sâo dados sobre os níveis de Ozônio medidos de hora em hora em Ciência de Dados BIG DATA ANALYTICS BIG DATA Analytics Análise Estatística 7 Trilha de Aprendizagem 03 Análise Exploratória de Dados todo o país EUA para o ano de 2014 Estes dados estão disponíveis no site da EPAs Air Quality System UNITED STATES ENVIRONMENTAL PROTECTION AGENCY 2018 Disponí vel em httpaqsdr1epagovaqswebaqstmpairdatadownloadfileshtml Acesso em 20 maio 2018 O conjunto de dados é um arquivo CSV onde cada linha contém uma medida horária do nível de Ozônio em algum lugar do país O arquivo original é grande 19GiB por isso vamos utilizar um pedaço amostra aleatória libraryreadr librarydatatable librarydplyr libraryknitr ozone readcsvdatasetsozonesmallcsv coltypes ccccinnccccccncnnccccccc ozone asdatatableozone Os tipos de dado de cada variável podem ser especificados de modo mais verboso ozonesmall asdatatablereadcsvdatasetsozonesmallcsv coltypes colsState Code colcharacter County Code colcharacter Site Num colcharacter Parameter Code colcharacter POC colinteger Latitude coldouble Longitude coldouble Datum colcharacter Parameter Name colcharacter Date Local colcharacter Time Local colcharacter Date GMT colcharacter Time GMT colcharacter Sample Measurement coldouble Units of Measure colcharacter MDL coldouble Uncertainty coldouble Qualifier colcharacter Method Type colcharacter Method Code colcharacter State Name colcharacter County Name colcharacter Date of Last Change colcharacter No código acima além de especificar os tipos das variáveis também especificamos literalmente Ciência de Dados BIG DATA ANALYTICS BIG DATA Analytics Análise Estatística 8 Trilha de Aprendizagem 03 Análise Exploratória de Dados os nomes das colunas conforme aparecem no arquivo fonte Quando o nome da coluna tem espaços precisamos colocar este nome entre crases Por conveniência e precaução vamos reescrever os nomes das colunas para remover qualquer espaço Sempre que trabalhar com grandes conjuntos de dados utilize bibliotecas eficientes O pacote datatable tem funções super eficientes para a manipulação de grandes conjuntos de dados Para mais informações sobre estes detalhes veja o help da função setnames setnames setnamesozone namesozone gsub namesozone ignorecase TRUE 3 Verifique o Conteúdo Assumindo que não tivemos erros na leitura dos dados temos agora um objeto no nosso ambiente de trabalho chamado ozone Vamos verificar o número de linhas e colunas nrowozone 1 1000000 ncolozone 1 24 A base de dados original tem 9085391 linhas nossa amostra tem 1000000 de linhas foi isso mesmo que você leu Esta base de dados tem relativamente poucas colunas de modo que podemos examinálas ver o arquivo e ver se confere com o que lemos Bateu 4 Rodando str Ciência de Dados BIG DATA ANALYTICS BIG DATA Analytics Análise Estatística 9 Trilha de Aprendizagem 03 Análise Exploratória de Dados strozone strictwidth wrap width 80 giveattr FALSE Classes datatable and dataframe 1000000 obs of 24 variables StateCode chr 01 56 48 47 CountyCode chr 113 039 231 187 SiteNum chr 0002 0008 1006 0106 ParameterCode chr 44201 44201 44201 44201 POC int 1 1 1 1 1 1 1 1 1 1 Latitude num 325 437 332 36 353 Longitude num 851 1106 961 871 975 Datum chr WGS84 NAD83 NAD83 NAD83 ParameterName chr Ozone Ozone Ozone Ozone DateLocal chr 20141022 20140819 20140115 20141002 TimeLocal chr 0200 1900 0900 1800 DateGMT chr 20141022 20140820 20140115 20141002 TimeGMT chr 0800 0200 1500 2300 SampleMeasurement num 0018 0039 0027 0045 0007 0043 0024 0026 001 0027 UnitsofMeasure chr Parts per million Parts per million Parts per million Parts per million MDL num 0005 0005 0005 0005 0005 0005 0005 0005 5 0005 Uncertainty num NA NA NA NA NA NA NA NA NA NA Qualifier chr NA NA NA NA MethodType chr FEM FEM FEM FEM MethodCode chr 047 087 087 047 MethodName chr INSTRUMENTAL ULTRA VIOLET INSTRUMENTAL ULTRA VIOLET ABSORPTION INSTRUMENTAL ULTRA VIOLET ABSORPTION INSTRUMENTAL ULTRA VIOLET StateName chr Alabama Wyoming Texas Tennessee CountyName chr Russell Teton Hunt Williamson DateofLastChange chr 20150202 20141008 20140418 20141211 A saída de str duplica algumas informações núm de linhas e colunas que obtivemos com os comandos anteriores ncol e nrow Mas agora podemos examinar as classes de cada coluna e ter certeza que estejam corretamente especificadas Por exemplo números devem ter classe numeric e strings classe character etc Ciência de Dados BIG DATA ANALYTICS BIG DATA Analytics Análise Estatística 10 Trilha de Aprendizagem 03 Análise Exploratória de Dados 5 Veja o Topo e o Final de seus dados Normalmente é uma boa prática examinar o início e o final de um conjunto de dados faça isso logo após a verificação de conteúdo Poderemos saber se os dados foram lidos apropriadamente se estão apropriadamente formatados e que realmente tudo esteja lá headselectozone c67 10 Latitude Longitude DateLocal 1 3246797 8508384 20141022 2 4367083 11059947 20140819 3 3315309 9611557 20140115 4 3595153 8713701 20141002 5 3532011 9748410 20140325 6 3370633 11185562 20141017 tailselectozone c67 10 Latitude Longitude DateLocal 1 4496524 9325476 20140122 2 3981110 8611447 20140624 3 3601170 9416744 20140314 4 3942689 8420077 20140601 5 3421015 11887050 20140401 6 3941250 10723056 20140427 A inspeção do final do conjunto de dados é muito importante Não é raro ocorrerem problemas na leitura dos dados e aparecer lixo no final Às vezes alguém coloca comentários no final do arquivo sem documentar isso Por isso é importante inspecionar todas as colunas Aqui nós inspecionamos algumas por conta de economia de espaço etc Você deve inspecionar todas Isso não é à prova de falhas estamos examinando apenas algumas linhas mas é um bom coneço Ciência de Dados BIG DATA ANALYTICS BIG DATA Analytics Análise Estatística 11 Trilha de Aprendizagem 03 Análise Exploratória de Dados 6 Verifique seus ns Neste exemplo vamos usar o fato conhecimento prévio de o conjunto de dados ser sobre dados coletados de hora em hora e em todo o país para iniciar nossas verificações Estes serão dois pontos de referência para comparação Nós temos dados de hora em hora sobre o Ozônio que vem de monitores espalhados em todo o país Os monitores deveriam estar monitorando continuamente durante o dia assim todas as horas deveriam esta representadas Podemos utilizar a variável TimeLocal para ver quais medidas de tempo são registradas hrs ozone groupbyTimeLocal summarizen n bindcolsslicehrs 112 slicehrs 1324 A tibble 12 x 4 TimeLocal1 n2 TimeLocal3 n4 chr int chr int 1 0000 40749 1200 41777 2 0100 41126 1300 41857 3 0200 39910 1400 42192 4 0300 39097 1500 42512 5 0400 39714 1600 42446 6 0500 42554 1700 42518 7 0600 42222 1800 42566 8 0700 41991 1900 42743 9 0800 41751 2000 42509 10 0900 41714 2100 41954 11 1000 41691 2200 41538 12 1100 41641 2300 41228 Observamos que todas as medidas são feitas na hora cheia 00 o que condiz com o esperado Tudo certo aqui então Outra informação que temos do conjunto de dados é que são medidas feitas em todo o país Assim podemos verificar se todos os estados dos Estados Unidos estão representados Podemos fazer isso assim Ciência de Dados BIG DATA ANALYTICS BIG DATA Analytics Análise Estatística 12 Trilha de Aprendizagem 03 Análise Exploratória de Dados selectozone StateName unique nrow 1 53 Parece que a representatividade é muito boa existem 53 estados no conjunto de dados mas somente 50 estados nos Estados Unidos Uma listagem dos nomes dos estados ajuda a resolver estados selectozone StateName unique metade roundnrowestados2 0 l1 dataframesliceestados 1metade l127 NA l2 dataframesliceestados metade 1nrowestados bindcolsl1 l2 StateName1 StateName2 1 Alabama Maryland 2 Wyoming Mississippi 3 Texas Massachusetts 4 Tennessee Michigan 5 Oklahoma Wisconsin 6 Arizona Kentucky 7 South Carolina Montana 8 Kansas Iowa 9 California South Dakota 10 Pennsylvania Arkansas 11 New Mexico Georgia 12 Ohio Missouri 13 Louisiana Delaware 14 Indiana West Virginia 15 Florida Vermont 16 North Carolina Oregon 17 Colorado District Of Columbia 18 New Jersey Nebraska 19 Nevada Puerto Rico 20 Illinois New Hampshire 21 Maine Washington 22 New York Connecticut 23 North Dakota Alaska Ciência de Dados BIG DATA ANALYTICS BIG DATA Analytics Análise Estatística 13 Trilha de Aprendizagem 03 Análise Exploratória de Dados 24 Utah Rhode Island 25 Minnesota Idaho 26 Virginia Country Of Mexico 27 NA Hawaii Podemos ver que Washington DC District Of Columbia Puerto Rico e Country Of Mexico são os estados extras inclusos no conjunto de dados Podemos remover estes estados extras com a seguinte linha de código juntando a função filter e a função select do dplyr ozone filterStateName in cDistrict Of Columbia Puerto Rico Country Of Mexico selectStateName unique nrow 1 50 Agora sim 50 estados Vamos remover estes extras Tudo parece OK com nosso conjunto de dados ozone ozone filterStateName in cDistrict Of Columbia Puerto Rico Country Of Mexico 7 Valide com pelo menos uma fonte de dados externa Nos EUA temse padrões nacionais de qualidade do ar Para Ozônio o valor padrão estabelecido em 2008 é que o quarto maior máximo diário anual de concentração de 8horas com média de 3 anos não devem exceder 0075 partes por milhão ppm Os detalhes exatos de como calcular isso não são importantes para esta análise Mas grosseiramente falando a concentração média para o período de 8 horas não deve ser muito maior do que 0075ppm ela pode ser maior por conta da maneira como o padrão foi escrito Vamos dar uma olhada nas medidas horárias de Ozônio Ciência de Dados BIG DATA ANALYTICS BIG DATA Analytics Análise Estatística 14 Trilha de Aprendizagem 03 Análise Exploratória de Dados summaryozoneSampleMeasurement Min 1st Qu Median Mean 3rd Qu Max 000000 001900 003000 003029 004100 013200 Podemos ver do sumário que o máximo das concentrações horárias é relativamente alto 0132ppm mas em geral a distribuição dos valores está bem abaixo dos 0075 Podemos obter um pouco mais de detalhes da distribuição olhando nos decis dos dados quantileozoneSampleMeasurement seq0 1 01 0 10 20 30 40 50 60 70 80 90 100 0000 0009 0016 0022 0026 0030 0034 0039 0043 0050 0132 Sabendo que o padrão nacional para o Ozônio é em torno de 0075 podemos ver dos dados que Os dados são pelo menos da ordem de magnitude correta ie as unidades estão corretas A faixa de valores da distribuição é grosseiramente o que se esperaria dada a regulação em torno dos níveis de poluição ambiental Alguns níveis horários menos que 10 estão acima de 0075 mas isto pode ser razoável dada a escrita do padrão e o método de tirar a média envolvido 8 Tente a solução fácil primeiro Relembre que nossa questão original foi Que cidades nos Estados Unidos tem os mais altos níveis de poluição de ozônio ambiente Qual a resposta mais simples que poderíamos prover a esta questão Como queremos saber as cidades que tem os níveis mais altos parece que precisamos uma listagem das cidades ordenada da mais alta para a mais baixa com relação aos seus níveis de Ozônio O que exatamente significa níveis de Ozônio Ciência de Dados BIG DATA ANALYTICS BIG DATA Analytics Análise Estatística 15 Trilha de Aprendizagem 03 Análise Exploratória de Dados Vamos simplesmente pegar a média ao longo do ano todo para cada cidade e então ordenálas com relação a esta métrica Para identificar cada cidade vamos utilizar uma combinação das variáveis StateName com CountyName ranking groupbyozone StateName CountyName summarizeozone meanSampleMeasurement asdataframe arrangedescozone Agora podemos inspecionar nas 10 cidades do topo e as de baixo deste ranking headranking 10 StateName CountyName ozone 1 Colorado Clear Creek 005038364 2 California Mariposa 004822409 3 Colorado Park 004815704 4 California Nevada 004812483 5 Colorado Chaffee 004768354 6 Wyoming Albany 004744774 7 California Inyo 004478889 8 Utah San Juan 004465689 9 Nevada White Pine 004361160 10 California El Dorado 004357385 tailranking 10 StateName CountyName ozone 783 Alaska Matanuska Susitna 002103488 784 Minnesota Hennepin 002094179 785 Oregon Multnomah 002090385 786 New Jersey Warren 002085201 787 Georgia DeKalb 002072757 788 Louisiana West Baton Rouge 002014807 789 Oregon Washington 001951870 790 Washington Whatcom 001890303 791 Oklahoma Caddo 001765901 792 Alaska Fairbanks North Star 001313941 Parece interessante que das cidades do topo todas estão na parte Oeste dos EUA com 4 delas no estado da Califórnia Ciência de Dados BIG DATA ANALYTICS BIG DATA Analytics Análise Estatística 16 Trilha de Aprendizagem 03 Análise Exploratória de Dados Vamos dar uma olhada em uma das cidades de maior nível segunda no ranking Mariposa County California Quantas observações temos para esta cidade filterozone StateName California CountyName Mariposa nrow 1 1312 Este número de observações parece correto Há 24 horas no dia 365 dias por ano o que nos dá 8760 Este número está um pouco distante do que obtivemos Algumas vezes as cidades podem utilizar métodos alternativos de medidas durante o ano e talvez isso explique esta diferença no número de observações Vamos ver agora como o Ozônio varia ao longo do ano inspecionando as médias mensais Para isso vamos converter a variável data em uma variável da classe Date ozone mutateozone DateLocal asDateDateLocal Agora vamos rodar uma análise que utiliza os nomes dos meses para fazer o agrupamento dos dados pegamos as duas cidades do top 10 do nosso ranking Clear Creek Colorado e Mariposa Californa librarylubridate CcreekCO filterozone StateName Colorado CountyName Clear Creek mutatemonth lubridatemonthDateLocal label TRUE abbr FALSE groupbymonth summarizeozone meanSampleMeasurement narm T nmeas n mariposaCA filterozone StateName California CountyName Mariposa mutatemonth lubridatemonthDateLocal label TRUE abbr FALSE groupbymonth summarizeozone meanSampleMeasurement nmeas n fulljoinCcreekCO mariposaCA by month suffix cCCreek Mariposa arrangemonth Ciência de Dados BIG DATA ANALYTICS BIG DATA Analytics Análise Estatística 17 Trilha de Aprendizagem 03 Análise Exploratória de Dados A tibble 12 x 5 month ozoneCCreek nmeasCCreek ozoneMariposa nmeasMariposa ord dbl int dbl int 1 January 00472 75 00409 79 2 February 00479 33 00396 84 3 March NA NA 00449 87 4 April 00574 37 00503 88 5 May 00612 66 00509 142 6 June 00621 53 00562 150 7 July 00523 63 00527 116 8 August 00494 66 00554 114 9 September 00479 85 00534 147 10 October 00477 85 00475 139 11 November 00447 83 00356 93 12 December 00439 63 00347 73 Algumas coisas chamam a atenção aqui olhando para os dados temos o seguinte Primeiro em Clear Creek o Ozônio parece ser mais alto nos meses finais da primavera Maio e Junho enquanto que em Mariposa os meses mais altos são no verão para ambas as cidades os níveis parecem ser mais baixos nos meses do inverno um pouco mais evidente para Mariposa Segundo parece haver alguma correlação entre o maior nível apresentado nos meses de verão e o número de medidas feitas nestes mesmos meses para Mariposa o mesmo acontece para os meses do inverno menos medidas e menores níveis notadamente para Mariposa Para Clear Creek o número de medidas se mantem na mesma ordem de grandeza abaixo de 100 com as maiores quantidades de medidas nos meses de Setembro Outubro e Novembro Esta cidade apresenta inclusive um mês sem medidas Março Provavelmente isso precisará ser investigado em uma análise mais profunda talvez com consultas à fonte dos dados EPA para entender estes detalhes Agora vamos inspecionar uma das cidades com os menores níveis Caddo County Oklahoma filterozone StateName Oklahoma CountyName Caddo nrow 1 827 Aqui novamente temos um número baixo de observações também bem abaixo do esperado anualmente Ciência de Dados BIG DATA ANALYTICS BIG DATA Analytics Análise Estatística 18 Trilha de Aprendizagem 03 Análise Exploratória de Dados Podemos inspecionar os dados para ver se há alguma coisa interessante acontecendo caddopornomes filterozone StateName Oklahoma CountyName Caddo mutatemonth lubridatemonthDateLocal label TRUE abbr FALSE groupbymonth summarizeozone meanSampleMeasurement nmeas n caddopornomes A tibble 12 x 3 month ozone nmeas ord dbl int 1 January 00174 61 2 February 000221 42 3 March 0002 79 4 April 00221 56 5 May 00252 89 6 June 00195 72 7 July 00195 67 8 August 00251 80 9 September 00190 85 10 October 00201 81 11 November 00194 67 12 December 00115 48 Podemos ver que os níveis de Ozônio são realmente muito baixos nesta cidade com um número de medidas bem abaixo dos apresentados por outras cidades como por exemplo Mariposa Alguns meses apresentam valores bem abaixo da média Será que estão dentro do limite de detecção da técnica Apesar do número de observações estar bem abaixo da cidade de Mariposa apresenta menos variação ao longo do ano 9 Desafie sua solução A solucao fácil é legal porque bem ela é fácil Ciência de Dados BIG DATA ANALYTICS BIG DATA Analytics Análise Estatística 19 Trilha de Aprendizagem 03 Análise Exploratória de Dados Mas nunca devemos permitir que aqueles resultados sejam os duradouros Devemos sempre pensar em maneiras de desafiar os resultados especialmente se aqueles resultados se comportam da maneira que esperávamos A solução fácil parece ter funcionado bem Ela nos deu uma listagem das cidades que tem os maiores valores médios de Ozônio para 2014 Contudo algumas questões foram levantadas Por exemplo há variações consideráveis no número de medidas em alguns meses para algumas cidades Será que isso é um problema Será que isso afeta nosso ranking das cidades se estes valores fossem errados Quão estáveis são os rankings de ano para ano Só temos um ano de medidas dados até agora mas talvez pudéssemos ter uma ideia da estabilidade do ranking dando uma bagunçada nos dados e inspecionando para ver se alguma coisa mudou Este processo chamase shuffling e é interessante para aproximar as mudanças nos dados de um ano para outro Podemos imaginar que de um ano para outro os dados de Ozônio tenham uma variação aleatória mas geralmente segue padrões similares ao longo do país Fazendo o shuffling podemos aproximar esta mudança nos dados de um ano para o outro Não é o ideal mas nos dá uma ideia de qual estável é o nosso ranking Veja no material complementar da Trilha como realizar este método para validar os resultados obtidos Ciência de Dados BIG DATA ANALYTICS BIG DATA Analytics Análise Estatística 20 Trilha de Aprendizagem 03 Análise Exploratória de Dados 10 Continue Vimos até aqui alguns passos simples que devemos tomar quando iniciamos uma Análise Exploratória Foi uma análise simples não perfeita mas nos fez pensar sobre os dados e sobre questões de interesse Também nos deixou com várias coisas por fazer caso continuemos interessados nesta questão Algumas das questões que devemos considerar neste ponto podem ser 1 Temos o conjunto de dados certo Às vezes a conclusão da EDA é que o conjunto de dados disponível não é o mais apropriado para a questão 2 Precisamos de mais dados Uma das questões que levantamos foi se o ranking das cidades era estável ao longo dos anos Nós fizemos uma tentativa simples para responder mas é claro que precisaríamos de mais dados para isso 3 Fizemos a pergunta correta Neste caso não está claro que a questão que tentamos responder tem uma relevância imediata e os dados realmente não indicaram nada que aumentasse a sua relevância Por exemplo poderia ser mais interessante avaliar quais cidades estão violando o padrão nacional de qualidade do ar porque isso teria implicações regulatórias Mas isso seria bem mais complicado e precisariamos dados de pelo menos 3 anos Finalizando O objetivo da Análise Exploratória de Dados é fazernos pensar sobre os dados e raciocinar sobre nossa questão Neste ponto podemos refinar nossa questão ou coletar novos dados Tudo em um processo iterativo para chegarmos à verdade No próximo capítulo continuaremos a Análise Exploratória de Dados através de Gráficos Explo ratórios Ciência de Dados BIG DATA ANALYTICS BIG DATA Analytics Análise Estatística 21 II 2 Gráficos Exploratórios 23 Gráficos Exploratórios 2 Gráficos Exploratórios Há muitas razões para se utilizar gráficos na análise exploratória de dados Quando a quantidade de pontos no conjunto de dados não permite uma rápida inspeção através de tabelas a visualização gráfica é essencial Nos permite entender as propriedades básicas do conjunto de dados Encontrar padrões simples nos dados e Sugerir possíveis estratégias de modelagem The simple graph has brought more information to the data analysts mind than any other device John Tukey TUKEY 1962 Origem dos nossos dados Utilizaremos um estudo de caso para demonstrar os tipos de gráficos simples que podem ser úteis na Análise Exploratória de Dados Nossos dados procedem da US Environmental Protection Agency EPA que define os padrões americanos de qualidade do ar para a poluição externa Um destes padrões de qualidade do ar diz respeito a média de longo prazo da poluição por partículas finas também conhecida como PM25 Ciência de Dados BIG DATA ANALYTICS BIG DATA Analytics Análise Estatística 23 Trilha de Aprendizagem 03 Análise Exploratória de Dados O padrão diz que a média anual calculada sobre 3 anos não pode exceder 12 microgramas por metro cúbido Dados diários de PM25 são disponíveis no site da EPA EPA Air Quality System website Uma questão chave que estamos interessados é Há algum município nos EUA que excedeu o padrão nacional de poluição por par tículas finas Obtendo os dados Primeiramente vamos ler nossa base de dados que foi compilada a partir dos dados disponíveis no site da EPA Este conjunto de dados contém o valor médio anual de PM25 calculado para o período de 2008 até 2010 Um conjunto de dados com todos os valores dos 3 anos foi utilizado Agrupamos os dados por município county e calculamos a média por município Retivemos apenas 5 variáveis das bases de dados originais pm25 fips region longitude latitude Bibliotecas do R e leitura do arquivo de dados libraryreadr librarydatatable librarydplyr classes cnumeric character factor numeric numeric pollution readcsvdatasetsavgpm25csv colClasses classes headpollution pm25 fips region longitude latitude Ciência de Dados BIG DATA ANALYTICS BIG DATA Analytics Análise Estatística 24 Trilha de Aprendizagem 03 Análise Exploratória de Dados 1 9698236 01003 east 8788141 3049800 2 10156352 01027 east 8580218 3328126 3 10389521 01033 east 8765056 3475878 4 10944446 01049 east 8596830 3428763 5 12003958 01055 east 8599107 3399375 6 10336960 01069 east 8539077 3122636 Inspecionando os dados Parte da exploração é verificar a estrutura dos dados no R Vamos fazer uma inspeção rápida strpollution strictwidth wrap giveattr FALSE dataframe 639 obs of 5 variables pm25 num 97 102 104 109 12 fips chr 01003 01027 01033 01049 region Factor w 2 levels eastwest 1 1 1 1 1 1 1 1 1 1 longitude num 879 858 877 86 86 latitude num 305 333 348 343 34 Sumários Simples Uma dimensão univariados Para sumários unidimensionais univariados temos algumas opções no R Sumário de cinco números mínimo 25 mediana 75 e máximo dos dados fivenum Boxplots representação visual do sumário dos cinco números mais algumas coisinhas outliers variáveis numéricas boxplot Gráfico de Barras visualizar variáveis categórias com o número de cada categoria proporcinal à altura da barra barplot Histograma mostra a distribuição completa dos dados além dos cinco números Permite a inspeção da skewness dos dados simetria multimodalidade e outras características variáveis numéricas hist juntamente com a função rug Gráfico de densidade calcula uma estimativa não paramétrica da distribuição de variáveis numéricas contínuas Ciência de Dados BIG DATA ANALYTICS BIG DATA Analytics Análise Estatística 25 Trilha de Aprendizagem 03 Análise Exploratória de Dados Nosso objetivo é falar de gráficos assim não abordaremos aqui sumários numéricos No material complementar da Trilha temos estes sumários Nós vamos abordar a seguir o ggplot2 por ser o sistema gráfico atualmente mais utilizado No material complementar fornecido na Trilha estes gráficos sumários são criados também com o sistema gráfico base do R ggplot2 Grammar of Graphics O ggplot2 é o sistema gráfico mais utilizado atualmente no R principalmente devido à sua sofisticação Com este sistema podese produzir gráficos altamente elaborados com muito controle sobre todos os detalhes Com ggplot2 começamos um gráfico com a função ggplot que cria um sistema de coordenadas no qual poderemos adicionar camadas O primeiro argumento de ggplot é o conjunto de dados a ser utilizado no gráfico Assim ggplotdatampg cria um gráfico vazio mas como não é interessante não vamos mostrálo aqui Vamos completando nosso gráfico adicionando uma ou mais camadas ao ggplot A função geompoint adiciona uma camada de pontos ao nosso gráfico que cria um scatterplot ggplot2 vem com muitas funções geom cada uma adiciona um tipo diferente de camada ao gráfico Cada função geom no ggplot2 recebe um argumento mapping Este argumento define como as variáveis no nosso conjunto de dados são mapeadas às propriedades visuais O argumento mapping é sempre pareado com aes e os argumentos x e y de aes especificam quais variáveis devem ser mapeadas aos eixos x e y ggplot2 busca pelas variáveis mapeadas no conjunto de dados fornecido pelo argumento data no caso acima mpg Vamos utilizar também o pacote ggpubr que ajuda a criar gráficos com qualidade de publicação bem facilmente Começamos pelo boxplot Ciência de Dados BIG DATA ANALYTICS BIG DATA Analytics Análise Estatística 26 Trilha de Aprendizagem 03 Análise Exploratória de Dados Figura 1 Nível de PM25 com indicação do limite nacional 5 10 15 20 Nível Fonte Elaborado pelo autor Boxplots univariados com ggplot2 A Figura 1 mostra o boxplot univariado feito com o ggplot2 libraryggplot2 libraryggpubr ggplotdata pollution geomboxplotaesx identity y pm25 width 03 varwidth F labsy Nível x caption Fonte Elaborado pelo autor geomablineslope 0 intercept 12 color red scalexdiscretelabels NULL breaks NULL labspubr themepubr themeplotcaption elementtexthjust 0 Detalhes do R ggplot2 A função labs do ggplot2 nos permite adicionar Labels ao gráfico title o título principal subtitle subtítulo caption eventualmente a fonte dos dados Ciência de Dados BIG DATA ANALYTICS BIG DATA Analytics Análise Estatística 27 Trilha de Aprendizagem 03 Análise Exploratória de Dados Figura 2 Distribuição de PM25 separada por região dos EUA com indicação do limite nacional 5 10 15 20 east west Regiões Nível de PM25 Fonte Elaborado pelo autor x e y títulos dos eixos entre outras possibilidades como o título da legenda Boxplots com dados multivariados A Figura 2 mostra um gráfico com 2 boxplots dos valores de PM25 para as regiões east e west dos EUA ggplotpollution geomboxplotaesregion pm25 width 05 labsx Regiões y Nível de PM25 caption Fonte Elaborado pelo autor geomablineslope 0 intercept 12 color red labspubr themepubr themeplotcaption elementtexthjust 0 Histogramas com ggplot2 A Figura 3 mostra o histograma de PM25 agora feito com o ggplot2 Ciência de Dados BIG DATA ANALYTICS BIG DATA Analytics Análise Estatística 28 Trilha de Aprendizagem 03 Análise Exploratória de Dados Figura 3 Histograma dos níveis de PM25 0 50 100 5 10 15 20 Níveis Frequência Magenta mediana Amarelo limite nacional Fonte Elaborado pelo autor ggplotpollution geomhistogramaespm25 bins 16 fill green color black geomvlinexintercept 12 color yellow lwd 2 geomrugaespm25 labstitle Magenta mediana Amarelo limite nacional x Níveis y Frequência caption Fonte Elaborado pelo autor geomvlinexintercept medianpollutionpm25 color magenta lwd 2 labspubr themepubr themeplotcaption elementtexthjust 0 Podemos aumentar o número de breaks do histograma utilizando a opção bins da função geomhistogram conforme mostrado na Figura 4 ggplotpollution geomhistogramaespm25 bins 100 fill green color black geomrugaespm25 labsx Níveis y Frequência caption Fonte Elaborado pelo autor labspubr themepubr themeplotcaption elementtexthjust 0 Uma outra técnica de visualização muito eficiente é o facetamento isto é a criação de diversos gráficos lado a lado formando uma grade de gráficos Esta técnica é especialmente aplicada Ciência de Dados BIG DATA ANALYTICS BIG DATA Analytics Análise Estatística 29 Trilha de Aprendizagem 03 Análise Exploratória de Dados Figura 4 Histograma dos níveis de PM25 com 100 breaks 0 10 20 30 5 10 15 20 Níveis Frequência Fonte Elaborado pelo autor quando queremos comparar as distribuições de diversas variáveis simultaneamente conforme mostrado na Figura 5 O facetamento é feito com uma variável categórica ou seja observamos o comportamento de uma ou mais variáveis numéricas com relação aos níveis da variável categórica Pode ser feito tanto para boxplot histogramas e scatterplots ggplotpollution geomhistogramaespm25 bins 16 fill green color black labsx Níveis y Frequência caption Fonte Elaborado pelo autor facetgrid region geomvlinexintercept 12 color yellow lwd 2 geomvlinexintercept medianpollutionpm25 color magenta lwd 2 labspubr themepubr themeplotcaption elementtexthjust 0 Gráfico de Barras A Figura 6 mostra um gráfico de barras feito com o ggplot2 ggplotpollution geombaraesx region stat count fill wheat color black labsy Num Municípios caption Fonte Elaborado pelo autor x labspubr Ciência de Dados BIG DATA ANALYTICS BIG DATA Analytics Análise Estatística 30 Trilha de Aprendizagem 03 Análise Exploratória de Dados Figura 5 Histograma dos níveis de PM25 por região east west 5 10 15 20 5 10 15 20 0 20 40 60 80 Níveis Frequência Fonte Elaborado pelo autor themepubr themeplotcaption elementtexthjust 0 Scatterplots Um gráfico no layout Opções default A Figura 7 mostra um scatterplot feito com o ggplot2 ggplotpollution geompointaesx latitude y pm25 geomablineslope 0 intercept 12 linetype 2 labscaption Fonte Elaborado pelo autor labspubr themepubr themeplotcaption elementtexthjust 0 Uma técnica muito eficiente para adicionar informação ao gráfico é a utilização de cor No gráfico mostrado na Figura 8 utilizaremos a cor para identificar as duas regiões dos Estados Unidos west e east ggplotpollution geompointaesx latitude y pm25 color region geomablineslope 0 intercept 12 linetype 2 labscaption Fonte Elaborado pelo autor Ciência de Dados BIG DATA ANALYTICS BIG DATA Analytics Análise Estatística 31 Trilha de Aprendizagem 03 Análise Exploratória de Dados Figura 6 Número de Municípios por Região dos EUA 0 100 200 300 east west Num Municípios Fonte Elaborado pelo autor Figura 7 Distribuição de PM25 conforme latitude 5 10 15 20 20 30 40 50 60 latitude pm25 Fonte Elaborado pelo autor Ciência de Dados BIG DATA ANALYTICS BIG DATA Analytics Análise Estatística 32 Trilha de Aprendizagem 03 Análise Exploratória de Dados Figura 8 Distribuição de PM25 conforme latitude por região dos EUA 5 10 15 20 20 30 40 50 60 latitude pm25 Região east west Fonte Elaborado pelo autor color Região labspubr themepubr themeplotcaption elementtexthjust 0 Conclusões Gráficos Exploratórios são rápidos e às vezes feios Seu propósito é sumarizar os dados e destacar qualquer aspecto amplo Também são úteis para se explorar questões básicas sobre os dados e para se julgar a evidência a favor ou contra certas hipóteses E por fim podem ser úteis para se definir as estratégias de modelagem que podem ser empregadas no próximo passo do processo de análise Veja mais R for Data Science httpr4dshadconz WICKHAM GROLEMUND 2017 Ciência de Dados BIG DATA ANALYTICS BIG DATA Analytics Análise Estatística 33 Bibliografia RADHAKRISHNA RAO C Statistics an essential technology in environmental research and management Environmental and Ecological Statistics v 1 n 1 p 719 1 mar 1994 R CORE TEAM R A Language and Environment for Statistical Computing Vienna Austria R Foundation for Statistical Computing 2018 TUKEY J W The Future of Data Analysis The Annals of Mathematical Statistics v 33 n 1 p 167 1962 WICKHAM H GROLEMUND G R for Data Science Sebastopol CA USA OReilly Media Inc 2017 Ciência de Dados BIG DATA ANALYTICS BIG DATA Analytics Análise Estatística 34 eadmackenziebr