Tag

análise exploratória de dados Archives - Análise Macro

O que é Teste de Hipóteses

By | Hackeando o R

Teste de hipóteses é uma formulação estatística que visa confirmar ou negar determinada suposição de uma população, utilizando dados amostrais. A condução desse tipo de teste é de extrema importância para a área cientifica e de análise de dados, visto que é através destes métodos que pode-se estabelecer com maior confiança a afirmação de uma suposição. Neste post de hoje, introduziremos o teste de hipóteses e realizaremos um exemplo utilizando o R.

Ao analisarmos qualquer fato da vida real, sempre realizamos suposições, de forma a tentar estabelecer o que pode ser verdadeiro ou falso. De fato, através de interpretações e da lógica, podemos supor e inferir sensos comuns, entretanto, podemos realmente afirmar tudo desta forma?

As Hipóteses que criamos a partir desses sensos podem, de fato, serem testadas, através de métodos estatísticos. Utilizaremos um exemplo neste instante: ao pensarmos em todos os fatos históricos e sociais, (a depender, vivência) podemos supor que homens tendem a serem promovidos em uma proporção maior que mulheres. De fato, essa e qualquer suposição podem carregar altas cargas de subjetividade, então como podemos nos livrar ao máximo dessa subjetividade e afirmar com alta certeza uma suposição?

Para obter uma ideia sobre como podemos realizar esse procedimento, realizamos o Teste de Hipóteses, no qual podemos separar em sete passos.

Hipótese

A Hipótese, como dito, é uma suposição, e essa suposição é um parâmetro de população.  Obviamente, não iremos conseguir realizar um teste na população, portanto, é necessário utilizar uma amostra para estimar esse ponto. Ou seja, através de um parâmetro populacional estabelecido, iremos estimar o seu ponto amostral. Existem diversos parâmetros populacionais. Abaixo elencamos três importantes.

Parâmetro Populacional Notação Ponto Estimado Símbolos
Proporção da População \rho Proporção da Amostra \hat{\rho}
Média populacional \mu Média amostral Média populacional\hat{\mu}
Diferença na proporção da população \rho_1 - \rho_2 Diferença na proporção da amostra \hat{\rho_1 }- \hat{\rho_2}

No exemplo acima, o parâmetro da população de interesse é a diferença na proporção de populações \hat{\rho_1 }- \hat{\rho_2}
$$. Devemos utilizar desse meio para realizar um estudo.

Teste de Hipótese

O Teste de Hipótese  consiste em teste entre duas hipóteses (suposições) que competem entre si:

  • A Hipótese Nula (H0),  supõe que não há nenhum efeito ou diferença de um grupo para outro. Representa que "não há nada acontecendo".
  • A Hipóteses Alternativa (Ha) é a suposição que "compete" com a Hipótese Nula, e tenta se opor a ela.

Sendo assim, é possível criar as Hipóteses da seguinte maneira:

  1. H0: homens e mulheres são promovidos na mesma taxa.
  2. Ha: homens são promovidos a uma taxa maior que mulheres
  3. Ha: mulheres são promovidas a uma taxa maior que homens
  4. Ha: Há uma diferença na taxa de promoção de mulheres em relação aos homens.

A escolha das hipóteses acima será crucial para a montagem e verificação do estudo, bem como cada hipótese será analisada de uma forma diferente, a depender da forma que foi criada.  Se a busca é por uma diferença na proporção de homens que são promovidos a uma taxa maior que mulheres,  significa que a hipótese é unicaudal (o mesmo para o  contrário), se a alternativa diz que há apenas uma diferença nas taxas de promoção, não importando se maior ou menor, dizemos que é uma hipótese bicaudal. Essa diferenciação será útil para quando quisermos descobrir se o parâmetro estimado é significativo.

Para simplificar, escolheremos apenas uma hipótese alternativa: homens são promovidos a uma taxa maior que mulheres (unicaudal a direita). Portanto, o teste fica dessa forma:

  • H0: \hat{\rho_h}- \hat{\rho_m} = 0
  • Ha: \hat{\rho_h}- \hat{\rho_m} > 0

Teste Estatístico

