Skip to content

felipelbhering/201908-cursor4ds2-entrega-final

Repository files navigation

Carro Comprar (Financiado x não) Novo ou seminovo? ou Alugar?

Felipe 2020/09/13

Utilizaremos os dados da tabela FIPE de veículos.
A Fundação Instituto de Pesquisas Econômicas - FIPE é um órgão de apoio institucional ao Departamento de Economia da Faculdade de Economia, Administração e Contabilidade (FEA) da Universidade de São Paulo (USP). Um dos índices mais conhecidos e usados no Brasil é a Tabela FIPE Veículos que é atualizada todos os meses com o valor médio de venda de veículos. [Wikipedia]

Objetivo: Entender o custo mensal de um automóvel (carros abaixo 55mil novos), o quão mais vantajoso e mais barato é comprar um semi-novo/usado e comparar com custo de aluguel de carros.

ShinyApp Construido

Clique Aqui

Carregando Bibliotecas

#library(readr)
library(magrittr) #uso do pipe
library(dplyr) #manipulação dados
library(ggplot2)
#library(plotly)
library(fipe)
library(DataExplorer)

Carregando Dados

data_vehicules <-
  readr::read_rds("data/2020_09_fipe_top_veiculos.rds")

data_vehicules %>% head() %>% data.frame()
##                          model   make year       date price
## 1   ETIOS 1.3 Flex 16V 5p Mec. Toyota 2014 2020-09-01 29517
## 2 ETIOS X 1.3 Flex 16V 5p Mec. Toyota 0 km 2020-09-01 52710
## 3 ETIOS X 1.3 Flex 16V 5p Mec. Toyota 2014 2020-09-01 28978
## 4 ETIOS X 1.3 Flex 16V 5p Mec. Toyota 2015 2020-09-01 31007
## 5 ETIOS X 1.3 Flex 16V 5p Mec. Toyota 2016 2020-09-01 32560
## 6 ETIOS X 1.3 Flex 16V 5p Mec. Toyota 2017 2020-09-01 34372

Filtrando modelos que tem valor de 0km e são abaixo 55mil reais

#filtrando carros que ainda produzem (tem 0km) e abaixo 55mil
modelos_abaixo_55 <- 
  data_vehicules %>% 
  filter(year=="0 km") %>% 
  filter(price < 55000) %>% 
  pull(model)

data_vehicules <- data_vehicules %>% 
                    filter((model %in% modelos_abaixo_55)) %>%
                    distinct()

Descrição do dataset

model: O modelo do carro (Ex: Etios 1.3 Flex )

date: data Ano/meda avaliação na FIPE (Ex: 2020-09-01)

make: fabricante (Ex: Toyota)

price: preço em reais na coluna price (Ex: 36500)

glimpse(data_vehicules )
## Rows: 140
## Columns: 5
## $ model <chr> "ETIOS X 1.3 Flex 16V 5p Mec.", "ETIOS X 1.3 Flex 16V 5p Mec....
## $ make  <chr> "Toyota", "Toyota", "Toyota", "Toyota", "Toyota", "Toyota", "...
## $ year  <fct> 0 km, 2014, 2015, 2016, 2017, 2018, 2019, 0 km, 2015, 2016, 2...
## $ date  <date> 2020-09-01, 2020-09-01, 2020-09-01, 2020-09-01, 2020-09-01, ...
## $ price <dbl> 52710, 28978, 31007, 32560, 34372, 36353, 38913, 49547, 31013...

Não tem dados Missing

plot_missing(data_vehicules, title="No Missing Data")

Carros mais baratos do Brasil hoje (0 km)

data_vehicules %>% filter(year=="0 km") %>% 
  arrange(price) %>% 
  select(model, make, price)
## # A tibble: 40 x 3
##    model                               make    price
##    <chr>                               <chr>   <dbl>
##  1 KWID Life 1.0 Flex 12V 5p Mec.      Renault 34319
##  2 QQ 1.0 Look FL 12V/1.0 12V Flex 5p  CHERY   34455
##  3 QQ 1.0  ACT FL 12V/1.0 12V Flex  5p CHERY   34745
##  4 MOBI EASY 1.0 Fire Flex 5p.         Fiat    35060
##  5 MOBI EASY COMFORT 1.0 Flex 5p.      Fiat    36832
##  6 MOBI LIKE 1.0 Fire Flex 5p.         Fiat    40602
##  7 KWID Zen 1.0 Flex 12V 5p Mec.       Renault 41323
##  8 MOBI WAY 1.0 Fire Flex 5p.          Fiat    41992
##  9 Kwid ConnecTV 1.0 Flex 12V Mec.     Renault 42289
## 10 530 TALENT 1.5 16V 103cv 4p         LIFAN   43245
## # ... with 30 more rows

