A coleta de dados em épocas mais recentes teve seu custo reduzido e volume ampliado significativamente. Redes sociais combinadas com dispositivos móveis rastreiam bilhões de pessoas no mundo, com informações das mais diversas origens: rotinas de passeio, amizades, históricos de compras, históricos de localização, fotografias geo-referenciadas, etc (FYI: com o escândalo da Cambridge Analytica, surgiram evidências de que o Facebook tenha registros de histórico de chamadas e SMS, para mensagem e ligações ocorridas fora do aplicativo Facebook, em telefones Android: https://www.theverge.com/2018/3/25/17160944/facebook-call-history-sms-data-collection-android). Empresas, por meio de programas de fidelidade, aprendem hábitos de compras, propensidade de compras de certos produtos dependendo de horários, produtos que são comprados juntos e informações financeiras referentes a pagamentos. Desta maneira, o volume das bases de dados cresce vertiginosamente, de modo que é necessária a mudança de paradigma na estatística moderna: os dados não mais podem trafegar até o analista de dados; a análise deve ser transportada até os dados.
Ao fim deste laboratório, você deve ser capaz de:
Lendo 100.000 observações por vez (se você acredita que seu computador não tem memória suficiente, utilize 10.000 observações por vez), determine o percentual de vôos por Cia. Aérea que apresentou atraso na chegada (ARRIVAL_DELAY
) superior a 10 minutos. As companhias a serem utilizadas são: AA, DL, UA e US. A estatística de interesse deve ser calculada para cada um dos dias de 2015. Para a determinação deste percentual de atrasos, apenas verbos do pacote dplyr
e comandos de importação do pacote readr
podem ser utilizados. Os resultados para cada Cia. Aérea devem ser apresentados em um formato de calendário.
Observação: a atividade descrita no slide pede para ler apenas 100 registros por vez. Aqui, mudamos para 100 mil registros por vez, para que haja melhor aproveitamento do tempo em classe.
Quais são as estatísticas suficientes para a determinação do percentual de vôos atrasados na chegada (ARRIVAL_DELAY > 10
)?
Crie uma função chamada getStats
que, para um conjunto de qualquer tamanho de dados provenientes de flights.csv.zip
, execute as seguintes tarefas (usando apenas verbos do dplyr
:
tibble
;input
: o conjunto de dados (referente ao lote em questão);pos
: argumento de posicionamento de ponteiro dentro da base de dados. Apesar de existir na função, este argumento não será empregado internamente. É importante observar que, sem a definição deste argumento, será impossível fazer a leitura por partes.Utilize alguma função readr::read_***_chunked
para importar o arquivo flights.csv.zip
.
getStats
criada acima;col_types
de forma que ele leia, diretamente do arquivo, apenas as colunas de interesse (veja nota de aula para identificar como realizar esta tarefa);Crie uma função chamada computeStats
que:
tibble
contendo apenas as seguintes colunas:
Cia
: sigla da companhia aérea;Data
: data, no formato AAAA-MM-DD (dica: utilize o comando as.Date
);Perc
: percentual de atraso para aquela cia. aérea e data, apresentado como um número real no intervalo \([0, 1]\).Produza um mapa de calor em formato de calendário para cada Cia. Aérea.
ggcal
e ggplot2
.scale_fill_gradient
. A cor inicial da paleta deve ser #4575b4
e a cor final, #d73027
. A paleta deve ser armazenada no objeto pal
.baseCalendario
que recebe 2 argumentos a seguir: stats
(tibble
com resultados calculados na questão 4) e cia
(sigla da Cia. Aérea de interesse). A função deverá:
stats
de forma a conter informações de atraso e data apenas da Cia. Aérea dada por cia
.ggcal(x, y)
. Nesta notação, x
representa as datas de interesse e y
, os percentuais de atraso para as datas descritas em x
.baseCalendario
para cada uma das Cias. Aéreas e armazenar os resultados, respectivamente, nas variáveis: cAA
, cDL
, cUA
e cUS
.ggplot2
. Lembre-se de adicionar um título utilizando o comando ggtitle
. Por exemplo, cXX + pal + ggtitle("Titulo")
.