O Teste Estatístico é um ponto a ser estimado, isto é, dentre as N quantidades de observações da amostra, iremos criar a estimativa de um único ponto calculado, que neste caso é a diferença na proporção da amostra entre duas categorias \hat{\rho_h}- \hat{\rho_m}

Teste Estatístico Observado

Teste Estatístico Observado é o valor encontrado através do teste estatístico postulado no passo anterior, ou seja, é a estimativa na vida real da estatística amostral calculada. Portanto, devemos encontrar esse valor da diferença de proporções com \hat{\rho_h}- \hat{\rho_m}

Distribuição Nula

A Distribuição Nula é a distribuição da amostra do teste estatístico assumindo que a hipótese nula H0 é verdadeira. Vamos dizer que não há discriminação de gênero em promoções de emprego no problema pesquisado (que significa dizer sob H0), então, sob H0, como o teste estatístico varia devido a uma variação amostral?  Veja bem, o ponto estimado é calculado com base nos dados da amostra, se os valores da amostra variarem, a estimativa do ponto também irá mudar, correto? Portanto, como a diferença na proporção amostral  \hat{\rho_h}- \hat{\rho_m}, irá variar devido a amostragem sob H0? Esse é um passo delicado, visto que existe diversas formas de realizar o procedimento.

O procedimento acima chama-se distribuição amostral, e devemos ter em mente que a distribuição nula é a distribuição amostral assumindo que a hipótese nula H0 é verdadeira.

p-valor

O p-valor é a probabilidade de obter o teste estatístico sob H0 (lembrando que supomos que H0 é verdadeiro) de forma que o valor do teste seja extremo. Basicamente: o quão surpresos ficaríamos com o resultado encontrado no teste estatístico observado? Seria difícil dizer o quanto um valor na diferença nas proporções para diferentes amostras seria significativo e deveria ser considerado ou não. No caso do exemplo, na hipótese de que não há discriminação de promoções, caso o teste estatístico observado tenha um valor extremo, deveríamos considerar de que há de fato uma discriminação de promoções, o que nos levaria a rejeitar H0. Ou seja, o p-valor nos ajudará a quantificar a probabilidade de ocorrência desse valor extremo.

Nível de Significância

É recomendado definir em testes de hipóteses o nível de significância do estudo, denotado por α. Esse valor define a área que devemos aplicar o p-valor, isto é, se o p-valor ficar abaixo de α, devemos rejeitar a hipótese nula H0. Ao contrário, se o p-valor ficar acima de α, não podemos rejeitar H0.

Conduzindo o teste de hipóteses

Os passos citados acima fazem parte de um framework construído por Allen Downey, nomeado de "There is only one test", que facilitou o processo do teste de hipóteses para qualquer variável e teste estatístico. Para conduzir o teste de hipóteses, utilizaremos o pacote {infer}, que possui funções criadas voltadas para este fim e foram totalmente baseadas nos passos de Alllen Downey.

Workflow - Teste de Hipóteses com o pacote {infer}

 

Workflow - "There is only one test" Allen Downey

 

A primeira imagem, retirada do site do pacote {infer}, demonstra o workflow de suas função e dos procedimentos do teste de hipótese. Na segunda imagem, o workflow construído por Allen Downey através do artigo "There is Only one test". Veja as similaridade entre as imagens. As funções do pacote representam os passos propostos por Allen Downey. Cada função é proposta da seguinte forma:

specify() -  Específica as variáveis de interesse ou que devem se relacionar do data frame;

hyphotesize() - Define a Hipótese nula H0. Ou seja, cria um modelo para o universo, assumindo H0 como verdadeiro;

generate() - "Mistura" a amostra, assumindo H0 como verdadeiro;

calculate() - Calcula o teste estatístico de interesse, tanto o observado, quanto o simulado;

visualize() - Visualiza o resultado da distribuição nula e computa o p-valor para comparar a distribuição nula com o teste estatístico observado.

Exemplo com {infer}

Realizamos toda a explicação do Teste de Hipóteses utilizando como exemplo a discriminação na promoção de mulheres em empresas. Para continuar com o mesmo exemplo no R, utilizaremos o dataset promotions, que contém dados de uma pesquisa realizada na década de 1970, no qual foi distribuído currículo idênticos de empregados em empresas da indústria bancária, apenas diferenciando-se pelo nome da pessoa (permitindo supor o sexo da pessoa).