Carros com 7 anos histórico (apenas 4)

#Carros com dados de todos anos
carros_completos <- data_vehicules %>%
  group_by(model) %>% 
  count(sort=TRUE)  

#mostrando carros com dados completos
carros_completos7 <- carros_completos %>%
    filter(n==7)
carros_completos7
## # A tibble: 4 x 2
## # Groups:   model [4]
##   model                                      n
##   <chr>                                  <int>
## 1 ETIOS X 1.3 Flex 16V 5p Mec.               7
## 2 Grand Siena ATTRAC. 1.4 EVO F.Flex 8V      7
## 3 ONIX HATCH LT 1.0 8V FlexPower 5p Mec.     7
## 4 ONIX HATCH LT 1.4 8V FlexPower 5p Mec.     7

Carros com 7 anos histórico (apenas 10)

#mostrando carros com dados de 5 anos
carros_completos5 <- carros_completos %>%
  filter(n>=5)
carros_completos5
## # A tibble: 10 x 2
## # Groups:   model [10]
##    model                                      n
##    <chr>                                  <int>
##  1 ETIOS X 1.3 Flex 16V 5p Mec.               7
##  2 Grand Siena ATTRAC. 1.4 EVO F.Flex 8V      7
##  3 ONIX HATCH LT 1.0 8V FlexPower 5p Mec.     7
##  4 ONIX HATCH LT 1.4 8V FlexPower 5p Mec.     7
##  5 Ka 1.0 SE/SE Plus TiVCT Flex 5p            6
##  6 Ka+ Sedan 1.0 SE/SE PLUS TiVCT Flex 4p     6
##  7 MARCH SV 1.0 12V Flex 5p                   6
##  8 QQ 1.0  ACT FL 12V/1.0 12V Flex  5p        6
##  9 QQ 1.0 Look FL 12V/1.0 12V Flex 5p         6
## 10 530 TALENT 1.5 16V 103cv 4p                5

Filtrando carro com pelo menos 0km +2019 (2 dados)

data_vehicules <- 
  data_vehicules %>%
  filter(model %in% (carros_completos %>% filter(n>1) %>% pull(model)))
#Função calcula variacao apos x anos uso
variacao_ano <- function(df,df_completo , n_lag =1){
 df %>% 
  semi_join(df_completo , by="model") %>% 
   mutate(year =case_when( 
              year=="0 km" ~ "N_0",
              year=="2019" ~ "N_1",
              year=="2018" ~ "N_2",
              year=="2017" ~ "N_3",
              year=="2016" ~ "N_4",
              year=="2015" ~ "N_5",
              year=="2014" ~ "N_6",
              TRUE ~NA_character_)) %>% 
  arrange(model,year) %>% 
  #tidyr::pivot_wider(names_from = year, values_from=price ) %>%
  #data.frame() %>% 
  #filter(!is.na(N_6), !is.na(N_0)) %>% 
  group_by(model) %>% 
  mutate(pct_change = (lead(price,n_lag)/price - 1) * 100,
         custo_depreciacao = price-lead(price,n_lag)) %>% 
  mutate(year = 
           forcats::fct_recode(year,
                      "Comprou Novo" = "N_0",
                      "Comprou com 1 Ano Uso" = "N_1",
                      "Comprou com 2 Anos Uso" = "N_2",
                      "Comprou com 3 Anos Uso" = "N_3",
                      "Comprou com 4 Anos Uso" = "N_4",
                      "Comprou com 5 Anos Uso" = "N_5")) %>% 
  filter(! is.na(pct_change ))
  }

Variação Preço Carro Após 1 Anos Compra (n=4 carros)

Carro é muito desvalorizado ao comprar 0km e ficar 1 ano com ele

podendo chegar a 20% a desvalorização após 1 ano

