GithubHelp home page GithubHelp logo

lucasjmatias / big-data-projeto-final-analise-exporatoria-dados Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 2.0 42.23 MB

Projeto final para a matéria de análise exploratória de dados.

AGS Script 99.96% R 0.04%

big-data-projeto-final-analise-exporatoria-dados's People

Contributors

cesarcostar avatar lucasjmatias avatar

Stargazers

 avatar

Watchers

 avatar  avatar

big-data-projeto-final-analise-exporatoria-dados's Issues

Error

R version 3.5.0 (2018-04-23) -- "Joy in Playing"
Copyright (C) 2018 The R Foundation for Statistical Computing
Platform: x86_64-w64-mingw32/x64 (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

library("dplyr", lib.loc="~/R/win-library/3.5")

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

Warning message:
package ‘dplyr’ was built under R version 3.5.1

library("ggplot2", lib.loc="~/R/win-library/3.5")
Warning message:
package ‘ggplot2’ was built under R version 3.5.1
install.packages("rmarkdown")
Installing package into ‘C:/Users/cesar/Documents/R/win-library/3.5’
(as ‘lib’ is unspecified)
trying URL 'https://cran.rstudio.com/bin/windows/contrib/3.5/rmarkdown_1.10.zip'
Content type 'application/zip' length 2868796 bytes (2.7 MB)
downloaded 2.7 MB

package ‘rmarkdown’ successfully unpacked and MD5 sums checked

The downloaded binary packages are in
C:\Users\cesar\AppData\Local\Temp\RtmpgXOYQs\downloaded_packages

library("dbplyr", lib.loc="~/R/win-library/3.5")

Attaching package: ‘dbplyr’

The following objects are masked from ‘package:dplyr’:

ident, sql

Warning message:
package ‘dbplyr’ was built under R version 3.5.1

library("dplyr", lib.loc="/R/win-library/3.5")
library("ggplot2", lib.loc="
/R/win-library/3.5")
library("rmarkdown", lib.loc="~/R/win-library/3.5")
Warning message:
package ‘rmarkdown’ was built under R version 3.5.1

  • title: "Exploração de dados - Banco Czech"
    Error in -title : invalid argument to unary operator

output:

  • pdf_document:
  • toc_depth: 2
    Error: object 'output' not found

Error: attempt to use zero-length variable name

knitr::opts_chunk$set(echo = TRUE)

Error: attempt to use zero-length variable name

\newpage
Error: unexpected input in ""
\tableofcontents
Error: unexpected input in ""
\newpage
Error: unexpected input in ""

Objetivo

O objetivo do nosso trabalho é identificar quais fatores que podem impactar no atraso e não pagamento das dívidas.
Error: unexpected symbol in "O objetivo"

Error: attempt to use zero-length variable name

#Carrega as bibliotecas
library(tidyverse)
Error: package or namespace load failed for ‘tidyverse’:
.onAttach falhou em attachNamespace() para 'tidyverse', detalhes:
chamada: loadNamespace(name)
erro: there is no package called ‘rstudioapi’
In addition: Warning message:
package ‘tidyverse’ was built under R version 3.5.1
library(lubridate)

Attaching package: ‘lubridate’

The following object is masked from ‘package:base’:

date

Warning message:
package ‘lubridate’ was built under R version 3.5.1

Error: attempt to use zero-length variable name

#Carga dos dados
Utilizamos a função read.csv2 que nos permite carregar os dados disponíveis em texto, no formato CSV.
Error: unexpected symbol in "Utilizamos a"

Error: attempt to use zero-length variable name

read.csv2("./dados/account.asc", stringsAsFactors = FALSE) -> account
read.csv2("./dados/client.asc", stringsAsFactors = FALSE) -> client
read.csv2("./dados/card.asc", stringsAsFactors = FALSE) -> card
read.csv2("./dados/disp.asc", stringsAsFactors = FALSE) -> disp
read.csv2("./dados/district.asc", stringsAsFactors = FALSE) -> district
read.csv2("./dados/trans.asc", stringsAsFactors = FALSE) -> trans
read.csv2("./dados/loan.asc", stringsAsFactors = FALSE) -> loan
read.csv2("./dados/order.asc", stringsAsFactors = FALSE) -> order

Error: attempt to use zero-length variable name

#Tratamento dos dados

##Cliente
O tratamento inicial da relação cliente envolve a separação do campo data de nascimento e gênero, que será tratado por M e F. E a transformação do campo birth_number em uma data válida para o R. Para isso transformamos o birth_number em um campo númerico, obtemos 4 dígitos da 3ª à 4ª posição, sendo este valor superior a 50 consideramos como feminino, pois o mês de nascimento das mulheres está com uma soma de 50 unidades. Subtraímos 5000 do mês das mulheres, pois como um único campo numérico, implica em diminuir 50 do campo mensal. Após isso concatenamos o número 19 ao começo do birth_number, no intuíto de deixar melhor preparado para a formatação da data, que ocorre logo em seguida. Logo após, calculamos a idade e selecionamos apenas os campos que nos serão úteis para o nosso estudo.
Error: unexpected symbol in "O tratamento"
samos a data de referência como 01/01/1998, devido a referência dos dados, para calcular a idade dos clientes.
Error: unexpected symbol in "samos a"

Error: attempt to use zero-length variable name

currentdate <- as.Date("1998/01/01", format="%Y/%m/%d")
client <- client %>%

  • mutate(mesajustado = as.numeric(stringr::str_sub(birth_number,3,4))) %>%
  • mutate(gender = ifelse(mesajustado > 50, "F", "M")) %>%
  • mutate(birth_number = ifelse(gender=="F", birth_number - 5000, birth_number)) %>%
  • mutate(birth_number = paste0("19", birth_number)) %>%
  • mutate(birth_number = as.Date(birth_number, "%Y%m%d")) %>%
  • mutate(age = year(currentdate) - year(birth_number)) %>%
  • select(client_id, age, district_id, gender)
    Warning message:
    package ‘bindrcpp’ was built under R version 3.5.1

Error: attempt to use zero-length variable name

##Conta
O tratamento da conta incluí renomear as frequências da conta e seleção dos campos importantes ao estudo.
Error: unexpected symbol in "O tratamento"

Error: attempt to use zero-length variable name

#Tradução
account$frequency <- gsub("POPLATEK MESICNE", "mensal", account$frequency)
account$frequency <- gsub("POPLATEK TYDNE", "semanal", account$frequency)
account$frequency <- gsub("POPLATEK PO OBRATU", "acadatransacao", account$frequency)
account$frequency <- as.factor(account$frequency)
account <- select(account, account_id, frequency)

Error: attempt to use zero-length variable name

##Distrito
O tratamento inicial da relação distrito começa na renomeação dos campos para melhor entendimento. Conversão dos campos de unemp_95 e unemp_96 para numéricos. Limpeza dos valores NA. Cálculo da taxa de desemprego entre os anos 95 e 96. E seleção dos valores que serão usados neste estudo.
Error: unexpected symbol in "O tratamento"

Error: attempt to use zero-length variable name

#Renomear campos para melhor entendimento
colnames(district)[1] <- 'district_id'
colnames(district)[2] <- 'district_name'
colnames(district)[11] <- 'avg_sal'
colnames(district)[12] <- 'unemp_95'
colnames(district)[13] <- 'unemp_96'

#Converter campos para numérico
district$unemp_95 = as.numeric(district$unemp_95)
Warning message:
NAs introduced by coercion
district$unemp_96 = as.numeric(district$unemp_96)

#Limpeza de NA
district[is.na(district$unemp_95),12] <- 1

#Cálculo da taxa de desemprego e seleção de valores
district %>%

  • mutate(unemp_r = ifelse(unemp_95 == 0 | unemp_96 == 0, 1, unemp_96/unemp_95)) %>%
  • select(district_id, district_name, avg_sal, unemp_95, unemp_96) -> district

Error: attempt to use zero-length variable name

##Cartão
O tratamento inicial da relação cartão seleciona os campos que serão úteis para este estudo. Preparamos então o tipo do cartão como categórica.
Error: unexpected symbol in "O tratamento"

Error: attempt to use zero-length variable name

colnames(card)[3] <- 'card_type'
card <- card %>%

  • select(card_id, disp_id, card_type) %>%
  • mutate(card_type = as.factor(card_type))

Error: attempt to use zero-length variable name

##Transação
Na relação de transação, identificamos alguns valores como "VYBER" que não estão descritos na documentação e não pareceu ser pertinente aos nossos estudos, por isso foi filtrado. O tipo de transação foi traduzido para facilitar o entendimento. E foi feito um agrupamento pela conta para facilitar o relacionamento de 1 para 1 com os valores que nos interessam.
Error: unexpected symbol in "Na relação"

Error: attempt to use zero-length variable name

unique(trans$type)
[1] "PRIJEM" "VYDAJ" "VYBER"

trans$type <- gsub("PRIJEM", "credito", trans$type)
trans$type <- gsub("VYDAJ", "debito", trans$type)

trans <- trans %>%

  • dplyr::filter(type != "VYBER") %>%
  • mutate(amount = as.numeric(amount)) %>%
  • select(account_id, type, amount) %>%
  • group_by(account_id) %>%
  • summarise(
  • credito = sum(ifelse(type == "credito", amount, 0)),
    
  • debito = sum(ifelse(type == "debito", amount, 0)),
    
  • quant_trans = n()) %>%
    
  • mutate(withdraw_rate = debito / credito) %>%
  • select(account_id, withdraw_rate, quant_trans)

Error: attempt to use zero-length variable name

##Disposição
A relação de disposição é útil para auxiliar nos relacionamentos. Como nosso estudo centraliza no pagamento ou não de dívidas, sendo que somente os donos da conta conseguem pegar empréstimos, filtramos as disposições para os donos das contas que serão o alvo do estudo.
Error: unexpected symbol in "A relação"

Error: attempt to use zero-length variable name

unique(disp$type)
[1] "OWNER" "DISPONENT"
disp <- disp %>%

  • dplyr::filter(type == "OWNER") %>%
  • select(disp_id, client_id, account_id)

Error: attempt to use zero-length variable name

##Empréstimo
No preparo da relação de empréstimo, traduzimos os status para os significados reais, também preparamos a taxa de pagamento e selecionamos os campos úteis ao estudo.
Error: unexpected symbol in "No preparo"

Error: attempt to use zero-length variable name

unique(loan$status)
[1] "B" "A" "C" "D"
loan$status <- gsub("A", "finalizado", loan$status)
loan$status <- gsub("B", "finalizado nao pago", loan$status)
loan$status <- gsub("C", "vigente", loan$status)
loan$status <- gsub("D", "em debito", loan$status)
loan$status <- as.factor(loan$status)
loan$payments = as.numeric(loan$payments)
loan$amount = as.numeric(loan$amount)

loan <- loan %>%

  • mutate(payments_rate = payments / amount) %>%
  • select(loan_id, account_id, amount, duration, status, payments_rate)

colnames(loan)[3] <- 'loan_amount'
colnames(loan)[4] <- 'loan_duration'
colnames(loan)[5] <- 'loan_status'
colnames(loan)[6] <- 'loan_payment_rate'

Error: attempt to use zero-length variable name

##Ordem de Pagamento
No preparo da ordem de pagamento, o texto do tipo de ordem é traduzido, ignoramos os que não possuem nenhum tipo especificado e selecionamos os dados importantes a este estudo através do agrupamento pela conta.
Error: unexpected symbol in "No preparo"

Error: attempt to use zero-length variable name

unique(order$k_symbol)
[1] "SIPO" "UVER" " " "POJISTNE" "LEASING"
order$k_symbol = gsub("POJISTNE", "seguro", order$k_symbol)
order$k_symbol = gsub("SIPO", "domestico", order$k_symbol)
order$k_symbol = gsub("LEASING", "leasing", order$k_symbol)
order$k_symbol = gsub("UVER", "divida", order$k_symbol)
order$amount = as.numeric(order$amount)

order <- order %>%

  • dplyr::filter(k_symbol != " ") %>%
  • group_by(account_id) %>%
  • summarise(
  • total_ordem = sum(amount),
    
  • quant_ordem = n(),
    
  • ja_pagou_seguro = any(k_symbol == "seguro"),
    
  • media_transf = sum(amount) / n()
    
  • )

Error: attempt to use zero-length variable name

#União dos dados

Error: attempt to use zero-length variable name

dados <- client %>%

  • inner_join(disp, by = "client_id") %>%
  • left_join(card, by = "disp_id") %>%
  • left_join(district, by = "district_id") %>%
  • inner_join(account, by = "account_id") %>%
  • left_join(order, by= "account_id") %>%
  • left_join(trans, by="account_id") %>%
  • inner_join(loan, by="account_id")

Error: attempt to use zero-length variable name

Preparação dos dados

account:

  • 1. date: preparar para data, atualmente está em "YYMMDD".
  • 2. frequency: Traduzir status para inglês ou português.

client:

  • birth: Valores são YYMMDD e YYMM+50DD, onde +50DD representa o sexo femínino. Formatar data e separar o campo de gênero, M e F.

order:

  • K_symbol: Traduzir status para o português. POPLATEK MESICNE = "EMISSAO MENSAL"; POPLATEK TYDNE" = "EMISSAO SEMANAL"; "POPLATEK PO OBRATU" = "EMISSAO APOS TRANSACAO".

transaction:

  • date: preparar para data, atualmente está em "YYMMDD".
  • type: Traduzir status para o português. "PRIJEM" = "CREDITO"; "VYDAJ" = "DEBITO"
  • operation: Traduzir status para inglês ou português. "VYBER KARTOU" = "SAQUE CREDITO"; "VYBER" = "SAQUE"; "VKLAD" = "DEPOSITO"; "PREVOD Z UCTU": "RECEBIMENTO OUTRO BANCO"; "PREVOD NA UCET": "ENVIO OUTRO BANCO"
  • k_symbol: Traduzir status para o português. "POJISTNE" = "SEGURO"; "SLUZBY" = "PAGAMENTO DECLARACAO"; "UROK" = "JUROS CREDITADO"; "SANKC. UROK" = "JUROS DE MORA"; "SIPO" = "DOMESTICA"; "DUCHOD" = "PENSAO"; "UVER": "PAGAMENTO DE DIVIDA"

Loan:

  • date: preparar para data, atualmente está em "YYMMDD".
  • status: nomes mais amigáveis - "A": "FINALIZADO"; "B": "FINALIZADO NAO PAGO"; "C": "VIGENTE", "D": "VIGENTE EM DEBITO".
  • amount: converter de string para decimal.

Credit card:

  • issued: preparar para data, atualmente está em "YYMMDD".

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.