########PROYECTO-LOAYZA
#CALIDAD DE VINO BLANCO
library(gapminder)
library(ggplot2)
library(moments)
library(fdth)
##
## Attaching package: 'fdth'
## The following objects are masked from 'package:stats':
##
## sd, var
library(corrplot)
## corrplot 0.84 loaded
datos=read.csv(url("https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-white.csv"), sep=";")
View(datos)
#VARIABLES CUANTITATIVAS
#acido citrico(3), cloruros(5),pH(9), alcohol(11)
#VARIABLES CUALITATIVAS
#calidad (12), dioxido de azufre libre(6), azucar residual (4)
#CREAR VARIABLES CUALITATIVAS A PARTIR DE LAS CUANTITATIVAS
hist(datos$residual.sugar) # Hago un histograma para tener idea de los cortes o categorías
datos=data.frame(datos,cut(datos$residual.sugar, breaks = c(0,10,20,30),labels = c("De 0 a 10", "De 10 a 20", "De 20 a 30")))
hist(datos$free.sulfur.dioxide) # Hago un histograma para tener idea de los cortes o categorías
datos=data.frame(datos,cut(datos$free.sulfur.dioxide, breaks = c(0,50,100,150),labels = c("De 0 a 50", "De 50 a 100", "De 100 a 150")))
hist(datos$quality) # Hago un histograma para tener idea de los cortes o categorías
datos=data.frame(datos,cut(datos$quality, breaks = c(0,4,8,10),labels = c("De 0 a 4", "De 4 a 8", "De 8 a 10")))
names(datos)
## [1] "fixed.acidity"
## [2] "volatile.acidity"
## [3] "citric.acid"
## [4] "residual.sugar"
## [5] "chlorides"
## [6] "free.sulfur.dioxide"
## [7] "total.sulfur.dioxide"
## [8] "density"
## [9] "pH"
## [10] "sulphates"
## [11] "alcohol"
## [12] "quality"
## [13] "cut.datos.residual.sugar..breaks...c.0..10..20..30...labels...c..De.0.a.10..."
## [14] "cut.datos.free.sulfur.dioxide..breaks...c.0..50..100..150...labels...c..De.0.a.50..."
## [15] "cut.datos.quality..breaks...c.0..4..8..10...labels...c..De.0.a.4..."
#ESTADISTICA DESCRIPTIVA UNIVARIANTE
#VARIABLES CUANTITATIVAS
#histogramas
hist(datos$citric.acid)
hist(datos$chlorides)
hist(datos$alcohol)
hist(datos$pH)
#diagramas de cajas
boxplot(datos$citric.acid)
boxplot(datos$chlorides)
boxplot(datos$pH)
boxplot(datos$alcohol)
#media,mediana,cuartiles
summary(datos$citric.acid)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0000 0.2700 0.3200 0.3342 0.3900 1.6600
summary(datos$chlorides)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.00900 0.03600 0.04300 0.04577 0.05000 0.34600
summary(datos$pH)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 2.720 3.090 3.180 3.188 3.280 3.820
summary(datos$alcohol)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 8.00 9.50 10.40 10.51 11.40 14.20
#curtosis
kurtosis(datos$citric.acid)
## [1] 9.167374
kurtosis(datos$chlorides)
## [1] 40.52504
kurtosis(datos$pH)
## [1] 3.529009
kurtosis(datos$alcohol)
## [1] 2.301063
#desviacion estandar
sd(datos$citric.acid, na.rm = TRUE)
## [1] 0.1210198
sd(datos$chlorides, na.rm = TRUE)
## [1] 0.02184797
sd(datos$pH, na.rm = TRUE)
## [1] 0.1510006
sd(datos$alcohol, na.rm = TRUE)
## [1] 1.230621
#sesgos
skewness(datos$citric.acid)
## [1] 1.281528
skewness(datos$chlorides)
## [1] 5.021792
skewness(datos$pH)
## [1] 0.4576423
skewness(datos$alcohol)
## [1] 0.4871927
#tabla de datos agrupados
tabla = fdt(datos$citric.acid)
tabla2 = fdt(datos$chlorides)
tabla3 = fdt(datos$pH)
tabla4 = fdt(datos$alcohol)
tabla
## Class limits f rf rf(%) cf cf(%)
## [0,0.1198) 100 0.02 2.04 100 2.04
## [0.1198,0.2395) 566 0.12 11.56 666 13.60
## [0.2395,0.3593) 2566 0.52 52.39 3232 65.99
## [0.3593,0.479) 1063 0.22 21.70 4295 87.69
## [0.479,0.5988) 445 0.09 9.09 4740 96.77
## [0.5988,0.7185) 85 0.02 1.74 4825 98.51
## [0.7185,0.8383) 61 0.01 1.25 4886 99.76
## [0.8383,0.9581) 4 0.00 0.08 4890 99.84
## [0.9581,1.078) 6 0.00 0.12 4896 99.96
## [1.078,1.198) 0 0.00 0.00 4896 99.96
## [1.198,1.317) 1 0.00 0.02 4897 99.98
## [1.317,1.437) 0 0.00 0.00 4897 99.98
## [1.437,1.557) 0 0.00 0.00 4897 99.98
## [1.557,1.677) 1 0.00 0.02 4898 100.00
tabla2
## Class limits f rf rf(%) cf cf(%)
## [0.00891,0.03324) 899 0.18 18.35 899 18.35
## [0.03324,0.05756) 3501 0.71 71.48 4400 89.83
## [0.05756,0.08189) 336 0.07 6.86 4736 96.69
## [0.08189,0.1062) 55 0.01 1.12 4791 97.82
## [0.1062,0.1305) 29 0.01 0.59 4820 98.41
## [0.1305,0.1549) 22 0.00 0.45 4842 98.86
## [0.1549,0.1792) 29 0.01 0.59 4871 99.45
## [0.1792,0.2035) 12 0.00 0.24 4883 99.69
## [0.2035,0.2278) 7 0.00 0.14 4890 99.84
## [0.2278,0.2522) 3 0.00 0.06 4893 99.90
## [0.2522,0.2765) 2 0.00 0.04 4895 99.94
## [0.2765,0.3008) 1 0.00 0.02 4896 99.96
## [0.3008,0.3251) 1 0.00 0.02 4897 99.98
## [0.3251,0.3495) 1 0.00 0.02 4898 100.00
tabla3
## Class limits f rf rf(%) cf cf(%)
## [2.693,2.776) 3 0.00 0.06 3 0.06
## [2.776,2.859) 21 0.00 0.43 24 0.49
## [2.859,2.943) 183 0.04 3.74 207 4.23
## [2.943,3.026) 421 0.09 8.60 628 12.82
## [3.026,3.109) 821 0.17 16.76 1449 29.58
## [3.109,3.192) 1256 0.26 25.64 2705 55.23
## [3.192,3.276) 924 0.19 18.86 3629 74.09
## [3.276,3.359) 603 0.12 12.31 4232 86.40
## [3.359,3.442) 400 0.08 8.17 4632 94.57
## [3.442,3.525) 156 0.03 3.18 4788 97.75
## [3.525,3.608) 67 0.01 1.37 4855 99.12
## [3.608,3.692) 26 0.01 0.53 4881 99.65
## [3.692,3.775) 12 0.00 0.24 4893 99.90
## [3.775,3.858) 5 0.00 0.10 4898 100.00
tabla4
## Class limits f rf rf(%) cf cf(%)
## [7.92,8.3787) 2 0.00 0.04 2 0.04
## [8.3787,8.8374) 220 0.04 4.49 222 4.53
## [8.8374,9.2961) 623 0.13 12.72 845 17.25
## [9.2961,9.7549) 833 0.17 17.01 1678 34.26
## [9.7549,10.214) 657 0.13 13.41 2335 47.67
## [10.214,10.672) 519 0.11 10.60 2854 58.27
## [10.672,11.131) 569 0.12 11.62 3423 69.89
## [11.131,11.59) 435 0.09 8.88 3858 78.77
## [11.59,12.048) 329 0.07 6.72 4187 85.48
## [12.048,12.507) 356 0.07 7.27 4543 92.75
## [12.507,12.966) 217 0.04 4.43 4760 97.18
## [12.966,13.425) 97 0.02 1.98 4857 99.16
## [13.425,13.883) 31 0.01 0.63 4888 99.80
## [13.883,14.342) 10 0.00 0.20 4898 100.00
#variables cualitativas
#diagrama de barras
ggplot(datos, aes(x = cut.datos.residual.sugar..breaks...c.0..10..20..30...labels...c..De.0.a.10...)) + geom_bar(width = 0.5,fill=rgb(0.6,0.3,0.8,1) ) + labs(title = "Grafico de barras 1", x = "Azucar residual")
ggplot(datos, aes(x = cut.datos.free.sulfur.dioxide..breaks...c.0..50..100..150...labels...c..De.0.a.50...)) + geom_bar(width = 0.5,fill=rgb(0.2,0.5,0.7,1) ) + labs(title = "Grafico de barras 2", x = "Dioxido de azufre libre")
ggplot(datos, aes(x = cut.datos.quality..breaks...c.0..4..8..10...labels...c..De.0.a.4...)) + geom_bar(width = 0.5,fill=rgb(0.9,0.3,0.1,1) ) + labs(title = "Grafico de barras 3", x = "Calidad")
#diagrama de circulos
porcentajes = as.numeric(round(((prop.table(table(datos$cut.datos.residual.sugar..breaks...c.0..10..20..30...labels...c..De.0.a.10...)))*100),2))
porcentajes
## [1] 75.69 24.00 0.31
etiquetas = c("De 0 a 10 -","De 10 a 20 -","De 20 a 30 -")
etiquetas = paste(etiquetas, porcentajes)
etiquetas = paste(etiquetas, "%", sep = "")
etiquetas
## [1] "De 0 a 10 - 75.69%" "De 10 a 20 - 24%" "De 20 a 30 - 0.31%"
pie(porcentajes, etiquetas,
main = "Gráfico de torta 1" )
porcentajes = as.numeric(round(((prop.table(table(datos$cut.datos.free.sulfur.dioxide..breaks...c.0..50..100..150...labels...c..De.0.a.50...)))*100),2))
porcentajes
## [1] 82.30 17.38 0.33
etiquetas = c("De 0 a 50 -","De 50 a 100 -","De 100 a 150 -")
etiquetas = paste(etiquetas, porcentajes)
etiquetas = paste(etiquetas, "%", sep = "")
etiquetas
## [1] "De 0 a 50 - 82.3%" "De 50 a 100 - 17.38%" "De 100 a 150 - 0.33%"
pie(porcentajes, etiquetas,
main = "Gráfico de torta 2")
porcentajes = as.numeric(round(((prop.table(table(datos$cut.datos.quality..breaks...c.0..4..8..10...labels...c..De.0.a.4...)))*100),2))
porcentajes
## [1] 3.74 96.16 0.10
etiquetas = c("Malo","Bueno","Muy bueno")
etiquetas = paste(etiquetas, porcentajes)
etiquetas = paste(etiquetas, "%", sep = "")
etiquetas
## [1] "Malo 3.74%" "Bueno 96.16%" "Muy bueno 0.1%"
pie(porcentajes, etiquetas,
main = "Gráfico de torta 3")
#ESTADISTICA DESCRIPTIVA BIVARIANTE O MULTIVARIANTE
#variables cualitativas
boxplot(datos$citric.acid~datos$cut.datos.residual.sugar..breaks...c.0..10..20..30...labels...c..De.0.a.10..., xlab = "Azucar residual", ylab = "Ácido cítrico")
boxplot(datos$chlorides~datos$cut.datos.free.sulfur.dioxide..breaks...c.0..50..100..150...labels...c..De.0.a.50..., xlab = "Dioxido de azufre libre", ylab = "Cloruros")
boxplot(datos$pH~datos$cut.datos.quality..breaks...c.0..4..8..10...labels...c..De.0.a.4..., xlab = "Calidad", ylab = "pH")
boxplot(datos$alcohol~datos$cut.datos.residual.sugar..breaks...c.0..10..20..30...labels...c..De.0.a.10...,xlab = "Azucar residual",ylab = "Alcohol")
#variables cuantitativas
cor(datos[,c(3,5,9,11)]) #matriz de correlacion
## citric.acid chlorides pH alcohol
## citric.acid 1.00000000 0.11436445 -0.16374821 -0.07572873
## chlorides 0.11436445 1.00000000 -0.09043946 -0.36018871
## pH -0.16374821 -0.09043946 1.00000000 0.12143210
## alcohol -0.07572873 -0.36018871 0.12143210 1.00000000
cov(datos[,c(3,5,9,11)]) #matriz de covarianza
## citric.acid chlorides pH alcohol
## citric.acid 0.0146457930 0.0003023838 -0.0029923451 -0.011278239
## chlorides 0.0003023838 0.0004773337 -0.0002983649 -0.009684235
## pH -0.0029923451 -0.0002983649 0.0228011811 0.022565052
## alcohol -0.0112782389 -0.0096842350 0.0225650522 1.514426982
dat = cor(datos[,c(3,5,9,11)]) #matriz grafica de correlacion
corrplot.mixed(cor(dat),lower = "circle",upper = "number")
plot(datos[,c(3,5,9,11)]) #matriz de diagramas de dispercion
#CALIDAD DE VINO BLANCO
El vino blanco es elaborado a patir del mosto de las uvas blancas o tintas, este se caracteriza por su elaboracion “en virgen” que se define como la fermentacion del mosto en ausencua de partes solidas. Los vino blancos pueden ser secos, es decir que carecen de azucar, o su contenido de azucar residual es menor a 5 g/l, tambien existen vinos con niveles de azucares superiores, lo cual clasifica a los vinos blancos en diferentes categorias:
| ** Tipo de vino ** | ** Azucar(gramos) 2** |
|---|---|
| Seco | < 5 |
| Abocado | 5 a 15 |
| Semiseco | 15 a 30 |
| Semidulce | 30 a 50 |
| Dulce | > 50 |
Los azucares residuales procesan en su gran parte al mosto, quedandose sin transformar el alcohol durante la fermentacion. En otros caso, el origen de estas sustancias suelen ser por la adicion autorizada de azucares, bajo la forma de mosto cooncentrado o de productos con procendentes similares de otras vendimias. Tambien se pueden clasificar a los vinos blancos por su elaboracion o crianza, existen los siguientes tipos:
Vinos jovenes o del año | Vinos criados o envejecidos en barrica | Vinos fermentados en barrica | Vinos generosos de crianza |
Otras maneras de clasificar los vinos blancos son por su origen o variedad de uva utilizada en su elaboracion :
Vinos blancos neutros| Vinos blancos aromaticos |
La ácidez es una de las caracteristicas de los vinos, ya que su nivel depende del equilibrio gustativo, este nivel de ácidez depende de dos parámetros: ácidez fija y volátil. La ácidez fija depende de los ácidos orgánicos que se presentan en la uva, el tartárico, el málico y el cítrico, mientras que la ácidez volatil es originaria de la vinificación, del cual se forman cantidades limitadas de ácido acético, tambien en la fermentación maloláctica se transforma el ácido málico en ácido láctico, dando asi una mejor sensanción gustativa.El pH en los vinos varían de 3 a 4, en el vino blanco se presenta entre 3,0 a 3,3, mientras que el tinto va desde 3,3 a 3,6.
El zumo o mosto de uva presenta variables cantidades de azucares, la uva contiene entre 15% - 25% de glucosa y fructosa. La proporcion siendo gluocosa/fructosa aproximadamente de 0,95 tanto para uvas frescas como las maduras. La fermentacion alcoholica es un proceso anaeróbico realizado por las levaduras, se produce de manera espontánea. Durante el proceso de fermentacion de azucares, estas se transforman por la acción de las levaduras en alcohol etílico y anhídrido carbónico, además se producen otras sustancias minoritarias que dan trascendencia a las posteriores caracteristicas del vino, aromas y gutos de origen fermentativo. La proporcion de alcohol de una bebidan, para el volumen dado, se denomida grado alchólico. La graduación de los vinos varía entre 7 y un 16% de alcohol por volumen, aunque la mayoría de vinos van desde 10 a 14 grados, mientras que los vinos dulces tienen entre un 15 a 22% de alcohol por volumen.Las bebidas pueden ser fermentadas y destiladas.
#DIAGRAMA DE CAJAS ENTRE GRADOS DE ALCOHOL Y AZUCAR RESIDUAL
En los diagramas de caja podemos observar que los datos que nos presenta el azucar residual trata de vinos secos, semisecos y abocados que presentan desde 0 hasta 30 g/L de azucar residual, mientras que los datos de alcohol nos muestra que para los vinos secos y abocados su grado de alcohol varia desde los 10 hasta los 12 grados,y los vinos abocados y semisecos varian desde los 8 hasta los 11 grados de alcohol.Lo cual nos indica que se presenta una gran variedad de vinos blancos.
##DIAGRAMAS DE CAJAS ENTRE pH Y CALIDAD
El pH del vino blanco esta entre 3.0 a 3.3 por lo que se puede observar en el diagrama de cajas en el tipo de calidad de 0 a 4 que seria una calidad mala, podemos observar la mediana, los quartiles, bigotes, datos atipicos que van desde 3.5 del pH, mientras que en la calidad de 4 a 8 los datos atipidos van 0 a 2.8 antes de extremo inferios y de 3.5 hasta 3.8 despues del extremo superior, en cambio los de calidad muy buena de 8 a 10 no presentan datos atipicos.