variacao_ano(data_vehicules,carros_completos7, 1) %>% 
  group_by(year) %>% 
  summarize(pct_change = median(pct_change)) %>% 
  ggplot(aes(x=year, y=pct_change)) +
  geom_bar(stat = 'identity', fill="red")+
  labs(title= "Redução do Preço do Carro após 1 Anos da Compra (Mediana)",
       y="Variação (%) do Preço do Carro após 1 anos", 
       x="Quando Comprou")+
   geom_text(aes(label=paste0(round(pct_change,0), "%")), vjust=0, hjust=1, size=3) +
   coord_flip()
## `summarise()` ungrouping output (override with `.groups` argument)

Variação Preço Carro Após 1 Anos Compra

(Carros com 5 anos histórico) (n=10)

variacao_ano(data_vehicules,carros_completos5 ,1) %>% 
  group_by(year) %>% 
  summarize(pct_change = median(pct_change)) %>% 
    filter(!year =="Comprou com 5 Anos Uso") %>% 
  filter(!year =="Comprou com 4 Anos Uso") %>% 
  ggplot(aes(x=year, y=pct_change)) +
  geom_bar(stat = 'identity', fill="red")+
  labs(title= "Redução do Preço do Carro após 1 Anos da Compra (Mediana)",
       y="Variação (%) do Preço do Carro após 1 anos", 
       x="Quando Comprou")+
   geom_text(aes(label=paste0(round(pct_change,0), "%")), vjust=0, hjust=1, size=3) +
   coord_flip()
## Warning: Unknown levels in `f`: N_3

## `summarise()` ungrouping output (override with `.groups` argument)

Variação Preço Carro Após 2 Anos Compra

Histórico dos 4 Carros com Histórico completo

## `summarise()` ungrouping output (override with `.groups` argument)

Carros tem custos, consideramos

1)Custo oportunidade do dinheiro que poderia ser investido

Considerando Selic 2% e 15% Imposto Renda

2)custo seguro em geral 0.065 até 0.08, considerando 7% na média

3)ipva dpvat. Normalmente, para carros, ela é de 2% a 4% IPVA utilizei Carros movidos a gasolina e biocombustíveis 4%

5)manuntencao 0.01 1o ano #0.02 2o ano #0.03 3o e 4o ano.

Após 60mil km o custo pode ser maior, por isso consideramos carros até 5 anos.

6)considerando uso até 1500km/mes

7)Outras possibilidades. Financiamento 20% entrada e 19.46% (media brasil ano) de juros anual.

taxa_ipva = 0.04
taxa_selic =0.02

custos_carro <- variacao_ano(data_vehicules, carros_completos, 1) %>%
   # mutate(custo_depreciacao =  custo_depreciacao) %>%
  mutate(custo_nao_alocacao_selic = price* taxa_selic*0.85) %>% 
  mutate(custo_ipva_e_dpvat = price * taxa_ipva +5.23) %>% 
  mutate(custo_seguros = price * 0.07) %>% 
    #seguros  #0.03 a 0.04 muito barato e 0.09 caro
  mutate(custo_licenciamento_emplacamento = 93.87+138.94) %>%  # SP 
  mutate(custo_revisoes_manuntencao = 
           #https://autopapo.uol.com.br/noticia/valor-de-revisao-10-mais-vendidos/
           case_when(
           year == "Comprou Novo" ~ 0.01*price,
           year == "Comprou com 1 Ano Uso" ~ 0.01*price,
           year == "Comprou com 2 Anos Uso" ~ 0.02*price,
           year == "Comprou com 3 Anos Uso" ~ 0.03*price,
           year == "Comprou com 4 Anos Uso" ~ 0.03*price,
           TRUE ~ 0) 
  ) %>% 
  mutate(custo_juros_financiamento_1ano = price*0.1946*0.8 ) %>% 
  mutate(custo_juros_financiamento_2anos = price*0.1946*0.8 *0.7) %>% 
  mutate(custo_juros_financiamento_3anos = price*0.1946*0.8*0.7*0.7 ) %>% 
  mutate(custo_juros_financiamento_4anos = price*0.1946*0.8*0.7*0.7*0.7 ) %>% 
  mutate(custo_carro_mes  = 
           (custo_depreciacao +
           custo_nao_alocacao_selic +
           custo_ipva_e_dpvat+
           custo_seguros +
           custo_revisoes_manuntencao)/12
  ) %>% 
  mutate(custo_carro_mes = 
           ifelse(year == "Comprou Novo",
                      custo_carro_mes  +
                        custo_licenciamento_emplacamento/12,
           custo_carro_mes )
          
  ) 

