# Como fazer uma análise exploratória 
# completa no R | Caso real

# FASES DOS PROJETOS DE CIÊNCIA DE DADOS

# -> CAPTURA DOS DADOS
# -> ANÁLISE EXPLORATÓRIA
# -> LIMPAR OS DADOS
# -> CRIAR O MODELO/ MACHINE LEARNING / TESTES ESTATÍSTICOS
# -> COMUNICAÇÃO / VISUALIZAÇÃO DE DADOS

# 2 PRINCIPAIS MOTIVOS - ANÁLISE EXPLORATÓRIA

# 1 - CONHECER OS SEUS DADOS
# 2 - VALIDAR OS SEUS DADOS

library(readr)
aptos_bsb <- read_delim("aptos_bsb.txt", 
                        "\t", escape_double = FALSE, col_types = cols(data = col_date(format = "%d/%m/%Y")), 
                        trim_ws = TRUE)

### DEFINIR SUAS PERGUNTAS

# QUAL O BAIRRO MAIS CARO DE BRASÍLIA?
# EXISTE DIFERENÇA ENTRE OS PREÇOS DAS IMOBILIÁRIAS?
# QUAL IMOBILIÁRIA DOMINA O MERCADO?
# QUAL O PREÇO MÉDIO DE UM APARTAMENTO DE X QUARTOS NO BAIRRO Y
# QUAL O VALOR DO M2 NO BAIRRO Z?

