Mark Zuckerberg: um ano de livros


Quer uma lista de leitura para 2015?

Mark Zuckerberg resolveu ler um livro mais ou menos a cada duas semanas.

E criou uma página – A year of books – para que as pessoas compartilhem a experiência.

O “clube de leitura”  do Zuckerberg acabou de começar, mas parece ser interessante por pelo menos dois motivos:

1) Os dois primeiros livros escolhidos foram excelentes: o primeiro foi The End of Power, de  Moisés Naim; e, o segundo,  The Better Angels of Our Nature: Why Violence Has Declined do Steven Pinker. Este último um calhamaço de quase 1.000 páginas.

2) Zuckerberg tem calibre. Assim, é capaz de você conseguir discutir com alguns dos autores dos livros na própria página do A year of books. Isso aconteceu com Moisés Naim. Talvez ocorra com Steven Pinker.

Se você tiver disposição, eis um projeto interessante a se considerar.

Shiny 0.11, themes, and dashboard


Carlos Cinelli:

Nova versão do Shiny com Bootstrap 3.

Publicado originalmente em RStudio Blog:

Shiny version 0.11 is available now! Notable changes include:

  • Shiny has migrated from Bootstrap 2 to Bootstrap 3 for its web front end. More on this below.
  • The old jsliders have been replaced with ion.rangeSlider. These sliders look better, are easier for users to interact with, and support updating more fields from the server side.
  • There is a new passwordInput() which can be used to create password fields.
  • New observeEvent() and eventReactive() functions greatly streamline the use of actionButton and other inputs that act more like events than reactive inputs.

For a full set of changes, see the NEWS file. To install, run:

install.packages("shiny")

We’ve also posted an article with notes on upgrading to 0.11.

Bootstrap 3 migration

In all versions of Shiny prior to 0.11, Shiny has used the Bootstrap 2 framework for its web front-end. Shiny generates HTML that is structured to work with Bootstrap, and this makes it…

Ver original 355 mais palavras

R e RStudio


***

Parte do livro Introdução à análise de dados com R. Este trabalho está em andamento.  Volte para ver atualizações

Quer fazer sugestões? Deixe um comentário abaixo ou, se você sabe utilizar o github, acesse aqui. Não copie ou reproduza este material sem autorização.

***

R e Rstudio

Instalação

Instalar o R e o RStudio é bastante fácil, pois ambos já vêm com distribuições compiladas para Windows, Mac OS ou Linux. O R é gratuito e está disponível no site do CRAN (The Comprehensive R Archive Network). O RStudio tem uma versão desktop gratuita disponível em seu site. Esses são os dois principais softwares para acompanhar este livro.

Além disso, para ter um ambiente completo de desenvolvimento no R, você também precisará de uma distribuição de Latex (como o MikTex para Windows ou MacTex para Mac); e, caso você esteja utilizando o Windows, a versão mais recente do RTools (para criar pacotes e integrar o R com C++).

Se você ainda não tem esses softwares em seu computador, baixe agora as versões compatíveis com seu sistema operacional e siga as instruções de instalação.

Este não é um livro para ser apenas lido e sim para ser acompanhado digitando os códigos de exemplo – ou, em último caso, copiando e colando. Os capítulos apresentam códigos em R com o resultado esperado, conforme a figura abaixo.

estrutura

Ao final da maior parte dos capítulos, faremos muitos exercícios para a consolidação do conteúdo. Todos os exercícios terão uma resposta sugerida. Todavia, recomendo que você tente resolver sozinho antes de olhar a resposta.

R Gui

A instalação padrão do R vem com uma interface gráfica para o usuário (Graphical User Interface – GUI). No Windows, você encontrará o R no menu iniciar e no Mac você verá o ícone do R entre seus aplicativos. Nós não vamos utilizar o R Gui durante o livro. Entretanto, faremos um brevíssimo tour antes de passarmos para o RStudio.

