Mapa de Imóveis de Vitória – Venda


Seguindo a retomada da análise dos dados de webscraping de  imóveis, resolvi colocar no ar também as informações de venda de apartamentos em Vitória – ES.

A oferta online fica em torno de apenas mil anúncios diários, sendo que muitos são anúncios duplicados com bairros diferentes, mas próximos (por exemplo, Barro Vermelho e Praia do Canto). Isto torna a limpeza dos dados um pouco mais difícil.

A oferta concentra-se em Jardim Camburi, Praia do Canto, Jardim da Penha e Mata da Praia. Algo que chama a atenção é a grande diferença do preço por metro quadrado de bairros tão próximos. Segue, abaixo, tabela com as medianas do Preço, Preço por M2, somente M2 e quantidade ofertada.

tableVix

Clique na imagem abaixo para acessar o mapa com a possível geolocalização dos anúncios. Lembrando que isto é um protótipo, pois este não é objetivo principal destes dados.

Se o mapa não aparecer na sua tela, provavelmente o seu navegador bloqueou a execução do javaScript. Procure por um cadeado ou escudo no navegador (canto superior direito ou esquerdo, geralmente) e autorize o carregamento do site.
vix

Entrevista com David Smith do Revolution Analytics


Ok, peço perdão aos leitores que não são tão interessados assim em R. Mas as séries de entrevistas do Eduardo estão muito legais; então, provavelmente, veremos mais alguns desses posts por aqui. Desta vez, o entrevistado é David Smith do Revolution Analytics , empresa que tem uma versão do R direcionada para necessidades corporativas – o Revolution R Enterprise.

David fala um pouco sobre a recente transição do R do mundo acadêmico para o mundo empresarial, sobre a comunidade do R, sobre reproducibilidade entre outros tópicos. É uma entrevista curta, de menos de 15 minutos, vale a pena assistir.

Outra dica legal é o canal do youtube do próprio Revolution Analytics, com diversos webinars voltados para análise de dados.

 

Entrevisa com Tal Galili – criador do R bloggers.


Seguindo a sequência de vídeos relacionados ao useR! 2014, Eduardo agora entrevista Tal Galili, o criador do R Bloggers, o agregador de blogs sobre R que facilita a vida de muita gente.

Se você usa ou quer começar a usar o R e ainda não adicionou o R Bloggers no seu Feedly, não deixe de fazer isso hoje.

Gráficos interativos com ggvis – apresentação do useR! 2014


O pessoal do RStudio apresentou, no useR! 2014, um novo pacote que integra a gramática de gráficos do ggplot2, a sintaxe intuitiva do magritrr, e a interatividade web do Shiny: o ggvis (clique no link para ver exemplos).

Abaixo, segue a apresentação do Winston Chang, disponibilizada pelo datascience.la.

O material da apresentação pode ser encontrado aqui.

Entrevista com Max Kuhn


O datascience.la liberou mais uma entrevista do useR! 2014: dessa vez com Max Kuhn, autor do pacote de modelos preditivos caret e do livro Applied Predictive Modeling.

Max Kuhn também deu um tutorial na conferência: e o material deste e de outros tutoriais você pode conferir aqui.  Outros vídeos do datascience.la, como a palestra do John Chambers e a entrevista com Hadley Wickham, você pode conferir aqui.

useR! 2014 – Tutoriais


Estava devendo alguns comentários sobre o excelente useR! 2014, mas, devido à correria logo após o retorno, ainda não tinha conseguido sentar para escrever. Aqui seguem alguns comentários sobre os tutoriais, que mereceram um post separado. Um outro post sobre o encontro virá futuramente.

O primeiro dia foi composto de tutoriais de 3 horas, um pela manhã e outro à tarde. Pela manhã, assisti ao tutorial do Max Kuhn, sobre modelos de previsão no R, baseado no seu excelente livro Applied Predictive Modeling e no seu pacote para o R, caret (Classification and Regression Training). Max trabalha na Pfizer, então tem bastante experiência com modelos preditivos voltados para o mercado – em outras palavras, modelos que têm de funcionar. Isso é excelente, pois há um foco grande em como lidar com as técnicas na prática e como gerenciar seu fluxo de trabalho na análise de dados, uma lacuna presente em muitos livros de estatística e machine learning. Os slides e códigos do tutorial podem ser encontrados aqui.

