`

library(readr)
carros <- read_csv("carros-usados.csv")
## Rows: 150 Columns: 6
## -- Column specification --------------------------------------------------------
## Delimiter: ","
## chr (3): modelo, cor, transmissao
## dbl (3): ano, preco, kilometragem
## 
## i Use `spec()` to retrieve the full column specification for this data.
## i Specify the column types or set `show_col_types = FALSE` to quiet this message.

Resumo do dataset

str(carros)
## spec_tbl_df [150 x 6] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
##  $ ano         : num [1:150] 2011 2011 2011 2011 2012 ...
##  $ modelo      : chr [1:150] "SEL" "SEL" "SEL" "SEL" ...
##  $ preco       : num [1:150] 21992 20995 19995 17809 17500 ...
##  $ kilometragem: num [1:150] 7413 10926 7351 11613 8367 ...
##  $ cor         : chr [1:150] "Bege" "Cinza" "Prata" "Cinza" ...
##  $ transmissao : chr [1:150] "AUTO" "AUTO" "AUTO" "AUTO" ...
##  - attr(*, "spec")=
##   .. cols(
##   ..   ano = col_double(),
##   ..   modelo = col_character(),
##   ..   preco = col_double(),
##   ..   kilometragem = col_double(),
##   ..   cor = col_character(),
##   ..   transmissao = col_character()
##   .. )
##  - attr(*, "problems")=<externalptr>
head(carros)
## # A tibble: 6 x 6
##     ano modelo preco kilometragem cor    transmissao
##   <dbl> <chr>  <dbl>        <dbl> <chr>  <chr>      
## 1  2011 SEL    21992         7413 Bege   AUTO       
## 2  2011 SEL    20995        10926 Cinza  AUTO       
## 3  2011 SEL    19995         7351 Prata  AUTO       
## 4  2011 SEL    17809        11613 Cinza  AUTO       
## 5  2012 SE     17500         8367 Branco AUTO       
## 6  2010 SEL    17495        25125 Prata  AUTO

Média de tendeêcia central

summary(carros$ano)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    2000    2008    2009    2009    2010    2012
summary(carros[c("preco", "kilometragem")])
##      preco        kilometragem   
##  Min.   : 3800   Min.   :  4867  
##  1st Qu.:10995   1st Qu.: 27200  
##  Median :13592   Median : 36385  
##  Mean   :12962   Mean   : 44261  
##  3rd Qu.:14904   3rd Qu.: 55125  
##  Max.   :21992   Max.   :151479

Análise Explotaroria de dados para variaveis númericas

#Usando as funções

mean(carros$preco)
## [1] 12961.93
median(carros$preco)
## [1] 13591.5
quantile(carros$preco)
##      0%     25%     50%     75%    100% 
##  3800.0 10995.0 13591.5 14904.5 21992.0
quantile(carros$preco, probs = c(0.01,0.99))
##       1%      99% 
##  5428.69 20505.00
quantile(carros$preco, seq(from = 0, to = 1, by = 0.20))
##      0%     20%     40%     60%     80%    100% 
##  3800.0 10759.4 12993.8 13992.0 14999.0 21992.0
IQR(carros$preco)#Diferencça entre Q3 e Q1
## [1] 3909.5
range(carros$preco)
## [1]  3800 21992
diff(carros$preco)
##   [1]  -997 -1000 -2186  -309    -5  -495    -5     0     0     0    -3   -42
##  [13]     0  -950    -1     0    -4    -3     0    -4    -8   -81   -10  -201
##  [25]  -188    -1     0  -201  -299     0    -4    -3     0     0    -2    -1
##  [37]   -83    -6    -7  -132   -62   -22  -128   -50    -4     0   -15    -3
##  [49]  -122   -56   -24  -275    -1    -2    -2     0     0     0    -3     0
##  [61]     0     0    -1   -41     0     0   -55    -7   -43   -46   -57   -55
##  [73]   -24   -64   -15  -159   -41    -1   -33  -351    -1    -1    -2     0
##  [85]     0     0     0     0     0    -3    -2    -2  -139   -69    -3   -73
##  [97]  -109   -88    -7     0  -220  -281    -7    -8    -4  -188   -38    -5
## [109]  -254   -45  -455     0     0   -16   -24     0  -119   -21   -45   -53
## [121]  -717    -1     0    -4     0    -3  -341  -651    -1    -3  -196  -305
## [133]    -1   -14  -481    -4     0   -95  -412  -489    -4   -15     0   -30
## [145]  -750  -205   -15 -1081 -1099

Graficos

#Leitura de baixo para cima = Q!, Q@(mediana) Q3

boxplot(carros$preco, main="Boxplot para os preços de carros Usados", ylab = "Preço (R$")

boxplot(carros$kilometragem, main="Boxplot para a KM de carros Usado", ylab= "Kilometragem(R$")

Histograma

#Indica a freqência de valores denro de cada BIN(Classe de valores)

hist(carros$preco, main  = "Histograma para carros Usados", xlab="Preço(RS")

hist(carros$kilometragem, main = "Histograma para a Km de Carros Usados", ylab = "Kilometragem (R$)")

hist(carros$kilometragem, main = "Histograma para a Km de Carros Usados", breaks = 5, ylab = "Kilometragem (R$)")

Scatterplot Preço x Km

# Scatterplot Preço x Km
# Usando o preço como variável dependente (y)
plot(x = carros$kilometragem, y = carros$preco,
     main = "Scatterplot - Preço x Km",
     xlab = "Kilometragem",
     ylab = "Preço (R$)")

Medidas de Dispersão

Ao interpretar a variância, números maiores indicam que os dados estão espalhados mais amplamente em torno da média. O desvio padrão indica, em média, a quantidade de cada valor diferente da média.

var(carros$preco)
## [1] 9749892
sd(carros$preco)
## [1] 3122.482
var(carros$kilometragem)
## [1] 728033954
sd(carros$kilometragem)
## [1] 26982.1

Análise Exploratória de Dados Para Variáveis Categóricas

Criando Tabela de Contigência

Representam uma única variável categorica

Tabela

#?table

table(carros$cor)
## 
##     Azul     Bege   Branco    Cinza     Gold    Prata    Preto    Verde 
##       17        3       16       16        1       32       35        5 
## Vermelho 
##       25
table(carros$modelo)
## 
##  SE SEL SES 
##  78  23  49
str(carros)
## spec_tbl_df [150 x 6] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
##  $ ano         : num [1:150] 2011 2011 2011 2011 2012 ...
##  $ modelo      : chr [1:150] "SEL" "SEL" "SEL" "SEL" ...
##  $ preco       : num [1:150] 21992 20995 19995 17809 17500 ...
##  $ kilometragem: num [1:150] 7413 10926 7351 11613 8367 ...
##  $ cor         : chr [1:150] "Bege" "Cinza" "Prata" "Cinza" ...
##  $ transmissao : chr [1:150] "AUTO" "AUTO" "AUTO" "AUTO" ...
##  - attr(*, "spec")=
##   .. cols(
##   ..   ano = col_double(),
##   ..   modelo = col_character(),
##   ..   preco = col_double(),
##   ..   kilometragem = col_double(),
##   ..   cor = col_character(),
##   ..   transmissao = col_character()
##   .. )
##  - attr(*, "problems")=<externalptr>

Calculando a proporção de cada categoria

model_table <- table(carros$modelo)
prop.table(model_table)
## 
##        SE       SEL       SES 
## 0.5200000 0.1533333 0.3266667

Arrendondando os Valores

model_table <- table(carros$modelo)
model_table <- prop.table(model_table) * 100
round(model_table, digits = 1)
## 
##   SE  SEL  SES 
## 52.0 15.3 32.7

Criando uma nova variável indicando cores conservadores

(que as pessoas compra com mais frequencia)

head(carros)
## # A tibble: 6 x 6
##     ano modelo preco kilometragem cor    transmissao
##   <dbl> <chr>  <dbl>        <dbl> <chr>  <chr>      
## 1  2011 SEL    21992         7413 Bege   AUTO       
## 2  2011 SEL    20995        10926 Cinza  AUTO       
## 3  2011 SEL    19995         7351 Prata  AUTO       
## 4  2011 SEL    17809        11613 Cinza  AUTO       
## 5  2012 SE     17500         8367 Branco AUTO       
## 6  2010 SEL    17495        25125 Prata  AUTO

Criando uma NOva Variável indicando cores conservadoras

(Que as pessoas compra com mais frequência)
# %in% quando esta dentro do dataset

#Criar uma nova variavel 
carros$conserv <- carros$cor %in% c("Preto", "Cinza", "Prata", "Branco")
head(carros)
## # A tibble: 6 x 7
##     ano modelo preco kilometragem cor    transmissao conserv
##   <dbl> <chr>  <dbl>        <dbl> <chr>  <chr>       <lgl>  
## 1  2011 SEL    21992         7413 Bege   AUTO        FALSE  
## 2  2011 SEL    20995        10926 Cinza  AUTO        TRUE   
## 3  2011 SEL    19995         7351 Prata  AUTO        TRUE   
## 4  2011 SEL    17809        11613 Cinza  AUTO        TRUE   
## 5  2012 SE     17500         8367 Branco AUTO        TRUE   
## 6  2010 SEL    17495        25125 Prata  AUTO        TRUE

Checando a Variável

table(carros$conserv)
## 
## FALSE  TRUE 
##    51    99

Verificando o relacionamento entre 2 variáveis categóricas Criando uma crosstable Tabelas de contingência fornecem uma maneira de exibir as frequências e frequências relativas de observações (lembra do capítulo de Estatística?), que são classificados de acordo com duas variáveis categóricas. Os elementos de ma categoria são exibidas através das colunas; selementos de outra categoria são exibidas sobre as linhas.

#install.packages("gmodels")
library(gmodels)
#?CrossTable
CrossTable(x = carros$modelo, y = carros$conserv)
## 
##  
##    Cell Contents
## |-------------------------|
## |                       N |
## | Chi-square contribution |
## |           N / Row Total |
## |           N / Col Total |
## |         N / Table Total |
## |-------------------------|
## 
##  
## Total Observations in Table:  150 
## 
##  
##               | carros$conserv 
## carros$modelo |     FALSE |      TRUE | Row Total | 
## --------------|-----------|-----------|-----------|
##            SE |        27 |        51 |        78 | 
##               |     0.009 |     0.004 |           | 
##               |     0.346 |     0.654 |     0.520 | 
##               |     0.529 |     0.515 |           | 
##               |     0.180 |     0.340 |           | 
## --------------|-----------|-----------|-----------|
##           SEL |         7 |        16 |        23 | 
##               |     0.086 |     0.044 |           | 
##               |     0.304 |     0.696 |     0.153 | 
##               |     0.137 |     0.162 |           | 
##               |     0.047 |     0.107 |           | 
## --------------|-----------|-----------|-----------|
##           SES |        17 |        32 |        49 | 
##               |     0.007 |     0.004 |           | 
##               |     0.347 |     0.653 |     0.327 | 
##               |     0.333 |     0.323 |           | 
##               |     0.113 |     0.213 |           | 
## --------------|-----------|-----------|-----------|
##  Column Total |        51 |        99 |       150 | 
##               |     0.340 |     0.660 |           | 
## --------------|-----------|-----------|-----------|
## 
## 

Tabela Cruzada.

Teste do QUI-Quadrado

Qui Quadrado, simbolizado por χ2 é um teste de

hipóteses que se destina a encontrar um valor da dispersão para duas variáveis nominais, avaliando a associação existente entre variáveis qualitativas.

É um teste não paramétrico, ou seja, não depende dos parâmetros populacionais, como média e variância.

O princípio básico deste método é comparar proporções, isto é, as possíveis divergências entre as frequências observadas e esperadas para um certo evento. Evidentemente, pode-se dizer que dois grupos se comportam de forma semelhante se as diferenças entre as frequências observadas e as esperadas em cada categoria forem muito pequenas, próximas a zero.

Ou seja, Se a probabilidade é muito baixa, ele fornece fortes evidências de que as duas variáveis estão associadas.

CrossTable(x = carros$modelo, y = carros$conserv, chisq = TRUE)
## 
##  
##    Cell Contents
## |-------------------------|
## |                       N |
## | Chi-square contribution |
## |           N / Row Total |
## |           N / Col Total |
## |         N / Table Total |
## |-------------------------|
## 
##  
## Total Observations in Table:  150 
## 
##  
##               | carros$conserv 
## carros$modelo |     FALSE |      TRUE | Row Total | 
## --------------|-----------|-----------|-----------|
##            SE |        27 |        51 |        78 | 
##               |     0.009 |     0.004 |           | 
##               |     0.346 |     0.654 |     0.520 | 
##               |     0.529 |     0.515 |           | 
##               |     0.180 |     0.340 |           | 
## --------------|-----------|-----------|-----------|
##           SEL |         7 |        16 |        23 | 
##               |     0.086 |     0.044 |           | 
##               |     0.304 |     0.696 |     0.153 | 
##               |     0.137 |     0.162 |           | 
##               |     0.047 |     0.107 |           | 
## --------------|-----------|-----------|-----------|
##           SES |        17 |        32 |        49 | 
##               |     0.007 |     0.004 |           | 
##               |     0.347 |     0.653 |     0.327 | 
##               |     0.333 |     0.323 |           | 
##               |     0.113 |     0.213 |           | 
## --------------|-----------|-----------|-----------|
##  Column Total |        51 |        99 |       150 | 
##               |     0.340 |     0.660 |           | 
## --------------|-----------|-----------|-----------|
## 
##  
## Statistics for All Table Factors
## 
## 
## Pearson's Chi-squared test 
## ------------------------------------------------------------
## Chi^2 =  0.1539564     d.f. =  2     p =  0.92591 
## 
## 
## 
#podemos usar esse modelo
chisq.test(x = carros$modelo, y = carros$conserv)
## 
##  Pearson's Chi-squared test
## 
## data:  carros$modelo and carros$conserv
## X-squared = 0.15396, df = 2, p-value = 0.9259

Trabalhamos com 2 hipóteses:

Hipótese nula:

As frequências observadas não são diferentes das frequências esperadas. Não existe diferença entre as frequências (contagens) dos grupos. Portanto, não há associação entre os grupos

Hipótese alternativa:

As frequências observadas são diferentes das frequências esperadas, portanto existe diferença entre as frequências. Portanto, há associação entre os grupos.

Neste caso, o valor do Chi = 0.15
E graus de liberdade (df) = 2 Portanto, não há associação entre os grupos O valor alto do p-value confirma esta conclusão.