Abra a interface gráfica do R em seu computador.A primeira tela que você verá é a do console. Agora, abra, também, uma tela de editor de texto em “file” -> “new script”.

RGUI

Escreva os seguintes comandos no editor de texto e aperte CTRL+R (ou CMD+ENTER no Mac).

1+1

O comando será enviado para o console e você verá o resultado. Você poderia ter digitado o comando diretamente no console, mas isso não é uma boa prática. Acostume-se a sempre escrever em seu script (script é como chamamos o documento com os códigos de R que você produz).

## [1] 2

Escreva os seguinte comandos no editor de texto e repita o procedimento (CTRL+R):

plot(1:10)

Uma nova tela será aberta com o gráfico.

plot of chunk unnamed-chunk-4

Por enquanto é só isso. Saia do R Gui escrevendo q() no console ou apertando ALT+F4. O R irá perguntar se você deseja salvar a sua área de trabalho e o script. Clique em não para os dois casos.

Estamos saindo do R Gui pois agora iremos trabalhar no RStudio.

RStudio

Apesar de o R vir com uma interface gráfica interessante, existe um Ambiente de Desenvolvimento Integrado (Integrated Development Environment- IDE) chamado RStudio, com várias funcionalidades e gratuito.

O RStudio possui algumas vantagens em relação ao R Gui:

  • Highlight do código;
  • Autocomplete;
  • Match automático de parenteses e chaves;
  • Interface intuitiva para objetos, gráficos e script;
  • Criação de “projetos” com interface para controle de versão;
  • Facilidade na criação de pacotes;
  • Interação com HTML, entre outras.

Abra o RStudio em seu computador e inicie um novo Script em “File” -> “New File” -> “New RScript”. Você também pode fazer isso com CTRL + SHIFT + N ou acessando o botão abaixo.

rscript

Podemos dividir a tela do RStudio em quatro grande áreas:

  • Script: A tela superior esquerda do RStudio é o editor de texto onde você vai escrever seus Scripts. Ele possui code highlighting entre outras funcionalidades.
  • Console: No canto inferior esquerdo fica o console. O console nada mais é do que uma seção aberta de R, em que os comando são executados.
  • Área de trabalho e histórico: Ficam no canto superior direito. Os objetos criados e o histórico dos comandos podem ser acessados ali.
  • Arquivos, Gráficos, Pacotes, Ajuda: Ficam no canto inferior direito. Você pode explorar pastas e arquivos diretamente do RStudio na aba “Files”; os gráficos que forem feitos apareceram na aba “Plots”. Os pacotes instalados em sua máquina estão listados em “Packages”. As ajudas das funções aparecem em “Help”. E o “Viewer” serve para visualização de páginas em HTML e JavaScript.

RStudio1

Comandos pelo Script

Como já dito, acostume-se a escrever o código no Script ao invés de ficar escrevendo diretamente no console. Para começarmos a nos familizarizar com o RStudio, escreva o código abaixo no Script:

1+1

E aperte CTRL+ENTER (CMD+ENTER no mac). Isso envia o comando para o console e o resultado é exibido logo abaixo.

## [1] 2

Agora escreva o seguinte código no Script.

# Gráfico dos números de 1 a 10
plot(1:10)

O primeiro comando # Gráfico dos números de 1 a 10 é, na verdade, um comentário. Comentários nos scripts do R são seguidos do símbolo #, e tudo que estiver após # não será executado. É uma boa prática comentar seu código! Isso faz com que ele seja de fácil manutenção, tanto para você mesmo (acredite, depois de um tempo você não lembrará o que fez) quanto para seus colegas.

O segundo comando diz ao R para plotar um gráfico. Aperte CTRL+ENTER nas duas linhas. O gráfico aparecerá no canto inferior direito do RStudio.

RStudio2

Agora digite o seguinte comando no editor e aperte CTRL+ENTER:

# atribuindo o valor 15 a x
x <- 15

Atribuímos o valor 15 à variável x. Note que isso aparece no canto superior direito do RStudio.

