Este es un markdown para realizar un análisis exploratorio de datos de la base de datos Carseats del paquete ISLR. Se trabajará principalmente con el paquete dlookr pues permite realizar análisis automatizado.
La información de esta base de datos se enmarca en el estudio de un sector del mercado y cuenta con las siguientes variables:
Sales: Ventas unitarias (en miles) en cada ubicación CompPrice: Precio cobrado por el competidor en cada ubicación Income: Nivel de ingresos de la comunidad (en miles de dólares) Advertising: Presupuesto de publicidad local de la empresa en cada ubicación (en miles de dólares) Population: Tamaño de la población en la región (en miles) Price: Precio que la empresa cobra por las sillas de coche en cada emplazamiento ShelveLoc: Factor con niveles Malo, Bueno y Medio que indica la calidad de la ubicación de las estanterías para las sillas de coche en cada centro Age: Edad media de la población local Education: Nivel educativo en cada ubicación Urban: Un factor con niveles No y Sí para indicar si la tienda está en una ubicación urbana o rural US: Un factor con niveles No y Sí para indicar si la tienda está en EE.UU. o no
library(ISLR)
str(Carseats)
## 'data.frame': 400 obs. of 11 variables:
## $ Sales : num 9.5 11.22 10.06 7.4 4.15 ...
## $ CompPrice : num 138 111 113 117 141 124 115 136 132 132 ...
## $ Income : num 73 48 35 100 64 113 105 81 110 113 ...
## $ Advertising: num 11 16 10 4 3 13 0 15 0 0 ...
## $ Population : num 276 260 269 466 340 501 45 425 108 131 ...
## $ Price : num 120 83 80 97 128 72 108 120 124 124 ...
## $ ShelveLoc : Factor w/ 3 levels "Bad","Good","Medium": 1 2 3 3 1 1 3 2 3 3 ...
## $ Age : num 42 65 59 55 38 78 71 67 76 76 ...
## $ Education : num 17 10 12 14 13 16 15 10 10 17 ...
## $ Urban : Factor w/ 2 levels "No","Yes": 2 2 2 2 2 1 2 2 1 1 ...
## $ US : Factor w/ 2 levels "No","Yes": 2 2 2 2 1 2 1 2 1 2 ...
carseats <- ISLR::Carseats
library(dlookr)
## Warning in !is.null(rmarkdown::metadata$output) && rmarkdown::metadata$output
## %in% : 'length(x) = 4 > 1' in coercion to 'logical(1)'
##
## Attaching package: 'dlookr'
## The following object is masked from 'package:base':
##
## transform
describe(carseats)
describe(carseats, Sales, CompPrice, Income)
describe(carseats, Sales:Income)
describe(carseats, -(Sales:Income))
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
carseats %>%
describe() %>%
select(described_variables, skewness, mean, p25, p50, p75) %>%
filter(!is.na(skewness)) %>%
arrange(desc(abs(skewness)))
carseats %>%
group_by(US) %>%
describe(Sales, Income)
carseats %>%
group_by(US, Urban) %>%
describe(Sales, Income)
univar_numeric(carseats)
## $statistics
## # A tibble: 8 × 10
## described_variables n na mean sd se_mean IQR skewness kurtosis
## <chr> <int> <int> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Sales 400 0 7.50 2.82 0.141 3.93 0.186 -0.0809
## 2 CompPrice 400 0 125. 15.3 0.767 20 -0.0428 0.0417
## 3 Income 400 0 68.7 28.0 1.40 48.2 0.0494 -1.09
## 4 Advertising 400 0 6.64 6.65 0.333 12 0.640 -0.545
## 5 Population 400 0 265. 147. 7.37 260. -0.0512 -1.20
## 6 Price 400 0 116. 23.7 1.18 31 -0.125 0.452
## 7 Age 400 0 53.3 16.2 0.810 26.2 -0.0772 -1.13
## 8 Education 400 0 13.9 2.62 0.131 4 0.0440 -1.30
## # ℹ 1 more variable: median <dbl>
diagnose_category(carseats, ShelveLoc, Urban, US)
12.Otra manera de analizar la información cualitativa es esta.
univar_category(carseats, ShelveLoc, Urban, US)
## $ShelveLoc
## ShelveLoc n rate
## 1 Bad 96 0.2400
## 2 Good 85 0.2125
## 3 Medium 219 0.5475
##
## $Urban
## Urban n rate
## 1 No 118 0.295
## 2 Yes 282 0.705
##
## $US
## US n rate
## 1 No 142 0.355
## 2 Yes 258 0.645
univar_category(carseats)
## $ShelveLoc
## ShelveLoc n rate
## 1 Bad 96 0.2400
## 2 Good 85 0.2125
## 3 Medium 219 0.5475
##
## $Urban
## Urban n rate
## 1 No 118 0.295
## 2 Yes 282 0.705
##
## $US
## US n rate
## 1 No 142 0.355
## 2 Yes 258 0.645
library(skimr)
#skim(carseats)
normality(carseats)
normality(carseats, Sales, CompPrice, Income)
18.Analizando la normalidad de las variables que van desde Sales hasta Income. Mismo resultado que el código anterior.
normality(carseats, Sales:Income)
normality(carseats, -(Sales:Income))
carseats %>%
normality() %>%
filter(p_value <= 0.01) %>%
arrange(abs(p_value))
21.Verificando la normalidad en los grupos de las variables ShelveLoc y US.
carseats %>%
group_by(ShelveLoc, US) %>%
normality(Income) %>%
arrange(desc(p_value))
carseats %>%
mutate(log_income = log(Income)) %>%
group_by(ShelveLoc, US) %>%
normality(log_income) %>%
filter(p_value > 0.05)
plot_normality(carseats, Sales, CompPrice)
Aprovecharemos el dlookr para realizar un poco de análisis de datos bivariado. Como se puede observar este paquete es bastante completo.
correlate(carseats)
plot_correlate(carseats)
## Warning: 'plot_correlate' is deprecated.
## Use 'plot.correlate' instead.
## See help("Deprecated")
#carseats %>%
# eda_report(target = Sales, output_format = "html", output_file = "EDA_carseats.html")
#eda_paged_report(carseats, output_format = "html")
tinytex::install_tinytex()