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")
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
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 ...
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
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.
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
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)