RStudio3

Autocomplete e documentação

O RStudio tem autocomplete. No começo do seu aprendizado isto será bastante útil. Escreva apenas plo e aperte Tab. O RStudio sugerirá diversas possibilidades de comandos e objetos que se iniciam com plo:

autocomplete

Isso também funciona dentro de uma função para sabermos alguns dos argumentos disponíveis. Escreva plot() e aperte Tab. Note que os argumentos da função plot como x, y, ou type apareceram.

autocomplete2

Além do autocomplete, outra forma de enteder uma função é por meio da documentação do R. Para acessar a ajuda de uma função, utilize o comando ? ou help() seguido do nome da função.

?mean
help(mean) # equivalente a ?mean

HELP

Note que no cando direito do RStudio apareceu uma página de ajuda sobre a função mean(). A documentação das funções no R seguem mais ou menos este mesmo padrão.

A primeira coisa que vemos é mean {base} indicando que se trata da função mean() do pacote base. Em Description há uma breve descrição do que é a função. Logo abaixo, em Usage vemos como utilizar o comando e, em Arguments, os parâmetros disponíveis. A seção Value explica o que a função mean() retorna. Em seguida temos algumas referências, funções relacionadas e os exemplos.

Honestamente, é provável que no início você tenha dificuldades de entender a documentação do R, pois você não saberá o significado de muitos termos. Mas, mesmo assim, não deixe de consultá-la. E, sempre que hover, brinque com os exemplos.

HELP2

Às vezes você não saberá exatamente o nome da função. Por exemplo, suponha que você queira gerar números aleatórios de uma distribuição normal multivariada, mas não se recorda o comando. Nestes caso, é possível realizar uma busca por texto.

??"normal distribution"
help.search("normal distribution") # equivalente a ??"normal distribution"

Note que, entre os diversos resultados, aparece a função do pacote MASS, mvrnorm(), justamente o que você buscava.

HELP3

Teclas de atalho

O RStudio possui muitas teclas de atalho que facilitam sua vida. Você pode ver a lista completa em “Help” -> “Keyboard Shortcuts”. Além do CTRL + ENTER, algumas teclas de atalho bastante úteis, que valem a pena você aprender agora no começo são:

  • CTRL + 1: Passa o cursor para o script;
  • CTRL + 2: Passa o cursor para o console;
  • SETA PARA CIMA (no console): acessa o histórico de comandos anteriores.
  • CTRL + ALT + SETA PARA ESQUERDA OU DIREITA: Navega entre as abas de script abertas (abra um novo script antes para testar).
  • CTRL + SHIFT + P: “Previous command”, roda o último comando executado;
  • CTRL + SHIFT + ENTER: “Source”. Executa o Script inteiro;
  • CTRL + S: Salva o Script;

Muitos desses atalhos podem ser acessados via mouse (mas tente se acostumar a utilizar o teclado).

RStudio4

Outros atalhos interessantes são:

  • CTRL + L: Limpa o console;
  • CTRL + F: Busca (e substituição). Aceita REGEX (veremos REGEX posteriormente);
  • CTRL + SHIFT + K: Compila “Notebook” em PDF, HTML ou Word (para isso você precisa ter uma distribuição de Latex e alguns pacotes instalados);
  • ALT + SHIFT + K: Veja a lista de atalhos.

RStudio5

Pacotes

A principal forma de distribuição de códigos no R é por meio de pacotes. Um pacote pode ser entendido como um conjunto de códigos auto-contido que adiciona funcionalidades ao R.

Em termos mais simples, pacotes são funções do R escritas pelos usuários para resolver vários problemas, como: (i) ler e salvar uma planilha de Excel; (ii) rodar um modelo de random forest; (iii) analisar redes sociais etc. Atualmente existem mais de 6.000 pacotes de R. Ou seja, há pelo menos um pacote para quase qualquer problema de análise de dados que você imaginar. Veja essa pequeno vídeo que o Roger Peng fez sobre pacotes no R.

