NOTA: La data usada en este documento es la referida a vino tinto
Las variables cualitativas que se utilizarán son:
A continuación se muestran los histogramas y ojivas clasificados por las respectivas variables
plot(cumsum(data$fixed.acidity), col="red",xlab = "Ácido fijo", ylab = "Frecuencia", main="Ojiva de ácido fijo")
lines(cumsum(data$fixed.acidity))
hist(data$fixed.acidity, col="red",xlab = "Ácido fijo", ylab = "Frecuencia", main="Histograma de ácido fijo")
plot(cumsum(data$sulphates), col="white",xlab = "Sulfatos", ylab = "Frecuencia", main="Ojiva de sulfatos")
lines(cumsum(data$sulphates))
hist(data$sulphates, col="black",xlab = "Sulfatos", ylab = "Frecuencia", main="Histograma de sulfatos")
summary(data$sulphates)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.3300 0.5500 0.6200 0.6581 0.7300 2.0000
plot(cumsum(data$chlorides), col="blue",xlab = "Cloruros", ylab = "Frecuencia", main="Ojiva de cloruros")
lines(cumsum(data$chlorides))
hist(data$chlorides, col="blue",xlab = "Cloruros", ylab = "Frecuencia", main="Histograma de cloruros")
plot(cumsum(data$free.sulfur.dioxide), col="purple",xlab = "Dióxido de azufre libre", ylab = "Frecuencia", main="Ojiva de dióxido de azufre libre")
lines(cumsum(data$free.sulfur.dioxide))
hist(data$free.sulfur.dioxide, col="purple",xlab = "Dióxido de azufre libre", ylab = "Frecuencia", main="Histograma de dióxido de azufre libre")
plot(cumsum(data$density), col="orange",xlab = "Densidad", ylab = "Frecuencia", main="Ojiva de densidad")
lines(cumsum(data$density))
hist(data$density, col="orange",xlab = "Densidad", ylab = "Frecuencia", main="Histograma de densidad")
Se presentan los respectivos diagramas de cajas:
boxplot(data$fixed.acidity, horizontal=TRUE, col="red",main = "Diagrama de cajas de acidez fija")
boxplot(data$sulphates, horizontal=TRUE, col="white",main = "Diagrama de cajas de sulfatos")
boxplot(data$chlorides, horizontal=TRUE, col="blue",main = "Diagrama de cajas de cloruros")
boxplot(data$free.sulfur.dioxide, horizontal=TRUE, col="purple",main = "Diagrama de cajas de dióxido de azufre libre")
boxplot(data$density, horizontal=TRUE, col="orange",main = "Diagrama de cajas de densidad")
Para calcular los estadísticos principales se importará la librería moments
library(moments)
Los datos calculados son:
#media
media_fixed_acidity=mean(data$fixed.acidity)
media_fixed_acidity
## [1] 8.319637
#mediana
mediana_fixed_acidity=median(data$fixed.acidity)
mediana_fixed_acidity
## [1] 7.9
#desviación estándar
destandar_fixed_acidity=sd(data$fixed.acidity)
destandar_fixed_acidity
## [1] 1.741096
#cuantiles
cuantiles_fixed_acidity=quantile(data$fixed.acidity)
cuantiles_fixed_acidity
## 0% 25% 50% 75% 100%
## 4.6 7.1 7.9 9.2 15.9
#curtosis
curtosis_fixed_acidity=kurtosis(data$fixed.acidity)
curtosis_fixed_acidity
## [1] 4.124856
#sesgo
sesgo_fixed_acidity=skewness(data$fixed.acidity)
sesgo_fixed_acidity
## [1] 0.9818293
#media
media_sulphates=mean(data$sulphates)
media_sulphates
## [1] 0.6581488
#mediana
mediana_sulphates=median(data$sulphates)
mediana_sulphates
## [1] 0.62
#desviación estándar
destandar_sulphates=sd(data$sulphates)
destandar_sulphates
## [1] 0.169507
#cuantiles
cuantiles_sulphates=quantile(data$sulphates)
cuantiles_sulphates
## 0% 25% 50% 75% 100%
## 0.33 0.55 0.62 0.73 2.00
#curtosis
curtosis_sulphates=kurtosis(data$sulphates)
curtosis_sulphates
## [1] 14.67988
#sesgo
sesgo_sulphates=skewness(data$sulphates)
sesgo_sulphates
## [1] 2.426393
#media
media_chlorides=mean(data$chlorides)
media_chlorides
## [1] 0.08746654
#mediana
mediana_chlorides=median(data$chlorides)
mediana_chlorides
## [1] 0.079
#desviación estándar
destandar_chlorides=sd(data$chlorides)
destandar_chlorides
## [1] 0.0470653
#cuantiles
cuantiles_chlorides=quantile(data$chlorides)
cuantiles_chlorides
## 0% 25% 50% 75% 100%
## 0.012 0.070 0.079 0.090 0.611
#curtosis
curtosis_chlorides=kurtosis(data$chlorides)
curtosis_chlorides
## [1] 44.58171
#sesgo
sesgo_chlorides=skewness(data$chlorides)
sesgo_chlorides
## [1] 5.675017
#media
media_free_sulfur_dioxide=mean(data$free.sulfur.dioxide)
media_free_sulfur_dioxide
## [1] 15.87492
#mediana
mediana_free_sulfur_dioxide=median(data$free.sulfur.dioxide)
mediana_free_sulfur_dioxide
## [1] 14
#desviación estándar
destandar_free_sulfur_dioxide=sd(data$free.sulfur.dioxide)
destandar_free_sulfur_dioxide
## [1] 10.46016
#cuantiles
cuantiles_free_sulfur_dioxide=quantile(data$free.sulfur.dioxide)
cuantiles_free_sulfur_dioxide
## 0% 25% 50% 75% 100%
## 1 7 14 21 72
#curtosis
curtosis_free_sulfur_dioxide=kurtosis(data$free.sulfur.dioxide)
curtosis_free_sulfur_dioxide
## [1] 5.01349
#sesgo
sesgo_free_sulfur_dioxide=skewness(data$free.sulfur.dioxide)
sesgo_free_sulfur_dioxide
## [1] 1.249394
#media
media_density=mean(data$density)
media_density
## [1] 0.9967467
#mediana
mediana_density=median(data$density)
mediana_density
## [1] 0.99675
#desviación estándar
destandar_density=sd(data$density)
destandar_density
## [1] 0.001887334
#cuantiles
cuantiles_density=quantile(data$density)
cuantiles_density
## 0% 25% 50% 75% 100%
## 0.990070 0.995600 0.996750 0.997835 1.003690
#curtosis
curtosis_density=kurtosis(data$density)
curtosis_density
## [1] 3.927411
#sesgo
sesgo_density=skewness(data$density)
sesgo_density
## [1] 0.07122077
Importamos la librería fdth
library(fdth)
##
## Attaching package: 'fdth'
## The following objects are masked from 'package:stats':
##
## sd, var
tabla_fixed_acidity=fdt(data$fixed.acidity, breaks = "Sturges")
tabla_fixed_acidity
## Class limits f rf rf(%) cf cf(%)
## [4.554,5.5127) 29 0.02 1.81 29 1.81
## [5.5127,6.4715) 117 0.07 7.32 146 9.13
## [6.4715,7.4303) 428 0.27 26.77 574 35.90
## [7.4303,8.389) 395 0.25 24.70 969 60.60
## [8.389,9.3478) 256 0.16 16.01 1225 76.61
## [9.3478,10.306) 161 0.10 10.07 1386 86.68
## [10.306,11.265) 92 0.06 5.75 1478 92.43
## [11.265,12.224) 67 0.04 4.19 1545 96.62
## [12.224,13.183) 34 0.02 2.13 1579 98.75
## [13.183,14.142) 12 0.01 0.75 1591 99.50
## [14.142,15.1) 3 0.00 0.19 1594 99.69
## [15.1,16.059) 5 0.00 0.31 1599 100.00
tabla_sulphates=fdt(data$sulphates, breaks = "Sturges")
tabla_sulphates
## Class limits f rf rf(%) cf cf(%)
## [0.3267,0.4678) 72 0.05 4.50 72 4.50
## [0.4678,0.6089) 651 0.41 40.71 723 45.22
## [0.6089,0.75) 536 0.34 33.52 1259 78.74
## [0.75,0.8911) 230 0.14 14.38 1489 93.12
## [0.8911,1.032) 58 0.04 3.63 1547 96.75
## [1.032,1.173) 30 0.02 1.88 1577 98.62
## [1.173,1.314) 9 0.01 0.56 1586 99.19
## [1.314,1.456) 5 0.00 0.31 1591 99.50
## [1.456,1.597) 2 0.00 0.13 1593 99.62
## [1.597,1.738) 2 0.00 0.13 1595 99.75
## [1.738,1.879) 0 0.00 0.00 1595 99.75
## [1.879,2.02) 4 0.00 0.25 1599 100.00
tabla_chlorides=fdt(data$chlorides, breaks = "Sturges")
tabla_chlorides
## Class limits f rf rf(%) cf cf(%)
## [0.01188,0.06232) 200 0.13 12.51 200 12.51
## [0.06232,0.1128) 1262 0.79 78.92 1462 91.43
## [0.1128,0.1632) 78 0.05 4.88 1540 96.31
## [0.1632,0.2136) 21 0.01 1.31 1561 97.62
## [0.2136,0.2641) 14 0.01 0.88 1575 98.50
## [0.2641,0.3145) 2 0.00 0.13 1577 98.62
## [0.3145,0.3649) 6 0.00 0.38 1583 99.00
## [0.3649,0.4154) 11 0.01 0.69 1594 99.69
## [0.4154,0.4658) 2 0.00 0.13 1596 99.81
## [0.4658,0.5162) 1 0.00 0.06 1597 99.87
## [0.5162,0.5667) 0 0.00 0.00 1597 99.87
## [0.5667,0.6171) 2 0.00 0.13 1599 100.00
tabla_free_sulfur_dioxide=fdt(data$free.sulfur.dioxide, breaks = "Sturges")
tabla_free_sulfur_dioxide
## Class limits f rf rf(%) cf cf(%)
## [0.99,6.9675) 337 0.21 21.08 337 21.08
## [6.9675,12.945) 402 0.25 25.14 739 46.22
## [12.945,18.922) 352 0.22 22.01 1091 68.23
## [18.922,24.9) 198 0.12 12.38 1289 80.61
## [24.9,30.877) 147 0.09 9.19 1436 89.81
## [30.877,36.855) 97 0.06 6.07 1533 95.87
## [36.855,42.833) 36 0.02 2.25 1569 98.12
## [42.833,48.81) 12 0.01 0.75 1581 98.87
## [48.81,54.788) 11 0.01 0.69 1592 99.56
## [54.788,60.765) 3 0.00 0.19 1595 99.75
## [60.765,66.742) 1 0.00 0.06 1596 99.81
## [66.742,72.72) 3 0.00 0.19 1599 100.00
tabla_density=fdt(data$density, breaks = "Sturges")
tabla_density
## Class limits f rf rf(%) cf cf(%)
## [0.9802,0.983) 0 0.00 0.00 0 0.00
## [0.983,0.9858) 0 0.00 0.00 0 0.00
## [0.9858,0.9886) 0 0.00 0.00 0 0.00
## [0.9886,0.9914) 8 0.01 0.50 8 0.50
## [0.9914,0.9942) 117 0.07 7.32 125 7.82
## [0.9942,0.9969) 768 0.48 48.03 893 55.85
## [0.9969,0.9997) 612 0.38 38.27 1505 94.12
## [0.9997,1.003) 85 0.05 5.32 1590 99.44
## [1.003,1.005) 9 0.01 0.56 1599 100.00
## [1.005,1.008) 0 0.00 0.00 1599 100.00
## [1.008,1.011) 0 0.00 0.00 1599 100.00
## [1.011,1.014) 0 0.00 0.00 1599 100.00
A continuación se crean variables cualitativas a partir de cuantitativas, los rangos para la asignación de las variables fueron extraídos de internet.
##Acidez Volátil
data_volatile_acidity=data.frame(data, volatile=cut(data$volatile.acidity, breaks = c(0,0.30,0.80,1.5), labels = c("Malo", "Estándar", "Picado")))
##Calidad
data_quality=data.frame(data, quality=cut(data$quality, breaks = c(2,3,4,5,6,7,8), labels = c("Muy malo", "Malo", "Regular-Malo", "Regular-Bueno", "Bueno","Muy bueno")))
##pH
data_pH=data.frame(data, pH=cut(data$pH, breaks = c(2.74,3,3.3,3.6,4), labels = c("Muy ácido", "Ácido", "Estándar", "Poco ácido")))
tabla_cualitativa_vacidity=table(data_volatile_acidity$volatile)
tabla_cualitativa_vacidity
##
## Malo Estándar Picado
## 143 1352 103
barplot(tabla_cualitativa_vacidity,xlab = "Tipo", ylab = "Frecuencia", main = "Diagrama de Barra para acidez volátil", col = "orange")
porcentajes=as.numeric(round(prop.table(table(data_volatile_acidity$volatile))*100,2))
pie(porcentajes, labels = paste(c("Malo", "Estándar", "Picado"),porcentajes,"%"), main = "Diagrama circular para acidez volátil")
tabla_cualitativa_quality=table(data_quality$quality.1)
tabla_cualitativa_quality
##
## Muy malo Malo Regular-Malo Regular-Bueno Bueno
## 10 53 681 638 199
## Muy bueno
## 18
barplot(tabla_cualitativa_quality,xlab = "Tipo", ylab = "Frecuencia", main = "Diagrama de Barra para calidad", col = "red")
porcentajes=as.numeric(round(prop.table(table(data_quality$quality.1))*100,2))
pie(porcentajes, labels = paste(c("Muy malo", "Malo", "Regular-Malo", "Regular-Bueno", "Bueno", "Muy Bueno"),porcentajes,"%"), main = "Diagrama circular para calidad")
tabla_cualitativa_pH=table(data_pH$pH.1)
tabla_cualitativa_pH
##
## Muy ácido Ácido Estándar Poco ácido
## 34 748 768 46
barplot(tabla_cualitativa_pH,xlab = "Tipo", ylab = "Frecuencia", main = "Diagrama de Barra para pH", col = "blue")
porcentajes=as.numeric(round(prop.table(table(data_pH$pH.1))*100,2))
pie(porcentajes, labels = paste(c("Muy ácido", "Ácido", "Estándar", "Poco ácido"),porcentajes,"%"), main = "Diagrama circular para pH")
Para cada variable cuantitativa presente un diagrama de cajas segmentado por al menos una variable cualitativa.
plot(x=data_pH$pH.1, y=data$fixed.acidity, main = "Diagrama de cajas Ácido fijo-pH", xlab = "pH", ylab = "Ácido fijo", col = c("red", "purple", "blue", "green"))
plot(x=data_volatile_acidity$volatile, y=data$sulphates, main = "Diagrama de cajas Sulfatos-Ácido Volátil", xlab = "Ácido volátil", ylab = "Sulfatos", col = c("red", "purple", "blue", "green"))
plot(x=data_pH$pH.1, y=data$chlorides, main = "Diagrama de cajas cloruros-pH", xlab = "pH", ylab = "cloruros", col = c("red", "purple", "blue", "green"))
plot(x=data_quality$quality.1, y=data$free.sulfur.dioxide, main = "Diagrama de cajas dióxido de azufre libre-calidad", xlab = "Calidad", ylab = "Dióxido de azufre libre", col = c("red", "purple", "blue", "green"))
plot(x=data_quality$quality.1, y=data$density, main = "Diagrama de cajas densidad-calidad", xlab = "Calidad", ylab = "Densidad", col = c("red", "purple", "blue", "green"))
Se indexan con el respectivo índice de cada columna para cada variable cuantitativa
#Correlación
cor(data[,c(1,10,5,6,8)])
## fixed.acidity sulphates chlorides free.sulfur.dioxide
## fixed.acidity 1.00000000 0.18300566 0.093705186 -0.153794193
## sulphates 0.18300566 1.00000000 0.371260481 0.051657572
## chlorides 0.09370519 0.37126048 1.000000000 0.005562147
## free.sulfur.dioxide -0.15379419 0.05165757 0.005562147 1.000000000
## density 0.66804729 0.14850641 0.200632327 -0.021945831
## density
## fixed.acidity 0.66804729
## sulphates 0.14850641
## chlorides 0.20063233
## free.sulfur.dioxide -0.02194583
## density 1.00000000
#Covarianza
cov(data[,c(1,10,5,6,8)])
## fixed.acidity sulphates chlorides free.sulfur.dioxide
## fixed.acidity 3.031416389 5.401009e-02 7.678692e-03 -2.800921e+00
## sulphates 0.054010092 2.873262e-02 2.961878e-03 9.159247e-02
## chlorides 0.007678692 2.961878e-03 2.215143e-03 2.738303e-03
## free.sulfur.dioxide -2.800921493 9.159247e-02 2.738303e-03 1.094149e+02
## density 0.002195224 4.750962e-05 1.782176e-05 -4.332504e-04
## density
## fixed.acidity 2.195224e-03
## sulphates 4.750962e-05
## chlorides 1.782176e-05
## free.sulfur.dioxide -4.332504e-04
## density 3.562029e-06
Se importa la librería corrplot
library(corrplot)
## corrplot 0.84 loaded
corrplot.mixed(cor(cor(data[,c(1,10,5,6,8)])),lower = "pie",upper = "pie")
plot(data[,c(1,10,5,6,8)])
La variable que se usará es densidad
IC =t.test(x=data$density,conf.level=0.95)$conf.int
IC
## [1] 0.9966541 0.9968393
## attr(,"conf.level")
## [1] 0.95
Se desconoce el valor de las varianzas poblacionales, por lo que se realiza una prueba de hipótesis para contrastar si las varianzas son iguales.
Ho: varianzas iguales
H1: varianzas diferentes
#Filtro de las variables cuantitativas a partir de cualitativas
densidadMuyMala=data$density[data_quality$quality.1 =="Muy malo"]
densidadMuyBuena=data$density[data_quality$quality.1 =="Muy bueno"]
var.test(x = densidadMuyMala, y = densidadMuyBuena,
alternative = "two.sided",
conf.level = .95)
##
## F test to compare two variances
##
## data: densidadMuyMala and densidadMuyBuena
## F = 0.70849, num df = 9, denom df = 17, p-value = 0.6116
## alternative hypothesis: true ratio of variances is not equal to 1
## 95 percent confidence interval:
## 0.2373627 2.6367449
## sample estimates:
## ratio of variances
## 0.7084944
Debido a que el valor p es mayor a una significancia del 5%, entonces no hay suficiente evidencia estadística para rechazar la hipótesis nula, se supone varianzas iguales con un 5% de significancia
Ho: media de la densidad de los vinos muy malos es menor o igual a los vinos muy buenos
H1: media de la densidad de los vinos muy malos es mayor a los vinos muy buenos
t.test(x = densidadMuyMala, y = densidadMuyBuena,
alternative = c("greater"),
mu = 0, paired = FALSE, var.equal = T,
conf.level = 0.95)
##
## Two Sample t-test
##
## data: densidadMuyMala and densidadMuyBuena
## t = 2.5317, df = 26, p-value = 0.008867
## alternative hypothesis: true difference in means is greater than 0
## 95 percent confidence interval:
## 0.0007347648 Inf
## sample estimates:
## mean of x mean of y
## 0.9974640 0.9952122
Como el valor p es menor a un nivel de significancia del 5%, entonces se rechaza la hipótesis nula y se concluye que la media de la densidad de los vinos muy malos es superior a la de los vinos muy buenos con un 5% de significancia.
Los sulfatos son composiciones químicas orgánicas, producto de la fermentación del azúcar que luego se convertirá en alcohol, este azúcar es proveniente de las frutas que atravesarán procesos hasta convertirse en sulfitos. Los sulfitos cumplen la función de eliminadores de bacterias y así mismo actúan como preservantes para mantener los aromas del vino. En la muestra de datos que se trabajó para los vinos tintos. Basado en el histograma, los intervalos de la composición de sulfatos entre [0.6, 0.7] gramos litro (g/L), son aquellos que abarcan la mayoría de las los datos, esto es notorio ya que al observar los cuartiles primero 0.5500 y la mediana 0.6200 pertenecen a dicho intervalo, adicionalmente se puede observar que el valor de la media 0.6581 está cercana a la mediana, con una desviación estándar de 0.169507, con estos datos observados podemos indicar que la media es representativa de la muestra, hay que considerar que la muestra posee datos aberrantes mayores a 1.0, donde se encuentra el máximo (2.0000). El diagrama de cajas presenta un sesgo hacia la derecha que es poco apreciable. Los valores de sesgo 2.426393 y curtosis 14.67988, representan asimetría positiva y distribución leptocúrtica.
EL vino esta estructurado por muchos compuestos complejos, uno de ellos son las sales minerales presentes en el vino como los cloruros, las sales en el vino favorecen la hidratación del cuerpo, producen placer organoléptico, resalta sabores de los alimentos gracias al maridaje. En la muestra de datos que se trabajó para los vinos tintos, cuenta con una media muestral de (0.0875) mg/L. La mayoría de la concentración de datos ocurre en el segundo intervalo [0.06232,0.1128) que corresponde a un 79 % de los datos aproximadamente, estos datos se encuentran localizados en el primer cuartil, lo cual nos representa una asimetría positiva. Mientras que el valor mínimo y máximo es (0.01200 y 0.61100). Al hacer uso del diagrama de cajas nos permite visualizar que casi todos los datos aberrantes están a la derecha de este, y esto se puede reafirmar con el valor del sesgo 5.675017 ya que su valor es alto así como la curtosis de 44.58171 con lo cual tenemos presente una distribución leptocúrtica que es analizada fácilmente en el Histograma de frecuencias.
La acidez fija es una agrupación de ácidos naturales procedentes de la uva o formados en el proceso de fermentación del mosto, existen muchos ácidos conformados en el proceso de maceración del mosto como el cítrico, málico, láctico y el más importante que fue usado en nuestro análisis, el tartárico. En este último basamos las mediciones relevantes, unidades. Basándonos en el diagrama de cajas, se obtuvo un mínimo de 4.60 y un máximo de 15.90, dentro del histograma de frecuencias, la mayoría de los datos se concentraron en el intervalo de [7, 8] pese a esto, la media se encuentra en el siguiente intervalo con un valor de 8.32 y la mediana es de 7.90, su desviación estándar es de 1.741096 pese a esto, sus valores son muy cercanos. Alrededor del 50% de la muestra se encuentran entre los valores del primer cuartil y tercero (7.10 y 9.20 respectivamente), en la tabla de frecuencia se evidencia la concentración de valores en estos intervalos puesto que tiene una curtosis de 4.124856 siendo esta una distribución leptocúrtica ya que la mayoría de los datos se concentran cercan de su media y a su vez es mayor a 3. Además posee un sesgo de 0.9818293 y los datos representan asimetría positiva, y a su vez representa un factor parala mayor parte de datos aberrantes.
También hemos representado por medio de un diagrama de barras la calidad, como variable cualitativa, que nos da un resultado de frecuencias más altas siendo estas la “baja” con 681 y la “estándar” con 638. Y la de menor frecuencia fue la “muy buena” con 18. Lo siguiente que tenemos es otro diagrama de barras con la frecuencia de acidez medida como variable cualitativa la cual no dió una frecuencia alta de 768 para la “estándar” y una frecuencia baja para la “muy ácida” de 34. Se realizaron diagramas de cajas comparando variables cuantitativas como el pH según su acidez fija. La acidez fija es una agrupación de ácidos naturales formados en el proceso de fermentación, puesto que el ácido tartárico es el más representativo se mide en base a él, unidades gramos/litro. Los vinos ácidos presentaron una concentración de ácido tártico entre 8 y 12 aproximadamente. También nos mostró que los vinos con un pH estándar son los que tienen mayores números aberrantes, de esto se puede observar que para este tipo de vino el ácido fijo es muy variado.
El vino al ser una bebida fermentada, posee una graduación alcohólica entre los 3.5 y 15 grados. Tenemos el del ácido volátil comparado con los sulfatos. Estos muestran una gran cantidad de valores aberrantes de sulfato para los ácidos volátiles estándar. Cabe acotar que el rango intercuartilico de los 3 análisis (ácido volátil malo, estándar y picado) están concentrados entre una cantidad de sulfato de 1 y 0.5. Más abajo tenemos un diagrama de la calidad junto al dióxido de sulfuro. Aquí nuestros datos están muy dispersos, pues nuestros valores aberrantes son muy altos y esto para cada tipo de calidad sin importar el rango intercuartilico estén concentrados entre 0 y 30. Aquí se debería prestar atención a su producción ya que la calidad “baja” y “estándar” son las que mayor valor aberrantes presentan y esto nos indica que la producción de vino es poco o nada efectiva.
Por último, tenemos un diagrama comparando la densidad con la calidad. Una propiedad muy empleada en la ingeniería es la densidad, y en específico, al momento de obtener la densidad de vino, se aprecia que es muy cercana a la densidad del agua 1 g/ml. Aquí el único análisis que no contiene valores aberrantes son los de calidad “muy buena” teniendo un rango intercuartilico entre 0.994 y 0.998 de densidad. Sugiriera que para este tipo de densidad se comiencen a producir más ya que tiene mejor aceptación.