Um pequeno experimento com uso de funções em Análise de Dados com R no Universo Tidy

July 6, 2017 no comments Posted in Análise de Dados, R

O tidyverse ou universo ‘arrumado’ é uma coleção de pacotes R que compartilham filosofias comuns e são projetados para trabalhar em conjunto de dados ditos “tidy” e que podem ser melhor conhecidos no site http://tidyverse.org/   . Grande parte dos pacotes foi desenvolvida pelo Hadley Wickham.

Se você é novo no tidyverse o melhor lugar para aprender a philsophy completa e como tudo se encaixa é o livro “R para de ciência dos dados” de autoria do Garrett Grolemund e do
Hadley Wickham. Este livro está disponível gratuitamente online .

A novidade que mais me interessou logo a princípio foi o  uso do tibble no lugar do data.frame. Em termos práticos de representação da informação são a mesma coisa, mas a sua manipulação é mais simples, mais direta e toda focalizada no uso de Pipes ( %>% ) e na estrutura de comandos no estilo do ‘dplyr’.  Dplyr por sua vez que merece cada vez mais uma revisão dada a enorme quantidade de funções implementadas nas versões mais recentes.

Existem N artigos interessantes sobre esse universo, mas ainda poucos na língua portuguesa. Espero que outros se animem.

Eu sou um usuário pouco sistemático, as vezes inicio de forma estruturada, mas com frequência me pego tendo que refatorar o código que cresceu demais sem os devidos cuidados. A medida que o código começa a ficar repetitivo quero usar funções e hoje resolvi testar como seria usar o ‘dplyr’ dentro de uma função recebendo os nomes das variáveis como parâmetros de uma função.

Em termos de operadores a coisa é meio “feia”, mas funciona que é uma maravilha.

Aqui um pequeno exemplo que pelas imagens já fica claro como proceder.

Primeiro o meu tibble, o equivalente a um data frame. 100 linhas, 9 colunas, ao imprimir primeira vantagem, observem o que tibble só imprime as 10 primeiras linhas por padrão e já exibe o tipo de dados de cada coluna, menos filtros do tipo [1:10,]  ou head(dataframe),  e muito menos um lapply( dataframe, class ) para investigar os tipos.

Um tibble quando lido de um arquivo externo ou convertido não faz aquela “eca” de converter strings em fator por padrão.

Então suponha que irei fazer N sumários de descrições dos dados usando o ‘dplyr’ e não quero ficar copiando e colando código e alterando nome de variáveis na mão. Usar funções é o racional nesse caso.

Aqui uma pequenina função que recebe o tibble,  dois parâmetros o nome da variável com a qual quero agregar/agrupar os meus dados que chamnei de group_by e outra variável expr, da qual pretendo contar ocorrências, média e soma dos seus valores.

Quais são os detalhes importantes?

  • a função enquo() que irá receber um parâmetro sem aspas, envolvê-lo para depois ser realizado como um nome de um atributo e não uma string. O ‘dplyr‘ entende que expr é uma variável que contem o nome de uma variável;
  • a função quo_name() que é realmente massa, pois irá permitir que concatenemos o nome da variável com outra string para ser usado no “lado direito” da atribuição;
  • operadores “!!”  e “:=” .

Pronto. Agora já podemos chamar a função para cada atributo de interesse e receber os sumários.

Adorei.

Para saber mais sobre Análise de Dados no Universo Tidy.

 

Hadley Wickham, o homem que revolucionou o R

July 6, 2017 no comments Posted in Análise de Dados, R

Uma das novidades mais impactantes no mundo R tem sido a contínua contribuição do Hadley Wickham e seus pacotes, inicialmente com o reshape e agora com um leque amplo de ferramentas que implementam o “Tidyverse”.

A lista é extensa demais 

O Hadley é uma máquina.
Interessante é que há já uma linha forte de instrutores de R e professores de Estatísitca que advogam o ensino do R via a visão e a notação do Tidyverse.
Eu uso parte do universo há algum tempo, mas de forma desleixada, e a cada dia descubro que existe um recurso que me facilitaria a vida se tivesse estudado de forma mais sistemática.