Para carregar um pacote, use a função library().

Carregar um pacote permite que você chame estas funções diretamente. Por exemplo, a função mvrnorm, que gera números aleatórios de uma normal multivariada, está no pacote MASS. Se você tentar chamar a função sem carregar o pacote, o R não a encontrará.

Sigma <- matrix(c(10,3,3,2),nrow=2,ncol=2) # Matriz de Variância-Covariânccia
mu <- c(1, 10) # Médias
x <- mvrnorm(n=100, mu, Sigma) # Tenta gerar 100 obs, mas dá erro
## Error in eval(expr, envir, enclos): não foi possível encontrar a função "mvrnorm"

Após carragar o pacote, o comando funciona normalmente:

library(MASS) # Carrega pacote
x <- mvrnorm(n=100, mu, Sigma) # Agora funciona

Para ver quais pacotes estão carregados, utilize a função search(). Note que o pacote MASS esta lá.

search()
##  [1] "GlobalEnv"         "package:MASS"       "package:knitr"
##  [4] "package:RWordPress" "tools:rstudio"      "package:stats"
##  [7] "package:graphics"   "package:grDevices"  "package:utils"
## [10] "package:datasets"   "package:methods"    "Autoloads"
## [13] "package:base"

Para descarregar um pacote, utilize a função detach() seguido de package:nome_do_pacote.

detach(package:MASS)

Às vezes pacotes tem funções com o mesmo nome. Neste caso, se ambos forem carregados, a função que prevalece é a do pacote que foi carregado por último. Uma forma de resolver este confilto é chamar a função utilizando o nome do pacote e o operador ::. Neste caso não haverá ambiguidade e o R saberá exatamente que função utilizar.

# estamos dizendo ao R para buscar a função no pacote MASS
x <- MASS::mvrnorm(n=100, mu, Sigma)

Você também pode carregar ou descarregar pacotes pelo menu do canto inferior direito do RStudio, clicando na caixa ao lado do nome do pacote.

pacotes

Para instalar um pacote, use a função install.packages().

Por exemplo, o pacote dplyr é muito utilizado para manipulação de dados e iremos estudá-lo mais a frente. Para instalá-lo, digite o seguinte comando.

install.packages("dplyr")

Para deletar um pacote, utilize a função remove.packages() e para atualizar um pacote, a função update.packages().

CRAN

Grande parte dos pacotes do R estão centralizados em um repositório chamado CRAN (The Comprehensive R Archive Network), com diversos espelhos ao redor do mundo.

Tire um tempo agora para explorar um pouco o site oficial do R, www.r-project.org, e do CRAN, cran.r-project.org. Preste atenção principalmente nos seguinte itens:

—- (detalhar) —-

—- Ajuda online —-

—- Exemplo mínimo de uma análise de dados —-

Novo livro de R chegando na praça!


Eu e o Edson Bastos resolvemos transformar alguns materiais de introdução à análise de dados com o R em um livro.

O livro será escrito aqui mesmo no blog, desde os rascunhos até a finalização da primeira edição em e-book/impressa. A intenção é soltar um material novo a cada uma ou duas semanas.

O material será publicado aos poucos , em “pedaços”, por meio dos posts – e não necessariamente em ordem. Portanto, para ver os capítulos do livro em sua ordem correta, clique no link à direita “Introdução à análise de dados com o R”.

Apesar de ser um livro introdutório, a idéia é que, ao final da leitura, você domine o R suficientemente para se sentir confortável com a linguagem e possa se desenvolver sozinho nas áreas que tenha mais interesse (econometria, DSGE, análise de redes etc).