#filtrar 1.0 ou custo novo <50mil e fazer mediana custo_mensal
#pegar comparar com 869,949 do unidas livre/mes
custos_carro %>% select(model, year, custo_carro_mes )
## # A tibble: 100 x 3
## # Groups:   model [31]
##    model                        year                   custo_carro_mes
##    <chr>                        <fct>                            <dbl>
##  1 530 TALENT 1.5 16V 103cv 4p  Comprou Novo                      905.
##  2 530 TALENT 1.5 16V 103cv 4p  Comprou com 1 Ano Uso             554.
##  3 530 TALENT 1.5 16V 103cv 4p  Comprou com 2 Anos Uso           1207.
##  4 530 TALENT 1.5 16V 103cv 4p  Comprou com 4 Anos Uso            621.
##  5 ARGO 1.0 6V Flex.            Comprou Novo                     1352.
##  6 ARGO 1.0 6V Flex.            Comprou com 1 Ano Uso             556.
##  7 ARGO DRIVE 1.0 6V Flex       Comprou Novo                     1623.
##  8 ARGO DRIVE 1.0 6V Flex       Comprou com 1 Ano Uso             619.
##  9 ETIOS X 1.3 Flex 16V 5p Mec. Comprou Novo                     1771.
## 10 ETIOS X 1.3 Flex 16V 5p Mec. Comprou com 1 Ano Uso             658.
## # ... with 90 more rows
#%>% 
 # mutate( custo_novo_financiado =
 # ) %>% 
 # mutate(custo_usado_financiado =)

#aluguel popular faixa 
#kwid  879
#gol mpi 949
#polo mpi 1189

Qual carro sofre mais desvalorização (%) no 1o ano <55mil

custos_carro %>% 
    filter(year == "Comprou Novo") %>% 
    arrange(pct_change) %>% 
    select(model, make, year, price, pct_change)
## # A tibble: 31 x 5
## # Groups:   model [31]
##    model                              make          year        price pct_change
##    <chr>                              <chr>         <fct>       <dbl>      <dbl>
##  1 UNO DRIVE 1.0 Flex 6V 5p           Fiat          Comprou No~ 48143      -28.2
##  2 UNO WAY 1.3 Flex 8V 5p             Fiat          Comprou No~ 53871      -27.9
##  3 SANDERO GT line Flex 1.0 12V 5p    Renault       Comprou No~ 54418      -27.6
##  4 ETIOS X 1.3 Flex 16V 5p Mec.       Toyota        Comprou No~ 52710      -26.2
##  5 Gol 1.0 Flex 12V 5p                VW - VolksWa~ Comprou No~ 48542      -25.1
##  6 Ka+ Sedan 1.0 SE/SE PLUS TiVCT Fl~ Ford          Comprou No~ 53404      -24.1
##  7 Ka 1.0 SE/SE Plus TiVCT Flex 5p    Ford          Comprou No~ 49547      -23.1
##  8 ARGO DRIVE 1.0 6V Flex             Fiat          Comprou No~ 52813      -22.7
##  9 UNO ATTRACTIVE 1.0 Fire Flex 8V 5p Fiat          Comprou No~ 44485      -22.7
## 10 UNO WAY 1.0 Flex 6V 5p             Fiat          Comprou No~ 50445      -21.2
## # ... with 21 more rows
    head(5)
## [1] 5

ShinyApp Construido

Saiba o custo mensal do seu carro

Clique Aqui

Resultado:: Verificamos que comprar carro novo tem um custo alto de redução após 1 ano. Certamente, você tem menos risco do carro ter problemas sendo o único e primeiro usuário, mas como negócio vale a pena comprar carro usado (nem que seja 1 ano ou menos) do que novo, sempre verificando o estado atual do carro e se foi feita as revisões.

Ao mesmo tempo, carros de valores abaixo 40mil tem aluguel de cerca de 900 e 1000 reais, abaixo do valor de gasto de um carro novo, porém acima do valor de usados. Financeiramente, a melhor compra de carros com pelo menos um ano de usado.

Próximos Passos

1) to do pegar qtdade carros vendidos

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages