library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.6
## ✔ forcats   1.0.1     ✔ stringr   1.6.0
## ✔ ggplot2   4.0.1     ✔ tibble    3.3.0
## ✔ lubridate 1.9.4     ✔ tidyr     1.3.1
## ✔ purrr     1.2.0     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(corrplot)
## corrplot 0.95 loaded
winequality.red <- read.csv("C:\\Users\\Almendra\\OneDrive\\Documentos\\winequality-red.csv")
  View(winequality.red)
summary(winequality.red)
##  fixed.acidity   volatile.acidity  citric.acid    residual.sugar  
##  Min.   : 4.60   Min.   :0.1200   Min.   :0.000   Min.   : 0.900  
##  1st Qu.: 7.10   1st Qu.:0.3900   1st Qu.:0.090   1st Qu.: 1.900  
##  Median : 7.90   Median :0.5200   Median :0.260   Median : 2.200  
##  Mean   : 8.32   Mean   :0.5278   Mean   :0.271   Mean   : 2.539  
##  3rd Qu.: 9.20   3rd Qu.:0.6400   3rd Qu.:0.420   3rd Qu.: 2.600  
##  Max.   :15.90   Max.   :1.5800   Max.   :1.000   Max.   :15.500  
##    chlorides       free.sulfur.dioxide total.sulfur.dioxide    density      
##  Min.   :0.01200   Min.   : 1.00       Min.   :  6.00       Min.   :0.9901  
##  1st Qu.:0.07000   1st Qu.: 7.00       1st Qu.: 22.00       1st Qu.:0.9956  
##  Median :0.07900   Median :14.00       Median : 38.00       Median :0.9968  
##  Mean   :0.08747   Mean   :15.87       Mean   : 46.47       Mean   :0.9967  
##  3rd Qu.:0.09000   3rd Qu.:21.00       3rd Qu.: 62.00       3rd Qu.:0.9978  
##  Max.   :0.61100   Max.   :72.00       Max.   :289.00       Max.   :1.0037  
##        pH          sulphates         alcohol         quality     
##  Min.   :2.740   Min.   :0.3300   Min.   : 8.40   Min.   :3.000  
##  1st Qu.:3.210   1st Qu.:0.5500   1st Qu.: 9.50   1st Qu.:5.000  
##  Median :3.310   Median :0.6200   Median :10.20   Median :6.000  
##  Mean   :3.311   Mean   :0.6581   Mean   :10.42   Mean   :5.636  
##  3rd Qu.:3.400   3rd Qu.:0.7300   3rd Qu.:11.10   3rd Qu.:6.000  
##  Max.   :4.010   Max.   :2.0000   Max.   :14.90   Max.   :8.000
# Cargar la librería necesaria PRIMERO
library(skimr)
# Resumen estadístico detallado (Media, Desviación, Histogramas en consola)
q <- skim(winequality.red)
q
Data summary
Name winequality.red
Number of rows 1599
Number of columns 12
_______________________
Column type frequency:
numeric 12
________________________
Group variables None

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
fixed.acidity 0 1 8.32 1.74 4.60 7.10 7.90 9.20 15.90 ▂▇▂▁▁
volatile.acidity 0 1 0.53 0.18 0.12 0.39 0.52 0.64 1.58 ▅▇▂▁▁
citric.acid 0 1 0.27 0.19 0.00 0.09 0.26 0.42 1.00 ▇▆▅▁▁
residual.sugar 0 1 2.54 1.41 0.90 1.90 2.20 2.60 15.50 ▇▁▁▁▁
chlorides 0 1 0.09 0.05 0.01 0.07 0.08 0.09 0.61 ▇▁▁▁▁
free.sulfur.dioxide 0 1 15.87 10.46 1.00 7.00 14.00 21.00 72.00 ▇▅▁▁▁
total.sulfur.dioxide 0 1 46.47 32.90 6.00 22.00 38.00 62.00 289.00 ▇▂▁▁▁
density 0 1 1.00 0.00 0.99 1.00 1.00 1.00 1.00 ▁▃▇▂▁
pH 0 1 3.31 0.15 2.74 3.21 3.31 3.40 4.01 ▁▅▇▂▁
sulphates 0 1 0.66 0.17 0.33 0.55 0.62 0.73 2.00 ▇▅▁▁▁
alcohol 0 1 10.42 1.07 8.40 9.50 10.20 11.10 14.90 ▇▇▃▁▁
quality 0 1 5.64 0.81 3.00 5.00 6.00 6.00 8.00 ▁▇▇▂▁
#Variables con datos nulos 
r<- colSums(is.na(winequality.red))
r
##        fixed.acidity     volatile.acidity          citric.acid 
##                    0                    0                    0 
##       residual.sugar            chlorides  free.sulfur.dioxide 
##                    0                    0                    0 
## total.sulfur.dioxide              density                   pH 
##                    0                    0                    0 
##            sulphates              alcohol              quality 
##                    0                    0                    0
#Histograma de calidad del vino
s <-ggplot(winequality.red, aes(x = quality)) +
geom_bar(fill = "steelblue", color = "black") +
labs(title = "Distribución de la Calidad del Vino", x = "Calidad (Puntaje)", y = "Cantidad") +
theme_minimal()
s