A estrutura do livro, provisória, é a seguinte:

  • Introdução e motivação
  • R e RStudio;
  • Operadores e Objetos Básicos;
  • Funções;
  • Lógica de Programação;
  • A família apply;
  • Debugging;
  • Textos, Fatores e Datas;
  • Manipulação de Data Frames;
  • Entrada e Saída de Dados;
  • Manipulação de arquivos;
  • Gráficos Estatísticos;
    • Gráficos base
    • Introdução ao ggplot2
    • Introdução ao lattice
  • Tópicos de:
    • Testes Estatísticos, Regressões e Simulações;
    • Processamento em paralelo;
    • Integração com C++;
    • Documentos dinâmicos.

A idéia de escrever online é justamente para receber feedback de maneira dinâmica. Assim, se você tem interesse no tema, não hesite em comentar!

PS: cabe lembrar que este material é gratuito para você ler e estudar. Mas você não pode reproduzir este conteúdo sem autorização.

Greg Mankiw e Piketty sobre O Capital no Século 21, Várias discussões de Economia Comportamental, Olivier Blanchard sobre a macroeconomia após a crise e outros.


Lucas Mation me passou a dica: os webcasts das principais sessões do encontro da American Economic Association estão disponíveis.

A Discussion of Thomas Piketty’s “Capital in the 21st Century” 
Presiding: N. Gregory Mankiw
Capital and Wealth in the 21st Century David N. Weil
Capital Taxation in the 21st Century Alan J. Auerbach and Kevin Hassett
Yes, r>g. So what? N. Gregory Mankiw
About Capital in the 21st Century Thomas Piketty
View Webcast

The Undismal Science
Presiding: Richard Thaler
Tackling Tempation Katherine L. Milkman
Design and Effectiveness of Public Health Subsidies in Poor Countries Pascaline Dupas
Racial Inequality in the 21st Century: The Declining Signficance of Discrimination Roland Fryer
The Micro of Macro Amir Sufi
View Webcast

AEA/AFA Joint Luncheon: Dark Corners: Reassessing Macroeconomics after the Crisis
Olivier Blanchard, introduced by Richard Thaler
View Webcast

The Economics of Secular Stagnation
Presiding: Robert E. Hall
Secular Stagnation: A Supply Side View Robert Gordon
Secular Stagnation: A Demand Side View Lawrence H. Summers
Does History Lend Any Support to the Secular Stagnation Hypothesis? Barry Eichengreen
Discussants: Robert E. Hall; William Nordhaus; N. Gregory Mankiw
View Webcast

Richard T. Ely Lecture “Behavioral Economics and Public Policy”
Raj Chetty, introduced by Richard Thaler
View Webcast

AEA Nobel Laureate Luncheon: Empirical Analysis of Asset Prices
Per Stomberg
Also: Richard Thaler; Tobias Moskowitz; Monikia Piazzesi; Nicholas Barberis
View Webcast

Measuring and Changing Cognitive and Biological Processes in Economic Choice: Why and How (Tutorial Lecture)
Colin Camerer, introduced by Richard Thaler
View Webcast

AEA Awards Ceremony and Presidential Address: Climate Clubs
William Nordhaus, introduced by Richard Thaler
View Webcast

Pesquisa Nacional de Saúde, Pesquisa Brasileira de Mídia, Como o comportamento dos outros te influencia? E um cartoon.


Alguns links interessantes

1. No final do ano, saíram os microdados da Pesquisa Nacional de Saúde.

2. Também saiu a Pesquisa Brasileira de Mídia 2015.

3. Quanto o comportamento dos outros te influencia?

Pedro Gardete, professor de Stanford, fez a seguinte pergunta:  se um passageiro que você não conhece, sentado ao seu lado, compra algo, o quanto isto aumenta probabilidade de você comprar também? Como ele possuía dados das reservas dos vôos, além de excluir amigos que voavam juntos, pôde controlar outros fatores. Foram analisadas 65.525 transações, em 1.966 vôos, totalizando mais de 257 mil passageiros.

Resultado: em geral, caso alguém a seu lado compre algo, suas chances de comprar também aumentam em cerca de 30%. 

4. Para finalizar, um cartoon.  Mais uma boa do SMBC:

20141230