# ESTRUTURA DO CONJUNTO DE DADOS
str(aptos_bsb)
## tibble [90,259 x 14] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
##  $ uf      : chr [1:90259] "df" "df" "df" "df" ...
##  $ cidade  : chr [1:90259] "brasilia" "brasilia" "brasilia" "brasilia" ...
##  $ tipo    : chr [1:90259] "apartamento" "apartamento" "apartamento" "apartamento" ...
##  $ negocio : chr [1:90259] "venda" "venda" "venda" "venda" ...
##  $ bairro  : chr [1:90259] "asa-norte" "asa-norte" "asa-norte" "asa-norte" ...
##  $ imob    : chr [1:90259] "LYBERTY BRASILIA IMÓVEIS" "LYBERTY BRASILIA IMÓVEIS" "CONCEITO INTELIGÊNCIA IMOBILIÁRIA S A" "ABA IMÓVEIS" ...
##  $ local   : chr [1:90259] "SHN 05 ATHOS BULCÃO * LINDO APTO * POOL *" "SETOR SHTN THE SUN*MOBILIADO*NASCENTE*2 VGS*RESORT*DESOCUPADO" "SGAN 915 COBERTURA PARQUE NORTE MELHOR M² DA ASA NORTE" "SGAN 912 PARK VILLE" ...
##  $ quartos : chr [1:90259] "1" "1" "1" "1" ...
##  $ suites  : num [1:90259] 1 1 1 0 0 1 0 0 1 1 ...
##  $ garagens: num [1:90259] 1 2 1 1 1 0 1 0 1 1 ...
##  $ preco   : chr [1:90259] "450000" "360000" "234476" "230000" ...
##  $ valorm2 : num [1:90259] 15000 11613 8291 8519 10000 ...
##  $ m2      : num [1:90259] 30 31 28 27 53 53 34 42 35 37 ...
##  $ data    : Date[1:90259], format: "2016-04-27" "2016-06-06" ...
##  - attr(*, "spec")=
##   .. cols(
##   ..   uf = col_character(),
##   ..   cidade = col_character(),
##   ..   tipo = col_character(),
##   ..   negocio = col_character(),
##   ..   bairro = col_character(),
##   ..   imob = col_character(),
##   ..   local = col_character(),
##   ..   quartos = col_character(),
##   ..   suites = col_double(),
##   ..   garagens = col_double(),
##   ..   preco = col_character(),
##   ..   valorm2 = col_double(),
##   ..   m2 = col_double(),
##   ..   data = col_date(format = "%d/%m/%Y")
##   .. )
#cabeçalho
head(aptos_bsb)
## # A tibble: 6 x 14
##   uf    cidade tipo  negocio bairro imob  local quartos suites garagens preco
##   <chr> <chr>  <chr> <chr>   <chr>  <chr> <chr> <chr>    <dbl>    <dbl> <chr>
## 1 df    brasi~ apar~ venda   asa-n~ LYBE~ SHN ~ 1            1        1 4500~
## 2 df    brasi~ apar~ venda   asa-n~ LYBE~ SETO~ 1            1        2 3600~
## 3 df    brasi~ apar~ venda   asa-n~ CONC~ SGAN~ 1            1        1 2344~
## 4 df    brasi~ apar~ venda   asa-n~ ABA ~ SGAN~ 1            0        1 2300~
## 5 df    brasi~ apar~ venda   asa-n~ COEM~ SETO~ 1            0        1 5300~
## 6 df    brasi~ apar~ venda   asa-n~ RE/M~ SETO~ 1            1        0 5200~
## # ... with 3 more variables: valorm2 <dbl>, m2 <dbl>, data <date>
#rodapé
tail(aptos_bsb)
## # A tibble: 6 x 14
##   uf    cidade tipo  negocio bairro imob  local quartos suites garagens preco
##   <chr> <chr>  <chr> <chr>   <chr>  <chr> <chr> <chr>    <dbl>    <dbl> <chr>
## 1 df    brasi~ apar~ aluguel sudoe~ LEOP~ CLSW~ 2            0        0 1100 
## 2 df    brasi~ apar~ aluguel sudoe~ LEOP~ CLSW~ 2            0        0 1000 
## 3 df    brasi~ apar~ aluguel sudoe~ ELO ~ SQSW~ 2            1        1 2800 
## 4 df    brasi~ apar~ aluguel sudoe~ CASA~ QRSW~ 2            0        0 1650 
## 5 df    brasi~ apar~ aluguel sudoe~ PINH~ QRSW~ 2            0        0 1600 
## 6 df    brasi~ apar~ aluguel sudoe~ CRIS~ QRSW~ 2            0        0 1220 
## # ... with 3 more variables: valorm2 <dbl>, m2 <dbl>, data <date>
# Estatísticas descritivas
summary(aptos_bsb)
##       uf               cidade              tipo             negocio         
##  Length:90259       Length:90259       Length:90259       Length:90259      
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##                                                                             
##                                                                             
##                                                                             
##                                                                             
##     bairro              imob              local             quartos         
##  Length:90259       Length:90259       Length:90259       Length:90259      
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##                                                                             
##                                                                             
##                                                                             
##                                                                             
##      suites           garagens          preco              valorm2       
##  Min.   : 0.0000   Min.   : 0.0000   Length:90259       Min.   :     15  
##  1st Qu.: 0.0000   1st Qu.: 0.0000   Class :character   1st Qu.:   7647  
##  Median : 1.0000   Median : 1.0000   Mode  :character   Median :   9138  
##  Mean   : 0.7195   Mean   : 0.8346                      Mean   :   9986  
##  3rd Qu.: 1.0000   3rd Qu.: 1.0000                      3rd Qu.:  10273  
##  Max.   :11.0000   Max.   :12.0000                      Max.   :7440945  
##  NA's   :480       NA's   :480                          NA's   :480      
##        m2               data           
##  Min.   :   0.00   Min.   :2016-04-09  
##  1st Qu.:  41.00   1st Qu.:2016-05-22  
##  Median :  67.00   Median :2016-06-03  
##  Mean   :  89.45   Mean   :2016-05-29  
##  3rd Qu.: 101.00   3rd Qu.:2016-06-08  
##  Max.   :8616.00   Max.   :2016-07-12  
##  NA's   :480       NA's   :480
table(aptos_bsb$negocio)
## 
## aluguel   venda 
##    5973   84286
# FILTRAR APENAS OS ANÚNCIOS DE VENDAS
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
vendas<-filter(aptos_bsb,negocio=="venda")

# validação dos dados
vendas<-filter(vendas,quartos!="consultar")
vendas<-filter(vendas,preco!="Consultar Valor")