Aqui uma matéria extensa e muito boa que saiu na Priceonomics.

Priceonomics turns data into great stories. We’re a collection of writers, data scientists, engineers and analysts that are obsessed with creating and spreading quality, data-driven information. We’re based in San Francisco, CA and funded by great investors like Y Combinator, Spark Capital, SV Angel and more.

https://priceonomics.com/hadley-wickham-the-man-who-revolutionized-r/

 

Desassossego – Marcelo Martins Santiago 

July 6, 2017 no comments Posted in Análise de Dados

Na saia de chita da catirina do Maracatu Na roda de Samba, na roda de Choro É a roda de tu No olhos das outras meninas No beijo e no corpo nú Na esquina da Sorocaba com a Voluntários É a esquina de tú Porque volta e meia, Eu sinto teu cheiro em recantos da lapa? De santa, de anja Sei não, sei nada Vai lá, vai lá, vai lá morena Vai pra deixar meu coração Vai lá, vai lá, vai lá morena Vai pra deixar meu coração.

Na saia de chita da catirina do Maracatu Na roda de Samba, na roda de Choro É a roda de tu No olhos das outras meninas No beijo e no corpo nú Na esquina da Sorocaba com a Voluntários É a esquina de tú Porque volta e meia, Eu sinto teu cheiro em recantos da lapa? De santa, de anja Sei não, sei nada Vai lá, vai lá, vai lá morena Vai pra deixar meu coração Vai lá, vai lá, vai lá morena Vai pra deixar meu coração

Rdatasets is a collection of 1072 datasets

July 4, 2017 no comments Posted in Análise de Dados

What is this?

Rdatasets is a collection of 1072 datasets that were originally distributed alongside the statistical software environment R and some of its add-on packages. The goal is to make these data more broadly accessible for teaching and statistical software development.

Source: Rdatasets

The Improbability Principle: Why Coincidences, Miracles, and Rare Events Happen Every Day, David J. Hand – Amazon.com

June 27, 2017 no comments Posted in Análise de Dados

In The Improbability Principle, the renowned statistician David J. Hand argues that extraordinarily rare events are anything but. In fact, they’re commonplace. Not only that, we should all expect to experience a miracle roughly once every month.      But Hand is no believer in superstitions, prophecies, or the paranormal. His definition of “miracle” is thoroughly rational. No mystical or supernatural explanation is necessary to understand why someone is lucky enough to win the lottery twice, or is destined to be hit by lightning three times and still survive. All we need, Hand argues, is a firm grounding in a powerful set of laws: the laws of inevitability, of truly large numbers, of selection, of the probability lever, and of near enough.

Source: https://www.scientificamerican.com/store/books/the-improbability-principle/

HostGator Vs GoDaddy (June 2017) – Which is the Best Web Hosting?

June 25, 2017 no comments Posted in Análise de Dados

Confused between HostGator and GoDaddy? An in-depth HostGator vs GoDaddy comparison to help you choose the right host. Find out the winner!

Adam Williams

I’m a writer with a passion for technology. I’ve been constantly testing different web hosts and writing in-depth reviews on this site since 2008. If you have any questions or finding it difficult to choose the right host, you can contact me at support@saywebhosting.com.

Source: HostGator Vs GoDaddy (June 2017) – Which is the Best Web Hosting?

Approximate Statistical Tests for Comparing Supervised Classification Learning Algorithms | Neural Computation | MIT Press Journals

June 25, 2017 no comments Posted in Análise de Dados

“This article reviews five approximate statistical tests for determining whether one learning algorithm outperforms another on a particular learning task. These test sare compared experimentally to determine their probability of incorrectly detecting a difference when no difference exists (type I error). Two widely used statistical tests are shown to have high probability of type I error in certain situations and should never be used: a test for the difference of two proportions and a paired-differences t test based on taking several random train-test splits. A third test, a paired-differences t test based on 10-fold cross-validation, exhibits somewhat elevated probability of type I error. A fourth test, McNemar’s test, is shown to have low type I error. The fifth test is a new test, 5 × 2 cv, based on five iterations of twofold cross-validation. Experiments show that this test also has acceptable type I error. The article also measures the power (ability to detect algorithm differences when they do exist) of these tests. The cross-validated t test is the most powerful. The 5×2 cv test is shown to be slightly more powerful than McNemar’s test. The choice of the best test is determined by the computational cost of running the learning algorithm. For algorithms that can be executed only once, Mc-Nemar’s test is the only test with acceptable type I error. For algorithms that can be executed 10 times, the 5 × 2 cv test is recommended, because it is slightly more powerful and because it directly measures variation due to the choice of training set.”

