SAUDAÇÕES!

Seja bem vindo à página do professor Pedro Albuquerque. Para saber mais sobre meu currículo, disciplinas ministradas e interesses de pesquisa, navegue no menu disponível no topo da página.

segunda-feira, 3 de setembro de 2018

Amazon Web Service - AWS. Usando RStudio e CUDA na Amazon.


Um dos principais desafios do Análise de Dados atualmente é realizar operações rapidamente em muito conjunto de dados. Nesse sentido, uma vez que o custo de equipamentos para computação em paralelo (Compute Unified Device Architecture) são muito caros para os pesquisadores.

Uma solução é pegar "emprestado" alguns minutos ou horas de servidores que tenham os hardwares necessários. Para isso podemos usar o Amazon Web Service. Nesse post vou mostrar como configurar um servidor Amazon com GPU (Graphics processing unit).

Assumo aqui que você já tem uma conta na Amazon e na Amazon Web Service com cartão de crédito registrado.

O primeiro passo é entrar no Amazon Web Service e fazer o login. Em seguida visitar o AWS Management Console e escolher a opção Compute - EC2:


Escolha agora a opção Launch Instance:


Escolha AWS Market Place e na caixa de Busca digite RStudio:


Nesse exemplo como queremos um servidor com GPU escolhemos RStudio Server with Tensorflow-GPU for AWS:



Aparecerá uma tela com os valores. Se estiver de acordo, clique em Continue:


Em seguida precisamos escolher o tipo da instância. Quanto mais potente for o servidor e seus hardwares mais caro será o minuto de processamento. Os servidores que possuem GPU estão habilitados na página:


Nesse exemplo eu escolhi GPU compute: p2.xlarge e após clicar em Next: Configure Instance Details você deve manter tudo como está, exceto a opção Auto-assign Public IP que deve ser marcada como Enable:


Após essa alteração clique em Review and Launch:


E após revisar, se tudo estiver de acordo clique em Launch:


Por simplicidade vamos proceder sem chave:


Agora seu servidor está sendo inciado. Você deve então clicar no nome da instância (guarde esse nome pois será a senha do RStudio Server):


Quando ele estiver pronto, deve aparecer um sinal verde:


Para acessar o servidor, copie o endereço de IP na parte inferior nomeado como IPv4 Public IP e digite no navegador o IP seguido da porta 8787, algo como: XX.XXX.XX.XX:8787. Copie também o Instance ID na parte inferior pois será a senha do servidor AWS. Caso tudo tenha dado certo a tela de login surgirá no seu navegador:


Utilize como login: rstudio-user e a senha deve ser o Instance ID. Clique em Login e Pronto!! Pode começar a usar...

Agora, quando terminar o uso é preciso terminar a instância para evitar ser cobrado, para isso viste https://console.aws.amazon.com/ec2/. Lá deverá constar todas as suas instâncias, escolha a instância que você quer terminar e clique com o botão direito escolhendo a opção Instace State e Terminate:


Confirme que você realmente deseja terminar a instância:

.

A partir de agora você não será mais cobrado pelo uso do servidor. Caso deseje mais detalhes sobre o servidor visite: https://tensorflow.rstudio.com/tools/cloud_server_gpu.html#amazon-ec2



segunda-feira, 15 de janeiro de 2018

Leitura das bases do IBGE por meio do microdadosBrasil e dplyr.


Como pesquisadores uma fonte de informação rica e muito importante para a academia são as bases de dados do Instituto Brasileiro de Geografia e Estatística (IBGE).

A leitura das principais bases de dados nacionais pode ser realizada por meio do pacote microdadosBrasil.

O primeiro passo é a instalação do pacote no R, fazemos isso da seguinte forma:

#Habilita o pacote devtools
library(devtools)
#Instala o pacote microdadosBrasil
devtools::install_github("lucasmation/microdadosBrasil")
#Habilita o pacote microdadosBrasil
library(microdadosBrasil)

Nesse post, trataremos da Pesquisa Nacional por Amostra de Domicílios (PNAD) como exemplo, para baixar e ler a PNAD precisamos dos seguintes comandos:

#Fazemos somente uma vez caso os dados não existam localmente
download_sourceData("PNAD", 2015, root_path = "C:\\Dados")
#Lê os dados da PNAD
pnad <- read_PNAD("pessoas", 2015, root_path = "C:\\Dados")
#Salva a PNAD lida
save.image("C:\\Dados\\pnad.RData")
No bloco anterior os microdados, dicionários, arquivos de leitura da PNAD são armazenados na pasta definida pelo usuário (nesse exemplo C:\Dados). Em seguida esses dados são lidos pela função read_PNAD e então salva a imagem no arquivo pnad.RData. No código anterior definimos ainda que desejamos os dados da base de pessoas, para o ano de 2015. Maiores informações sobre os tipos de bases e pesquisas disponíveis os interessados podem consultar o repositório do microdadosBrasil. Uma vez salva a imagem, a leitura fica muito mais rápida no R e podemos chamar os dados por meio da função load:
#Chama os dados da pnad salvos no RData
load("C:\\Dados\\pnad.RData")
Como exemplo vamos calcular a renda média das pessoas na PNAD 2015. A variável rendimento de interesse é dada pela variável V9532 e a variável de peso (expansão amostral) é dada por V4729. O cômputo do rendimento médio é dado por?
#Chama a biblioteca dplyr
library(dplyr)
#Exemplo Média do Rendimento
pnad %>%
  group_by(UF) %>%
  filter(V9532<999999999)%>%
  summarise(weighted.mean(V9532 , 
                          w = V4729, 
                          na.rm = TRUE)
  ) -> agg.df
No bloco anterior salvamos no data.frame agg.df a renda média das pessoas por Unidade da Federação (UF) removendo-se os valores missing informados pelo IBGE como V9532>999999999. Outra estatística muito comum é o cálculo de proporções. Podemos calcular a proporção por cor nas Unidades da Federação (UF) como:
#Calcula a proporção
pnad %>%
  group_by(UF, V0404) %>%
  summarise (n.cor = sum(V4729))%>%
  group_by(UF) %>%
  mutate (n = sum(n.cor)) %>%
  mutate(freq = n.cor/n) %>%
  mutate(freq2 = paste0(round(freq,6)*100,"%")) -> cor.df
#Define os labels dos factors
cor.df[,"Cor"] = factor(cor.df$V0404,
                    levels=c(2,4,6,8,0,9),
                    labels=c("Branca","Preta","Amarela",
                             "Parda","Indígena","Sem declaração"),
                    ordered=FALSE)
Nesse exemplo, salvamos no objeto cor.df essas proporções e também definimos os labels das variáveis qualitativas. Na última parte desse exemplo, podemos estar interessados no cômputo do Índice de Gini por Unidade da Federação:
#Exemplo Gini
library(reldist)
pnad %>%
  group_by(UF) %>%
  filter(V9532<999999999)%>%
  summarise(gini.idx=gini(V9532,V4729))
Onde o pacote reldist apresenta a função gini que calcula o Índice de Gini ponderado pelo peso amostral.