# Calcular la matriz de correlación
matriz_cor <- cor(winequality.red)
# Graficarla
t <-corrplot(matriz_cor, method = "color", type = "upper", 
 addCoef.col = "black", # Agregar números
tl.col = "black", tl.srt = 45, # Color de etiquetas
title = "Matriz de Correlación", mar=c(0,0,1,0))

t
## $corr
##                      fixed.acidity volatile.acidity citric.acid residual.sugar
## fixed.acidity           1.00000000     -0.256130895  0.67170343    0.114776724
## volatile.acidity       -0.25613089      1.000000000 -0.55249568    0.001917882
## citric.acid             0.67170343     -0.552495685  1.00000000    0.143577162
## residual.sugar          0.11477672      0.001917882  0.14357716    1.000000000
## chlorides               0.09370519      0.061297772  0.20382291    0.055609535
## free.sulfur.dioxide    -0.15379419     -0.010503827 -0.06097813    0.187048995
## total.sulfur.dioxide   -0.11318144      0.076470005  0.03553302    0.203027882
## density                 0.66804729      0.022026232  0.36494718    0.355283371
## pH                     -0.68297819      0.234937294 -0.54190414   -0.085652422
## sulphates               0.18300566     -0.260986685  0.31277004    0.005527121
## alcohol                -0.06166827     -0.202288027  0.10990325    0.042075437
## quality                 0.12405165     -0.390557780  0.22637251    0.013731637
##                         chlorides free.sulfur.dioxide total.sulfur.dioxide
## fixed.acidity         0.093705186        -0.153794193          -0.11318144
## volatile.acidity      0.061297772        -0.010503827           0.07647000
## citric.acid           0.203822914        -0.060978129           0.03553302
## residual.sugar        0.055609535         0.187048995           0.20302788
## chlorides             1.000000000         0.005562147           0.04740047
## free.sulfur.dioxide   0.005562147         1.000000000           0.66766645
## total.sulfur.dioxide  0.047400468         0.667666450           1.00000000
## density               0.200632327        -0.021945831           0.07126948
## pH                   -0.265026131         0.070377499          -0.06649456
## sulphates             0.371260481         0.051657572           0.04294684
## alcohol              -0.221140545        -0.069408354          -0.20565394
## quality              -0.128906560        -0.050656057          -0.18510029
##                          density          pH    sulphates     alcohol
## fixed.acidity         0.66804729 -0.68297819  0.183005664 -0.06166827
## volatile.acidity      0.02202623  0.23493729 -0.260986685 -0.20228803
## citric.acid           0.36494718 -0.54190414  0.312770044  0.10990325
## residual.sugar        0.35528337 -0.08565242  0.005527121  0.04207544
## chlorides             0.20063233 -0.26502613  0.371260481 -0.22114054
## free.sulfur.dioxide  -0.02194583  0.07037750  0.051657572 -0.06940835
## total.sulfur.dioxide  0.07126948 -0.06649456  0.042946836 -0.20565394
## density               1.00000000 -0.34169933  0.148506412 -0.49617977
## pH                   -0.34169933  1.00000000 -0.196647602  0.20563251
## sulphates             0.14850641 -0.19664760  1.000000000  0.09359475
## alcohol              -0.49617977  0.20563251  0.093594750  1.00000000
## quality              -0.17491923 -0.05773139  0.251397079  0.47616632
##                          quality
## fixed.acidity         0.12405165
## volatile.acidity     -0.39055778
## citric.acid           0.22637251
## residual.sugar        0.01373164
## chlorides            -0.12890656
## free.sulfur.dioxide  -0.05065606
## total.sulfur.dioxide -0.18510029
## density              -0.17491923
## pH                   -0.05773139
## sulphates             0.25139708
## alcohol               0.47616632
## quality               1.00000000
## 
## $corrPos
##                   xName                yName  x  y         corr
## 1         fixed.acidity        fixed.acidity  1 12  1.000000000
## 2      volatile.acidity        fixed.acidity  2 12 -0.256130895
## 3      volatile.acidity     volatile.acidity  2 11  1.000000000
## 4           citric.acid        fixed.acidity  3 12  0.671703435
## 5           citric.acid     volatile.acidity  3 11 -0.552495685
## 6           citric.acid          citric.acid  3 10  1.000000000
## 7        residual.sugar        fixed.acidity  4 12  0.114776724
## 8        residual.sugar     volatile.acidity  4 11  0.001917882
## 9        residual.sugar          citric.acid  4 10  0.143577162
## 10       residual.sugar       residual.sugar  4  9  1.000000000
## 11            chlorides        fixed.acidity  5 12  0.093705186
## 12            chlorides     volatile.acidity  5 11  0.061297772
## 13            chlorides          citric.acid  5 10  0.203822914
## 14            chlorides       residual.sugar  5  9  0.055609535
## 15            chlorides            chlorides  5  8  1.000000000
## 16  free.sulfur.dioxide        fixed.acidity  6 12 -0.153794193
## 17  free.sulfur.dioxide     volatile.acidity  6 11 -0.010503827
## 18  free.sulfur.dioxide          citric.acid  6 10 -0.060978129
## 19  free.sulfur.dioxide       residual.sugar  6  9  0.187048995
## 20  free.sulfur.dioxide            chlorides  6  8  0.005562147
## 21  free.sulfur.dioxide  free.sulfur.dioxide  6  7  1.000000000
## 22 total.sulfur.dioxide        fixed.acidity  7 12 -0.113181443
## 23 total.sulfur.dioxide     volatile.acidity  7 11  0.076470005
## 24 total.sulfur.dioxide          citric.acid  7 10  0.035533024
## 25 total.sulfur.dioxide       residual.sugar  7  9  0.203027882
## 26 total.sulfur.dioxide            chlorides  7  8  0.047400468
## 27 total.sulfur.dioxide  free.sulfur.dioxide  7  7  0.667666450
## 28 total.sulfur.dioxide total.sulfur.dioxide  7  6  1.000000000
## 29              density        fixed.acidity  8 12  0.668047292
## 30              density     volatile.acidity  8 11  0.022026232
## 31              density          citric.acid  8 10  0.364947175
## 32              density       residual.sugar  8  9  0.355283371
## 33              density            chlorides  8  8  0.200632327
## 34              density  free.sulfur.dioxide  8  7 -0.021945831
## 35              density total.sulfur.dioxide  8  6  0.071269476
## 36              density              density  8  5  1.000000000
## 37                   pH        fixed.acidity  9 12 -0.682978195
## 38                   pH     volatile.acidity  9 11  0.234937294
## 39                   pH          citric.acid  9 10 -0.541904145
## 40                   pH       residual.sugar  9  9 -0.085652422
## 41                   pH            chlorides  9  8 -0.265026131
## 42                   pH  free.sulfur.dioxide  9  7  0.070377499
## 43                   pH total.sulfur.dioxide  9  6 -0.066494559
## 44                   pH              density  9  5 -0.341699335
## 45                   pH                   pH  9  4  1.000000000
## 46            sulphates        fixed.acidity 10 12  0.183005664
## 47            sulphates     volatile.acidity 10 11 -0.260986685
## 48            sulphates          citric.acid 10 10  0.312770044
## 49            sulphates       residual.sugar 10  9  0.005527121
## 50            sulphates            chlorides 10  8  0.371260481
## 51            sulphates  free.sulfur.dioxide 10  7  0.051657572
## 52            sulphates total.sulfur.dioxide 10  6  0.042946836
## 53            sulphates              density 10  5  0.148506412
## 54            sulphates                   pH 10  4 -0.196647602
## 55            sulphates            sulphates 10  3  1.000000000
## 56              alcohol        fixed.acidity 11 12 -0.061668271
## 57              alcohol     volatile.acidity 11 11 -0.202288027
## 58              alcohol          citric.acid 11 10  0.109903247
## 59              alcohol       residual.sugar 11  9  0.042075437
## 60              alcohol            chlorides 11  8 -0.221140545
## 61              alcohol  free.sulfur.dioxide 11  7 -0.069408354
## 62              alcohol total.sulfur.dioxide 11  6 -0.205653944
## 63              alcohol              density 11  5 -0.496179770
## 64              alcohol                   pH 11  4  0.205632509
## 65              alcohol            sulphates 11  3  0.093594750
## 66              alcohol              alcohol 11  2  1.000000000
## 67              quality        fixed.acidity 12 12  0.124051649
## 68              quality     volatile.acidity 12 11 -0.390557780
## 69              quality          citric.acid 12 10  0.226372514
## 70              quality       residual.sugar 12  9  0.013731637
## 71              quality            chlorides 12  8 -0.128906560
## 72              quality  free.sulfur.dioxide 12  7 -0.050656057
## 73              quality total.sulfur.dioxide 12  6 -0.185100289
## 74              quality              density 12  5 -0.174919228
## 75              quality                   pH 12  4 -0.057731391
## 76              quality            sulphates 12  3  0.251397079
## 77              quality              alcohol 12  2  0.476166324
## 78              quality              quality 12  1  1.000000000
## 
## $arg
## $arg$type
## [1] "upper"
# Histograma de todas las variables numéricas
v<-winequality.red %>%
gather() %>%
ggplot(aes(value)) +
facet_wrap(~key, scales = "free") +
geom_histogram(fill = "skyblue", color = "white") +
theme_minimal()
v
## `stat_bin()` using `bins = 30`. Pick better value `binwidth`.