A cover of Neural Computing Journal 

Source: Approximate Statistical Tests for Comparing Supervised Classification Learning Algorithms | Neural Computation | MIT Press Journals

Bye Bye “Fortify” >> broom: let’s tidy up a bit #R

June 24, 2017 no comments Posted in Análise de Dados, R

[tradução Google Translated livremente adaptada]

O pacote “broom” tira a saída desordenada de funções incorporadas em R, como lm, nls ou t.test, e as transforma em quadros de dados arrumados.

O conceito de “TIDY DATA”, apresentado por Hadley Wickham, oferece uma estrutura poderosa para manipulação e análise de dados.

O artigo faz uma proposição convincente sobre o problema que este pacote tenta resolver (enfâse a minha): enquanto as entradas do modelo geralmente requerem entradas arrumadas, tal atenção aos detalhes não se aplica ao modelo  de saídas. Saídas como previsões e coeficientes estimados nem sempre são arrumadas. Isso torna mais difícil combinar resultados de vários modelos.

Por exemplo, em R, a representação padrão dos coeficientes do modelo não é organizada porque não possui uma variável explícita que registre o nome da variável para cada estimativa; em vez disso, elas são registradas como nomes de linhas.

Em R, os nomes de linha devem ser únicos, de modo a combinar coeficientes de muitos modelos (por exemplo, de resmastras de inicialização ou subgrupos) requerem soluções alternativas para evitar a perda de informações importantes. Isso o afasta do fluxo de análise e torna mais difícil combinar os resultados de vários modelos.

Atualmente, não conheço nenhum pacote que resolva esse problema.

O “broom” é uma tentativa de preencher a lacuna das saídas desordenadas de previsões e estimativas para os dados arrumados com os quais queremos trabalhar.

Centra-se em torno de três métodos S3, cada um dos quais obtém objetos comuns produzidos por funções estatísticas R (lm, t.test, nls, etc.) e converte-os em um quadro de dados.

O pacote “broom” é especialmente projetado para trabalhar com o pacote Dplyr de Hadley (veja a vassoura da vassoura + dplyr para mais).

O pacote “broom” deve ser distinguida de pacotes como reshape2 e tidyr, que reorganizam e remodelam os quadros de dados em diferentes formas. Esses pacotes executam tarefas críticas na análise de dados arrumados, mas se concentram na manipulação de quadros de dados em um formato específico para outro.

Em contraste, pacote “broom” é projetado para ter um formato que não está em um quadro de dados (às vezes, nem em qualquer lugar próximo) e convertê-lo em um quadro de dados arrumado.

A organização das saídas do modelo não é uma ciência exata, e é baseado em um julgamento dos tipos de valores que um cientista de dados normalmente deseja fora de uma análise arrumada (por exemplo, estimativas, estatísticas de teste e valores de p).

Você pode perder algumas das informações no objeto original que você queria, ou manter mais informações do que você precisa.

The broom package takes the messy output of built-in functions in R, such as lm, nls, or t.test, and turns them into tidy data frames. The concept of “tidy data”, as introduced by Hadley Wickham, offers a powerful framework for data manipulation and analysis. That paper makes a convincing statement of the problem this package tries to solve (emphasis mine): While model inputs usually require tidy inputs, such attention to detail doesn’t carry over to model outputs. Outputs such as predictions and estimate

Source: broom: let’s tidy up a bit

Photo:  Santeri Viinamäki [CC BY-SA 4.0 (http://creativecommons.org/licenses/by-sa/4.0)], via Wikimedia Commons