O dataset possui 48 observações, contendo a coluna com o nome "decision", identificando se houve promoção ou não, e outra coluna chamada "gender" identificando se o currículo entregado era de uma mulher ou de um homem. A coluna "id" apenas identificado as observações.

O primeiro passo, além de carregar os pacotes, é examinar o dataset, conduzindo uma breve análise exploratória.

É possível perceber que de fato houve uma diferença no tratamento entre homens e mulheres neste caso. A questão é: podemos dizer que é significativo? É possível realizar uma inferência deste problema? Seguimos com as funções do pacote {infer} para realizar o teste de hipóteses.

Primeiro definimos a construção da distribuição nula. Veja que seguimos todos os passos descritos acima. Definimos a formula da especificação (já intuitivamente pensando no parâmetro a ser estimado), a hipótese nula, a criação da amostragem, sendo gerado 1000 repetições através da permutação. Calculamos a distribuição referenciando o parâmetro (diff in props - diferença em proporções) e a ordem que queremos calcular.

Em seguida, construímos o teste estatístico observado, utilizando apenas duas funções: specify e calculate.

Por fim, podemos obter o p-valor com a função get_p_value, bem como podemos visualizar onde se encontra dentro da distribuição nula. Vemos que de fato, o p-valor é menor que 5% e que obtemos um teste estatístico observado extrema, nos levando a rejeitar a hipótese de que homens e mulheres são promovidos na mesma taxa.

Quer saber mais?

Veja nossos cursos de R e Python aplicados para a Análise de Dados e Economia

_____________________________________________

Referências

Downey, Allen. There is Only one test

Kim, Y. Albert. Ismay, Chester. Statistical Inference via Data Science A ModernDive into R and the Tidyverse

Correlação não implica em Causalidade

By | Hackeando o R

A frase "correlação não implica causalidade" é bem difundida no campo da análise de efeito de uma variável X sobre Y. A frase é totalmente correta, mas mesmo que muitas vezes ditas, muitas pessoas ainda não entendem o porque é afirmado. Para entender melhor sobre essa questão, iremos realizar uma breve interpretação sobre o efeito de uma variável sobre a outra explicando o que é correlação e regressão utilizando o R, e por fim, discorreremos sobre o que é causalidade.

O que é correlação?

A correlação é uma medida que visa calcular a força da relação linear entre duas variáveis, principalmente de duas variáveis contínuas. A correlação de Pearson é a mais utilizada para representar este indicador, sendo definida como a covariância entre duas variáveis normalizada (i.e dividida) pelo produto de seus desvios padrão.

As duas questões mais importantes que devemos sempre lembrar sobre correlação são:

1) É uma relação linear, ou seja, uma linha linear de ajuste pode ser traçada em um gráfico de dispersão das duas variáveis para verificar visualmente esse ponto.

2) A força é bidirecional, ou seja, a força medida pela correlação exemplifica a relação entre as duas variáveis e não uma sobre a outra.

A correlação pode ser negativa, positiva ou nula (próxima de zero). Visualmente, podemos verificar estas três possíveis relações.

Como exemplo, utilizamos o dataset palmerpenguins para exemplificar a correlação entre as variáveis, construindo uma matriz de correlação. Vemos abaixo a estrutura do dataset, bem como as variáveis contínuas que podemos relacionar.

Além da matriz, também seria interessante ver a relação entre as variáveis através de um gráfico de dispersão de modo que possamos avaliar a relação linear entre as variáveis. No caso abaixo, visualizamos a relação de bill_length_mm (comprimento do culmen) e body_mass_g (massa corporal).

Existem diversos tipos de correlação, bem como métodos de inferências (dado que estamos lidando com amostras), sendo possível realizar testes de hipóteses.  O pacote {correlation} facilita utilização destas ferramentas, porém, não iremos nos aprofundar sobre elas neste post.

Realizamos uma breve introdução ao conceito de correlação, vimos que podemos medir a força da relação entre duas variáveis, mas e se quisermos avaliar o efeito de uma variável X em Y? Para isso, podemos evoluir para a Regressão Linear.

Regressão Linear

