Integrantes del grupo

Instalar paquetes

Instalamos paquetes correspondientes y llamar librerias

#install.packages("qcc") 

library(qcc) 
## Warning: package 'qcc' was built under R version 4.4.3
## Package 'qcc' version 2.7
## Type 'citation("qcc")' for citing this R package in publications.
library(rmarkdown)
## Warning: package 'rmarkdown' was built under R version 4.4.3
#install.packages("rsconnect")

Importar base de datos

Importamos base de datos de calidad de vinos

BD<- read.csv("C:/Users/kparedes/Downloads/winequality-red.csv")
head(BD)
##   fixed.acidity volatile.acidity citric.acid residual.sugar chlorides
## 1           7.4             0.70        0.00            1.9     0.076
## 2           7.8             0.88        0.00            2.6     0.098
## 3           7.8             0.76        0.04            2.3     0.092
## 4          11.2             0.28        0.56            1.9     0.075
## 5           7.4             0.70        0.00            1.9     0.076
## 6           7.4             0.66        0.00            1.8     0.075
##   free.sulfur.dioxide total.sulfur.dioxide density   pH sulphates alcohol
## 1                  11                   34  0.9978 3.51      0.56     9.4
## 2                  25                   67  0.9968 3.20      0.68     9.8
## 3                  15                   54  0.9970 3.26      0.65     9.8
## 4                  17                   60  0.9980 3.16      0.58     9.8
## 5                  11                   34  0.9978 3.51      0.56     9.4
## 6                  13                   40  0.9978 3.51      0.56     9.4
##   quality
## 1       5
## 2       5
## 3       5
## 4       6
## 5       5
## 6       5

Análisis descriptivo

La base de datos es de 12 columnas y 1599 registros

dim(BD)
## [1] 1599   12

La base de datos contiene 12 columnas

length(BD)
## [1] 12

Las variables de la base de datos son las siguientes:fixed.acidity, #volatile.acidity,citric.acid,residual.sugar,chlorides,free.sulfur.dioxide, #total.sulfur.dioxide,density,pH,sulphates,alcohol,quality

colnames(BD)
##  [1] "fixed.acidity"        "volatile.acidity"     "citric.acid"         
##  [4] "residual.sugar"       "chlorides"            "free.sulfur.dioxide" 
##  [7] "total.sulfur.dioxide" "density"              "pH"                  
## [10] "sulphates"            "alcohol"              "quality"

Este comando nos presenta los valores minimos y maximo, 1er y 3er cuartil el valor de la media y la mediana.

summary(BD)
##  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

Podemos visualizar que la base de datos cuenta con 11 variables decimales y 1 varible entera

str(BD)
## 'data.frame':    1599 obs. of  12 variables:
##  $ fixed.acidity       : num  7.4 7.8 7.8 11.2 7.4 7.4 7.9 7.3 7.8 7.5 ...
##  $ volatile.acidity    : num  0.7 0.88 0.76 0.28 0.7 0.66 0.6 0.65 0.58 0.5 ...
##  $ citric.acid         : num  0 0 0.04 0.56 0 0 0.06 0 0.02 0.36 ...
##  $ residual.sugar      : num  1.9 2.6 2.3 1.9 1.9 1.8 1.6 1.2 2 6.1 ...
##  $ chlorides           : num  0.076 0.098 0.092 0.075 0.076 0.075 0.069 0.065 0.073 0.071 ...
##  $ free.sulfur.dioxide : num  11 25 15 17 11 13 15 15 9 17 ...
##  $ total.sulfur.dioxide: num  34 67 54 60 34 40 59 21 18 102 ...
##  $ density             : num  0.998 0.997 0.997 0.998 0.998 ...
##  $ pH                  : num  3.51 3.2 3.26 3.16 3.51 3.51 3.3 3.39 3.36 3.35 ...
##  $ sulphates           : num  0.56 0.68 0.65 0.58 0.56 0.56 0.46 0.47 0.57 0.8 ...
##  $ alcohol             : num  9.4 9.8 9.8 9.8 9.4 9.4 9.4 10 9.5 10.5 ...
##  $ quality             : int  5 5 5 6 5 5 5 7 7 5 ...

Visualización de gráficas (histograma)

configuración de la visualización del ploteo y creación de histograma

par(mfrow=c(c(2,6)))
columna <- length(BD) #contador de columnas en la base de datos
columna
## [1] 12
HISTO <- NULL #variable que almacena los histogramas de cada variable
for(i in 1:columna)
  {
  texto<-paste("Histograma de",colnames(BD)[i])
  hist(BD[ ,i],main=texto,xlab=colnames(BD)[i])
  HISTO<-c(HISTO,i)
  }

HISTO
##  [1]  1  2  3  4  5  6  7  8  9 10 11 12

La variables ph y densidad tienen un comportamiento de distribución normal Las variables fixed.acidity,volatile.acidity,residual.sugar,chlorides, free.sulfur.dioxide,total.sulfur.dioxide,sulphates,alcohol tiene un comportamiento de asimetría positivia

Visualización de gráficas (pie)

Generar gráfico de pie para la variable a evaluar (qualit)

# Tabla de frecuencias de la calidad
tabla_quality <- table(BD$quality)

# Crear el gráfico de pastel
pie(tabla_quality,
    main = "Distribución de la calidad del vino",
    col = rainbow(length(tabla_quality)),
    labels = paste(names(tabla_quality), "(", tabla_quality, ")", sep = " "))

Se puede identificar que la mayor cantidad de vinos se encuentra en al calizad 7, 5 y 6 con 199, 638 y 681 respectivamente.

Tabla de correlación

Generar matriz de correlación

MC<-cor(BD)
MC
##                      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

Existe una correlación moderada entre las variables: citric.acid y fixed.acidy cuya correlación es de 0.67170343 total.sulfur.dioxide y free.sulfur.dioxide cuya correlación es de 0.667666450

Gráficos de distribuciones

Generando distribuciones relativa y acumulada

# Convertir a densidad de probabilidad (frecuencia relativa)
pdf <- tabla_quality / sum(tabla_quality)

# Calcular distribución acumulada
cdf <- cumsum(pdf)

# Extraer los valores de calidad (3, 4, ..., 8)
x <- as.numeric(names(pdf))

# Gráficos lado a lado
par(mfrow = c(1, 2))

# Gráfico de la función de densidad de probabilidad (f.d.p)
plot(x, pdf, type = "h", lwd = 4, col = "blue", 
     xlab = "Quality", ylab = "f(X)", main = "Función de densidad de probabilidad")

# Gráfico de la función de distribución acumulada (f.d.a)
plot(x, cdf, type = "s", lwd = 2, col = "red", 
     xlab = "Quality", ylab = "F(X)", main = "Función de distribución acumulada")

Por la distribución acumulada (gráfico de la derecha), se puede visualizar que los datos se concentran cuando el valor de la calidad es mayor (5 - 8)