IMG_0168

 

Entretanto, o custo de assistir ao tutorial do Max foi o de perder os outros, igualmente interessantes, que ocorreram simultaneamente. Em particular, alguns que não pude ver mas depois consultei o material foram: (i) Matt Dowle sobre o pacote data.table (para manipulação de dados). Se você ainda não conhece o data.table, está perdendo precioso tempo de vida. Eu literalmente acabei de juntar mais de 2 milhões de observações de imóveis com a função rbindlist instantaneamente, enquanto que com a função base do R demorava minutos. E (ii) Romain Francois sobre a integração do R com C++11 e seu pacote Rcpp11. Um interface simples para interagir com C++ e C++11 parece estar sendo a resposta para desenvolvimento de pacotes de alta performance no R. Meu interesse nesta assunto tem crescido particularmente pelo fato de simulações Bayesianas poderem ser computacionalmente muito intensas, então você acaba eventualmente tendo que se preocupar com performance. Não é muito legal esperar dias para um modelo rodar e, só depois, você descobrir um bug para ter que rodar tudo de novo.

Pela tarde assisti ao tutorial do Hadley Wickham sobre manipulação de dados com o dplyr. O dplyr é um pacote que tem o lado do bom dos dois mundos: uma sintaxe simples e amigável para dummies – ainda mais com o uso do pipe operator %>% do magrittr juntamente com excelente performance (Romain e C++!).  Como eu já havia adotado o dplyr desde seu lançamento, assisti ao tutorial mais para prestigiar o Hadley do que para aprender.   Valeu a pena, a apresentação foi muito bacana!

IMG_0179

E, para variar, infelizmente não pude ir a dois tutorias que me chamaram a atenção em particular: (i) o do Ramnath, sobre documentos interativos com R, discutindo o rCharts, slidify, bem como soluções server side que têm surgido como Shiny e OpenCPU. E (ii) a apresentação do Dirk Eddelbuettel sobre o Rcpp.

Além dos tutoriais que mencionei, foram abordados temas como visualição dinâmica, modelos  de rede bayesiana, análise de dados espaciais entre diversos outros. Então,  se você ainda não tinha tido contato com estes assuntos/pacotes e quer se aprofundar,  eis aí uma boa oportunidade. Há bastante material para consulta e praticamente todos estão disponíveis no site!

Previsões para a copa: sem Neymar, Brasil ainda é favorito?


Segundo os mercados de apostas, não! No Betfair, o jogo Brasil e Alemanha está praticamente um cara-e-coroa, com 50.9% para a Alemanha e 49.1% para o Brasil. Ps: lembre que o Betfair é dinâmico, então essas probabilidades alteram ao longo do tempo.

Entretanto, segundo Nate Silver, sim! Talvez por conta do viés de se jogar em casa, o modelo do FiveThirtyEight dá ao Brasil 73% de chances de ganhar da Alemanha e 54% de ganhar a copa! Update: Nate Silver recalculou as probabilidades do Brasil sem o Neymar e reduziu as chances de ganharmos da Alemanha para algo entre 68% a 65%.

Emoções à parte, quem você acha que está certo?

Veja aqui o histórico de erro dessas previsões.

***

Também havia prometido comparar a calibração dos modelos, isto é, comparar as probabilidades previstas contra as freqüências observadas. Podemos fazer isso de diversas formas, mas achei um gráfico bacana no Cross Validated que é bem fácil de implementar e resolvi copiar para começarmos a brincadeira.

Segue, abaixo, gráfico com as probabilidades previstas (eixo X) contra as freqüências observadas (eixo Y) da primeira fase da copa do mundo para cada um dos modelos. Os círculos cinzas representam os dados observados (1 ou 0) e os círculos principais tem tamanho e cores proporcionais à quantidade de observações em sua categoria.

calibration

 