Para podermos avaliar o possível efeito de uma variável em outra utilizamos a Regressão Linear. Como dito anteriormente, podemos traçar uma reta para verificar a linearidade das duas variáveis (isto porque a regressão linear também deve possuir uma relação linear, não é?), a questão aqui é que esta reta é expressa também através de uma equação e será através dela que iremos definir a relação entre a variável dependente e independente.

     $$Y = \beta_{0} + \beta_{1}X + e$$

Em que Y será a variável dependente e X será a variável independente.  \beta_{0} é o intercepto,  \beta_{1} é o coeficiente da regressão que vai ponderar o efeito de X sobre Y. Não trataremos sobre como calcular  \beta_{1} , no qual ensinamos essa questão no nosso curso de Econometria.

O  e significa o termo de erro da nossa equação, isto é, caso calcularmos o efeito de X sobre Y, o termo de erro será a diferença entre o que estimamos e o valores reais, ou seja, toda a informação que não foi inserida na nossa equação. Para solucionar este ponto, podemos inserir dentro da equação as variáveis que carregam esta informação, evoluindo o nosso modelo para uma Regressão Linear Múltipla.

Como estamos trabalhando com uma amostra, também queremos inferir o efeito da regressão para a população. Podemos verificar este ponto através do teste t ou p valor dado um nível de confiança.

Causalidade

E onde a causalidade entra em tudo isso? Afinal, correlação é uma forma ver a relação entre as duas variáveis, e a regressão é uma forma de ver o efeito de X em Y. Intuitivamente, já sabemos que a correlação não é o melhor método para buscar causalidade, sendo o segundo método mais apropriado.

Dizer que há causalidade em algo, significa dizer que há o uma variável causa efeito em outra. Entretanto, nem sempre é possível ter certeza desta questão, mesmo com indicadores estatísticos, portanto, é necessário mais que isso.

Um dos problemas que podemos tropeçar é a correlação espúria, que diz respeito quando há uma relação estatística entre duas variáveis, entretanto, essa relação é causada por pura coincidência ou por causa de uma terceira variável. Este é um dos diversos problemas que podemos ter ao realizarmos os cálculos entre duas variáveis.

Veja por exemplo a correlação entre bill_length_mm e flipper_length_mm (que diz respeito ao tamanho das asas do pinguim). Há uma força muito grande entre ambas, por que há esse efeito? E se fizéssemos um exemplo com regressão?

Vemos que há uma forte relação do efeito de uma sobre a outra. Mas podemos pensar, é possível mesmo que quanto maior a nadadeira do pinguim, maior será o comprimento de seu cúlmen? Não faz sentido lógico (por mais que eu não entenda de pinguins). É possível que uma terceira variável fora do modelo esteja influenciando ambas as variáveis (talvez a altura do pinguim?). De fato, devemos ter uma olhar crítico e mais dados em mãos para afirmar qualquer causalidade.

____________________________________________

Quer saber mais?

Veja nossos cursos de R e Python aplicados para a Análise de Dados e Economia

_____________________________________________

Referências

Mount, G. Advancing Into Analytics. Estados Unidos, O'Reilly Media, 2021.

O que é Análise Exploratória de Dados?

By | Hackeando o R

Nunca saberemos o que dizem os dados se nunca os analisarmos, este é o princípio da Análise Exploratória de Dados. A AED potencializa a pesquisa com dados, permitindo que analistas consigam entender o que de fato o conjunto de dados descreve. No post de hoje, introduzimos o conceito de AED e demonstramos um exemplo com o R.

O que é AED?

Como dito, a AED é um conjunto de métodos que o analista utiliza para descrever um determinado conjunto de dados, permitindo compreender o comportamento de diversas variáveis. Permite também solidificar uma base para criar hipóteses e modelos preditivos/causais.

Apesar de crucial, a AED causa dificuldades naqueles que querem entrar no mundo dos dados, e o motivo é simples: cada conjunto de dados se comporta de uma forma, portanto, apesar de uma metodologia, cada "ferramenta" da metodologia se encaixa melhor em determinado dataset, enquanto em outros não, portanto, saber diferenciar quais "ferramentas" devem ser utilizadas é parte de um conhecimento analítico e crítico.

Mas afinal, qual metodologia é essa ? De quais formas podemos "entrevistar" nossos dados e retirar insights? Os meios mais importantes são:

  • Classificar as variáveis em categóricas ou quantitativas;
  • Sumarizar os dados utilizando estatísticas descritivas;
  • Visualizar os dados utilizando gráficos.

Como dito, cada um desse processo pode haver inúmeras ferramentas, cada qual se encaixa melhor para um conjunto de dados em específico. Iremos realizar um exercício tomando como base o dataset peguins do pacote {palmerpenguins}, que possui dados de medidas dos corpos de pinguins, por espécies, por sexo e por ilha em Palmer Station na Antárctica.  Explicaremos como podemos ler o dataset, bem como cada qual ferramenta podemos utilizar inserido no contexto de cada processo acima.

Antes de começar a AED, precisamos olhar nosso conjunto de dados e assegurar que eles devem ter os seguintes requisitos: deve seguir uma forma retangular/tabular de colunas e linhas; cada linha deve representar uma observação; cada coluna representa uma variável. Abaixo, carregamos o pacote e vemos como é o dataset penguins.

Veja que o dataset segue uma forma retangular com colunas e linhas, o que facilita o uso da linguagem e de outro softwares para realizar uma análise dos dados. Como dito, chamamos a colunas de variáveis e linhas de observações, e qual o significado disto?

Observações remetem uma única observação do dataset e suas características, desde indivíduos, tempo, país e no caso do dataset acima, uma amostra sobre as informações de pinguins em Palmer Station, com um total de 334 linhas.

As características destes pinguins são representadas pelas colunas, chamadas de variáveis. Ocorre uma variação de cada observação ao longo das linhas, portanto, as variáveis provêm informações preciosas sobre algo. Há 8 variáveis no dataset penguins.

Cada variável possui um tipo diferente, e que para cada tipo existe uma ferramenta adequada para a análise. A classificação destas variáveis é realizada de forma relativamente arbitrária, com um certo padrão na escolha destes tipos. Elas podem ser:

  • Categóricas: Assume valores que dizem respeito sobre a qualidade ou característica de cada observação.  Os valores são não numéricos, como strings (caracteres) ou lógicos. É subdividido em binário, nominal e ordinal.
    • Binário: Assume apenas dois valores, normalmente como sim ou não; True ou False; 0 ou 1 ou qualquer outra característica de dois valores;
    • Nominal: Valores qualitativos que assumem mais de dois valores, como país, nome, espécie do pinguim, etc.
    • Ordinal: Valores qualitativos que assumem mais de dois valores e também possuem uma ordem intrínseca, como pequeno, médio, grande, dias da semana e etc.
  • Quantitativas: variáveis quantitativas são valores numéricos que dizem respeito a grandeza de uma variável. Assumem valores contínuos ou discretos.
    • Contínuo: em teoria, assumem uma distância não padrão entre uma observação e outra, bem como essa distância pode ser um número infinito de possíveis valores.
    • Discreto: assumem apenas valores fixos entre duas observações.

Classificação de variáveis

Vemos no dataset qual variável se encaixa melhor em cada classificação, remetemos novamente ao quadro anterior, e utilizamos a função glimpse() para entender como o R reconhece as variáveis. Veja que não é difícil tirar conclusões sobre.

  1. species (fct) - categóricos - nominal: Espécie do pinguim
  2. island (fct) - categórico - nominal: Ilha do pinguim
  3. bill_length_mm (double) - quantitativo - continuo: comprimento do cúlmen
  4. bill_depth_mm (double)  - quantitativo - continuo: profundidade do cúlmen
  5. flipper_length_mm - (integer) - quantitativo  - contínuo: comprimento da nadadeira
  6. body_mass_g (integer) - quantitativo - contínuo: massa corporal
  7. sex (fct) - categórico - binário: Sexo do Pinguim
  8. year (integer) - categórico - ordinal:  Ano

Explorando: variáveis categóricas

Antes de explorar os dados, devemos primeiro realizar uma pergunta a nós mesmos: o que eu quero analisar? De fato, podemos simplesmente realizar visualizações e construir estatísticas descritivas com todas as variáveis, mas antes, realizar a definição de uma pergunta sobre o que analisar facilita a direção do trabalho.