vendas$preco <-as.numeric(vendas$preco)
vendas$quartos <-as.numeric(vendas$quartos)

max(vendas$preco)
## [1] 9.45e+08
### filtrando os dados pelo preço

vendas <- filter(vendas,preco>150000 & preco<2000000)

# nomes das variáveis
names(vendas)
##  [1] "uf"       "cidade"   "tipo"     "negocio"  "bairro"   "imob"    
##  [7] "local"    "quartos"  "suites"   "garagens" "preco"    "valorm2" 
## [13] "m2"       "data"
imob<- data.frame(table(vendas$imob))

head(arrange(imob,-Freq),10)
##                                     Var1 Freq
## 1                          LOPES DALLOCA 4602
## 2    FEROLA EMPREENDIMENTOS IMOBILIARIOS 3380
## 3                           MANU IMOVEIS 1854
## 4                       BEIRAMAR ASA SUL 1669
## 5         MIRANDA ESCRITORIO IMOBILIÁRIO 1667
## 6  CONCEITO INTELIGÊNCIA IMOBILIÁRIA S A 1564
## 7              LIMA CORRETORA DE IMÓVEIS 1352
## 8       EDNA AGUIAR CORRETORA DE IMÓVEIS 1216
## 9                             KR IMÓVEIS 1168
## 10                     LAMARTINE IMOVEIS 1099
# COMPARAÇÃO DE GRUPOS

imob_preco <- vendas %>%
  group_by(imob,bairro) %>%
  summarise(preco_medio = mean(preco),quantidade =n()) %>%
  ungroup()
## `summarise()` regrouping output by 'imob' (override with `.groups` argument)
quartos_precos <-vendas %>%
  group_by(quartos) %>%
  summarise(preco_medio = mean(preco)) %>%
  ungroup()
## `summarise()` ungrouping output (override with `.groups` argument)
summary(vendas)
##       uf               cidade              tipo             negocio         
##  Length:81114       Length:81114       Length:81114       Length:81114      
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##                                                                             
##                                                                             
##                                                                             
##     bairro              imob              local              quartos     
##  Length:81114       Length:81114       Length:81114       Min.   :1.000  
##  Class :character   Class :character   Class :character   1st Qu.:1.000  
##  Mode  :character   Mode  :character   Mode  :character   Median :2.000  
##                                                           Mean   :1.979  
##                                                           3rd Qu.:3.000  
##                                                           Max.   :5.000  
##      suites          garagens           preco            valorm2      
##  Min.   : 0.000   Min.   : 0.0000   Min.   : 160000   Min.   :    68  
##  1st Qu.: 0.000   1st Qu.: 0.0000   1st Qu.: 378252   1st Qu.:  7984  
##  Median : 1.000   Median : 1.0000   Median : 580000   Median :  9269  
##  Mean   : 0.699   Mean   : 0.8061   Mean   : 692729   Mean   :  9360  
##  3rd Qu.: 1.000   3rd Qu.: 1.0000   3rd Qu.: 930000   3rd Qu.: 10294  
##  Max.   :11.000   Max.   :12.0000   Max.   :1996288   Max.   :420000  
##        m2               data           
##  Min.   :   1.00   Min.   :2016-04-09  
##  1st Qu.:  41.00   1st Qu.:2016-05-20  
##  Median :  68.00   Median :2016-06-03  
##  Mean   :  87.59   Mean   :2016-05-27  
##  3rd Qu.: 100.00   3rd Qu.:2016-06-07  
##  Max.   :8616.00   Max.   :2016-06-08
vendas<-filter(vendas,m2>20 & m2<250)

#### cruzando variáveis

plot(vendas$preco,vendas$m2)

# HISTOGRAMA
library(ggplot2)

ggplot(vendas,aes(x = preco)) +
         geom_histogram(fill = "blue", colour ="black")+
         facet_grid(bairro ~.)
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

# boxplot

ggplot(vendas,aes(x=negocio,y=preco))+
  geom_boxplot(aes(fill=bairro))