Mais para frente veremos outras formas de comparar esses resultados, incluindo os dados das eliminatórias!

Aprenda a fazer previsão de eleições com o NYT.


Depois que o Nate Silver saiu do NYT, o jornal montou um novo time de previsão para eleições. O novo modelo, denominado LEO, está no ar e com uma descrição bem amigável de seu funcionamento.  A parte gráfica dos resultados também está bacana, inclusive com uma seção comparando o modelo do NYT com seus concorrentes (vale lembrar que o site conta com a ajuda do Michael Bostock, um dos caras que desenvolveu o fantástico D3 para JavaScript)

Mas, tem algo ainda melhor. O NYT liberou os dados e os códigos do modelo no github. E o modelo é em R. Ou seja, agora, para replicar e adaptar o modelo à realidade brasileira só faltam duas coisas: tempo e vontade.

Dúvidas no R ou Python? Vá ao StackOverflow em Português!


O famoso site de programação StackOverflow (SO) ganhou uma versão tupiniquim.

O SO é um excelente site de perguntas e respostas. Seu diferencial é ser direto: as perguntas têm que ser bem definidas e as  respostas têm de resolver diretamente o problema. Quer saber, por exemplo, como agregar uma base de dados no R? Pergunte lá e surgirão várias respostas diferentes de como se fazer isso.

Ainda há poucos usuários ativos no R do SO em português. Mas estamos fazendo um esforço para popular o site com perguntas e respostas. Você pode fazer perguntas sobre problemas que está enfrentando atualmente ou, inclusive, registrar perguntas e respostas que você já sabe, como, por exemplo, aqui (gráfico em 3d), aqui (barplot) ou aqui (contar ocorrências em um vetor) – alguém certamente passará pela mesma dificuldade e a solução que você encontrou para o problema pode ser útil. Ou, ainda, outro usuário pode ter uma solução mais interessante do que a que você propôs. De uma olhada nas perguntas que já foram feitas sobre R aqui.

Se você usa  R (Python), cadaste-se no StackOverflow em Português e ajude o site a crescer! Podemos torná-lo um ótimo ambiente para a comunidade brasileira de R, tal como é hoje o SO em inglês.

Distribuindo pacotes no R. Qual o alcance?


Faz mais ou menos 1 mês que o pacote benford.analysis 0.1 foi disponibilizado no CRAN. 

Achei que valeria o esforço adicional de criar o pacote por alguns motivos e, entre eles, dois se destacam: (i) pacotes deixam os arquivos fontes mais estruturados, facilitam o uso das funções, forçam a criar uma documentação e passam por uma bateria de sanity tests que ajudam a criar boas práticas de programação; (ii) pacotes tornam o compartilhamento do código extremamente simples, ainda mais se o pacote estiver no CRAN, pois, basta rodar

 install.packages("benford.analysis") 

e qualquer pessoa de qualquer lugar do mundo terá o pacote instalado em sua máquina.

Sobre este último ponto, infelizmente, não é possível ter dados de download do CRAN de uma maneira consolidada, pois há diversos espelhos do site ao redor do mundo e nem todos guardam informações de acesso. Entretanto, o CRAN do RStudio faz esse registro. Assim resolvi baixar os dados de lá e ver se alguma outra alma além de mim baixou o benford.analysis.

Sinceramente, eu achei que encontraria uns 10 ou 11 downloads registrados – no máximo -, pois estamos com dados de apenas um espelho do CRAN e estamos falando de um pacote simples e relativamente desconhecido. Ocorre que neste 1 mês de existência o benford.analysis foi baixado 190 vezes em mais de 40 países diferentes considerando apenas o espelho do RStudio.  Um número pequeno quando comparado com pacotes como ggplot2 (que deve estar em virtualmente quase toda máquina de usuário do R), mas, ainda assim, grande o suficiente para me surpreender!

E também para me preocupar. Nesse meio tempo encontrei dois pequenos bugs no pacote. E se antes achava que não deveria ter pressa para corrigi-los, agora esperem uma atualização em breve (mas, claro, depois do carnaval)!