Com isso, podemos realizar a pergunta: Qual a distribuição de pinguins por espécies em cada ilha? E o sexo? Podemos explorar as variáveis categóricas a fim de obter as respostas.

As variáveis categóricas devem ser exploradas em formato de contagem, afinal, como não são numéricas não podemos utilizar de medidas estatísticas diretamente. Utilizamos a função count() do pacote {dplyr} para realizar o cálculo.

Em poucas linhas obtivemos os resultado das perguntas criadas acima. O interessante do count() é que é também útil para alegar um problema constante na AED: valores faltantes no dataset.  Não iremos lidar diretamente com este problema aqui, porém, tomaremos cuidado com eles na análise.

Outro método mais amigável para investigar variáveis categóricas é através da visualização. Utilizaremos o pacote ggplot2 para gerar um gráfico de barras, que é uma das melhores ferramentas para averiguar a distribuição dos dados categóricos.



Interessante, não? Podemos partir para como lidar com as variáveis quantitativas.

Explorando variáveis quantitativas

Será que pinguins de diferentes ilhas possuem tamanhos de bicos muito diferentes? Qual espécie possui, em média, uma massa corporal maior? Aqui podemos utilizar diretamente de medidas estatísticas. Para as perguntas, podemos realizar uma combinação da função group_by() para agrupar por categóricas, e em seguida utilizar a função summarise() para aplicar o cálculo de uma medida estatística para cada grupo.

Veja que ambas as perguntas foram respondidas, uma por meio do desvio padrão e outro por meio da média. Com cada resposta seria possível realizar ainda mais perguntas sobre os dados, como: A variação do comprimento do bico em cada ilha ocorre devido as distribuição de espécies por ilha? Além da espécie, é necessário levar em conta a distribuição do sexo de penguim por espécie para tirar conclusões sobre o peso? De fato, poderíamos criar cada vez mais perguntas e seguir uma caminho para Análise, por isso, é sempre necessário escolher um direcionamento antes de começar um AED.

Como seria exaustivo responder todas as perguntas aqui, continuaremos a utilizar diferentes ferramentas para entender as perguntas feitas anteriormente. Os gráficos podem ser nossos aliados.

____________________________________________

Essas são algumas das ferramentas que podemos utilizar para que possamos realizar uma Análise Exploratória de Dados. Existem inúmeras outras técnicas e que você pode aprender com nossos cursos de R e Python aplicados para a Análise de Dados e Economia. Confira:

Análise exploratória de dados macroeconômicos no R

By | Data Science

Neste post iremos revelar algumas coisas que nunca te contaram sobre análise exploratória e como usá-la para ter uma visão geral aplicada a dados macroeconômicos.

Antes de tudo, precisamos entender onde a análise exploratória de dados - do inglês exploratory data analysis (EDA) - está inserida no contexto de uma análise descritiva ou em modelos que usem dados macroeconômicos. Para tais contextos, é fundamental conhecer os dados antes de partir para qualquer exercício empírico, ou seja, queremos uma fotografia que mostre um panorama geral sobre os dados. Esse primeiro passo é extremamente útil para identificar possíveis "pontos cegos" que gerariam problemas no seu modelo ou que poderiam ser interpretados de forma errônea em sua análise conjuntural, por exemplo.

Em outras palavras, a famosa expressão garbage in, garbage out (lixo entra, lixo sai) resume perfeitamente a importância da análise exploratória. Você precisa saber se os dados a serem utilizados possuem a qualidade (características) necessária para fazer uma análise ou se estão simplesmente cheios de sujeiras (outliers, valores ausentes, quebras, etc.). É neste momento em que você aprenderá mais sobre os dados, identificando padrões e comportamentos, assim como saberá o que precisará fazer (tratamentos) para torná-los úteis.

Mas de que tipo de dados estamos falando?

Em geral, os dados macroeconômicos mais usados possuem uma estrutura de série temporal, mas outras estruturas como dados em painel, microdados, etc. também possuem aplicações em macroeconomia. Focando em séries temporais, pode-se destacar algumas coisas que você deve ficar de olho ao fazer uma análise exploratória de dados:

  • Sazonalidade;
  • Tendência;
  • Autocorrelação;
  • Estacionariedade.

Algumas estatísticas e gráficos que irão te ajudar a inspecionar estes padrões e comportamentos:

  • Média, mediana, desvio padrão e IQR;
  • Gráfico de histograma;
  • Gráfico de linha;
  • Gráfico de sazonalidade;
  • Correlogramas ACF e PACF;
  • Testes de estacionariedade ADF, KPSS e PP.

Parece ser bastante coisa para se preocupar em uma análise exploratória e realmente é - podendo ainda ampliarmos este escopo -, mas se usarmos as ferramentas adequadas podemos colocar tudo isso em prática de maneira rápida e eficiente, direcionando o foco na análise propriamente dita. Na linguagem R, existem diversos pacotes modernos com utilidades para análise exploratória de dados, exploraremos a seguir alguns destes pacotes.

Para reproduzir o exercício a seguir você precisará dos seguintes pacotes de R:

Dados

Para exemplificar uma análise exploratória de dados macroeconômicos, usaremos um conjunto de dados que traz informações sobre indicadores econômicos mensais da economia norte-americana. A fonte dos dados é o FRED e os mesmos já estão salvos em um dataset no R:

Estatísticas descritivas

As medidas de estatística descritiva, como média, desvio padrão, percentis, etc. servem para obter uma visão geral dos dados. É um bom primeiro passo se você não tem expertise sobre a variável com a qual irá desenvolver uma análise. O pacote {skimr} faz esse trabalho de calcular estas estatísticas de uma maneira simples e bem apresentada, basta apontar o objeto com os dados:

Note que, além das estatísticas descritivas, também são apresentadas informações como nº e taxa de valores ausentes, gráfico de histograma, valores mínimos e máximas, etc. - a depender do tipo de variável na qual será computado tais cálculos -, que são informações bastante úteis para identificar possíveis problemas nos dados.

Histograma

Talvez apenas com estatísticas descritivas não seja possível ter uma visão clara sobre o comportamento da variável de interesse, ou seja, como os dados estão distribuídos. Para resolver isso, é conveniente gerar um gráfico de histograma, que pode ser criado com o {ggplot2}:

A visualização gráfica dos dados é muito importante pois nos permite rapidamente identificar nos dados algumas coisas interessantes, como neste caso do histograma. A distribuição dos dados apresenta uma cauda alongada a direita, ou seja, possivelmente há algumas poucas observações dessa variável (duração do desemprego) com valores mais "extremos". A questão que surge é: em qual período do tempo aconteceram estes valores? Ou seja, qual é a tendência da variável?

Tendência

O jeito mais direto de identificar a tendência de uma variável é através de um gráfico de linha. Abaixo geramos um gráfico de linha e adicionamos uma linha de suavização, que pode facilitar o rápido entendimento em alguns casos:

Dessa forma, conseguimos identificar que no período mais recente, ou seja, nas últimas observações a partir de 2010, há uma tendência de aumento no tempo de duração do desemprego, superando o histórico observado nas décadas anteriores. Note que, com apenas dois gráficos e algumas estatísticas descritivas, já conseguimos insumos interessantes para uma análise mais aprofundada.

Sazonalidade

A olho nu no gráfico anterior não parece haver comportamento que indique sazonalidade, mas como poderíamos identificar tal comportamento em uma variável? Novamente, a análise gráfica pode auxiliar nessa tarefa. O gráfico de sazonalidade gerado abaixo basicamente é um gráfico de linha, com a exceção de que o eixo X mostra os dados da sazonalidade observada da variável. No caso de dados em frequência mensal, o eixo X será os meses.

O gráfico facilita identificar mais claramente padrões sazonais, que para essa variável não há, além de ser mais fácil de visualizar em quais anos que o padrão muda.

Estacionariedade

Outro ponto importante, principalmente em contextos de modelagem econométrica, é a estacionariedade da série, ou seja, a média e a variância são constantes ao longo do tempo? Quando em uma variável estes pressupostos não são verdadeiros, dizemos que a série possui raiz unitária (é não-estacionária), de modo que os choques que a variável sofre geram um efeito permanente. Parece ter sido esse o caso da variável em questão, a duração do desemprego. Vimos que as flutuações da variável se alteraram consideravelmente, e isso tem fortes implicações relacionadas a teorias econômicas que tratam de ciclos. Mas, fugindo da teoria, como verificamos de maneira prática se a variável é estacionária? O pacote {forecast} possui uma excelente função permitindo aplicar testes, como o ADF, KPSS e PP, que já retornam o número de diferenças necessárias para a série ser estacionária:

Se o valor retornado for maior do que zero, significa que a série é não-estacionária e precisa ser diferenciada na ordem do valor retornado para ser estacionária.

Autocorrelação

Por fim, outra questão importante em séries temporais é a identificação de possíveis correlações (a relação linear) entre os valores defasados da série. Os correlogramas ACF e PACF podem ajudar neste ponto. Como a série não possui sazonalidade mas possui uma certa tendência, as autocorrelações iniciais tendem a ser grandes e positivas pois as observações próximas no tempo também estão próximas em valor. Assim, a função de autocorrelação (ACF) de uma série temporal com tendência tende a ter valores positivos que diminuem lentamente à medida que as defasagens aumentam.

Se fôssemos, por exemplo, implementar uma modelagem ARIMA nessa série, seria apropriado gerar os correlogramas na série estacionária, ou seja, a variável duração do desemprego na primeira diferença.

Saiba mais

Este exercício buscou navegar pelos principais padrões e comportamentos de dados macroeconômicos, usando ferramentas do R para identificá-los. você pode se aprofundar sobre os assuntos relacionados nestes posts do blog da Análise Macro:

Análise estatística do IPCA-15 com o R

By | Inflação

O IPCA-15 é o primo do IPCA, o Índice de Preços ao Consumidor Amplo, principal índice de preços do país, que serve de referência para o regime de metas para inflação conduzido pelo Banco Central. A diferença entre um e outro se dá apenas pelo período de coleta, o IPCA-15 abrange o período de 16 do mês anterior até 15 do mês de referência, e pela abrangência geográfica. O acompanhamento do índice serve, por suposto, como boa prévia para verificar a inflação medida pelo IPCA.

Os dados do IPCA-15 podem ser facilmente baixados diretamente do site do SIDRA/IBGE, conforme o código a seguir.


library(tidyverse)
library(scales)
library(ggrepel)
library(png)
library(grid)
library(sidrar)
library(forecast)
library(tstools)

ipca15 = get_sidra(api='/t/3065/n1/all/v/355/p/all/d/v355%202') %>%
mutate(date = parse_date(`Mês (Código)`, format='%Y%m')) %>%
select(date, Valor) %>%
as_tibble()

Uma vez que os dados tenham sido baixados, é possível construir um gráfico como o abaixo, que ilustra a inflação acumulada em 12 meses medida pelo IPCA-15, bem como ilustra os limites da meta de inflação instituídos pelo Conselho Monetário Nacional (CMN). Os códigos dessa parte do exercício estão disponíveis para os membros do Clube AM.

Esse tipo de gráfico é interessante porque com ele é imediato verificar se a inflação medida pelo índice está dentro dos limites de tolerância estabelecidos pelo CMN. Como se vê, a inflação na ponta - janeiro de 2021 - encontra-se acima da meta de inflação, que para esse ano é de 3,75%.

Assim como o seu primo, o IPCA-15 também apresenta uma sazonalidade bastante aparente ao longo do ano, como pode ser visto abaixo.

Uma outra informação interessante sobre o índice reside na sua distribuição. Observe o boxplot abaixo.

A mediana do índice, para uma amostra que começa em janeiro de 200, está em 0,42%, enquanto a sua média está em 0,45%. O 1º quartil termina em 0,23% e o 3º quartil termina em 0,64%, o que dá um IQR de 0,41 pontos percentuais. Dado esse comportamento da média e da mediana, temos um histograma como o abaixo.

Dado o que foi dito anteriormente, temos uma assimetria à direita nos dados do IPCA-15. Essa análise exploratória dos dados do índice, diga-se, é de suma importância para construirmos um modelo adequado de previsão para o mesmo. É o que faremos em exercícios futuros dentro do Clube AM.

_________________

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais
e conteúdos exclusivos sobre Análise de Dados!

Assinar Gratuitamente