#Importar Archivo
file.choose()
## [1] "C:\\Users\\johan\\Downloads\\taller 2 Analitica de datos Laura .Rmd"
# Cargar los datos
data <- read.csv("C:\\Users\\johan\\Downloads\\winequality-white.csv", sep = ";")
# Verifica que los datos se hayan cargado correctamente
head(data)
## fixed.acidity volatile.acidity citric.acid residual.sugar chlorides
## 1 7.0 0.27 0.36 20.7 0.045
## 2 6.3 0.30 0.34 1.6 0.049
## 3 8.1 0.28 0.40 6.9 0.050
## 4 7.2 0.23 0.32 8.5 0.058
## 5 7.2 0.23 0.32 8.5 0.058
## 6 8.1 0.28 0.40 6.9 0.050
## free.sulfur.dioxide total.sulfur.dioxide density pH sulphates alcohol
## 1 45 170 1.0010 3.00 0.45 8.8
## 2 14 132 0.9940 3.30 0.49 9.5
## 3 30 97 0.9951 3.26 0.44 10.1
## 4 47 186 0.9956 3.19 0.40 9.9
## 5 47 186 0.9956 3.19 0.40 9.9
## 6 30 97 0.9951 3.26 0.44 10.1
## quality
## 1 6
## 2 6
## 3 6
## 4 6
## 5 6
## 6 6
str(data)
## 'data.frame': 4898 obs. of 12 variables:
## $ fixed.acidity : num 7 6.3 8.1 7.2 7.2 8.1 6.2 7 6.3 8.1 ...
## $ volatile.acidity : num 0.27 0.3 0.28 0.23 0.23 0.28 0.32 0.27 0.3 0.22 ...
## $ citric.acid : num 0.36 0.34 0.4 0.32 0.32 0.4 0.16 0.36 0.34 0.43 ...
## $ residual.sugar : num 20.7 1.6 6.9 8.5 8.5 6.9 7 20.7 1.6 1.5 ...
## $ chlorides : num 0.045 0.049 0.05 0.058 0.058 0.05 0.045 0.045 0.049 0.044 ...
## $ free.sulfur.dioxide : num 45 14 30 47 47 30 30 45 14 28 ...
## $ total.sulfur.dioxide: num 170 132 97 186 186 97 136 170 132 129 ...
## $ density : num 1.001 0.994 0.995 0.996 0.996 ...
## $ pH : num 3 3.3 3.26 3.19 3.19 3.26 3.18 3 3.3 3.22 ...
## $ sulphates : num 0.45 0.49 0.44 0.4 0.4 0.44 0.47 0.45 0.49 0.45 ...
## $ alcohol : num 8.8 9.5 10.1 9.9 9.9 10.1 9.6 8.8 9.5 11 ...
## $ quality : int 6 6 6 6 6 6 6 6 6 6 ...
library(corrplot)
## corrplot 0.92 loaded
par(oma = c(1, 1, 1, 1), mar = c(5, 4, 4, 2) + 0.1)
corrplot.mixed(cor(data),
lower = "circle",
upper = "circle",
tl.pos = "n")
corrplot(cor(data), add = TRUE, method = "circle",
type = "upper", tl.pos = "lt", # Etiquetas en la parte superior izquierda
tl.col = "black", number.cex = 0.7, addCoef.col = "black",
cl.pos = "n", # Esconde la barra de colores si no es necesaria
diag = TRUE)
model_data <- data[, c("residual.sugar", "fixed.acidity", "volatile.acidity", "citric.acid", "alcohol", "pH", "density")]
modelo <- lm(residual.sugar ~ fixed.acidity + volatile.acidity + citric.acid + alcohol + pH + density, data=model_data)
summary(modelo)
##
## Call:
## lm(formula = residual.sugar ~ fixed.acidity + volatile.acidity +
## citric.acid + alcohol + pH + density, data = model_data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -45.058 -0.838 0.050 0.931 11.828
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -2.335e+03 1.257e+01 -185.775 < 2e-16 ***
## fixed.acidity -1.913e+00 3.104e-02 -61.641 < 2e-16 ***
## volatile.acidity -1.857e+00 2.243e-01 -8.279 < 2e-16 ***
## citric.acid -1.101e+00 1.934e-01 -5.694 1.31e-08 ***
## alcohol 2.625e+00 2.963e-02 88.602 < 2e-16 ***
## pH -9.458e+00 1.637e-01 -57.791 < 2e-16 ***
## density 2.372e+03 1.254e+01 189.249 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.539 on 4891 degrees of freedom
## Multiple R-squared: 0.9081, Adjusted R-squared: 0.908
## F-statistic: 8053 on 6 and 4891 DF, p-value: < 2.2e-16
Modelo Matematico \[\text{Residual.sugar} = -2335 + (-1.913 \times \text{fixed.acidity}) + (-1.857 \times \text{volatile.acidity}) + (-1.101 \times \text{citric.acid}) + (2.625 \times \text{alcohol}) + (-9.458 \times \text{pH}) + (2372 \times \text{density})\] # Extraer los coeficientes
coef(modelo)
## (Intercept) fixed.acidity volatile.acidity citric.acid
## -2335.136855 -1.913208 -1.857408 -1.100940
## alcohol pH density
## 2.625058 -9.458414 2372.251588
-El análisis sugiere que las características químicas del vino están fuertemente conectadas con su nivel de azúcar residual, indicando que estos factores pueden ser ajustados para influir en la dulzura final del producto. El modelo es confiable para prever cambios en el azúcar residual, lo que facilita la toma de decisiones en el proceso de vinificación.
library(stats)
pca_data <- data[, c("residual.sugar", "fixed.acidity", "volatile.acidity", "citric.acid", "alcohol", "pH", "density")]
pca_result <- prcomp(pca_data, scale. = TRUE)
summary(pca_result)
## Importance of components:
## PC1 PC2 PC3 PC4 PC5 PC6 PC7
## Standard deviation 1.6024 1.1990 1.0429 0.8815 0.7768 0.70925 0.15401
## Proportion of Variance 0.3668 0.2054 0.1554 0.1110 0.0862 0.07186 0.00339
## Cumulative Proportion 0.3668 0.5722 0.7276 0.8386 0.9247 0.99661 1.00000
pca_data <- prcomp(data[, -which(names(data) == "quality")], scale. = TRUE)
# Biplot: Gráfico de los coeficientes de las componentes y las variables originales
biplot(pca_data, scale = 0, main = "Biplot: Componentes y Variables Originales")
# Gráfico de los coeficientes de las componentes y variables originales
plot(pca_data$rotation[, 1], pca_data$rotation[, 2],
main = "componentes y variables originales",
xlab = "Componente 1",
ylab = "Componente 2",
col = "blue", pch = 19,
xlim = c(-1, 1), ylim = c(-1, 1))
# Asignar las etiquetas a las variables
text(pca_data$rotation[, 1], pca_data$rotation[, 2],
labels = rownames(pca_data$rotation), cex = 1, pos = 3, col = "red")
# Gráfico de barras para la varianza explicada
# la proporcion de varianza explicada por cada componente
var_explicada <- pca_data$sdev^2 / sum(pca_data$sdev^2)
# la varianza acumulada
var_acumulada <- cumsum(var_explicada)
# Crear el gráfico de barras para la varianza explicada
barplot(var_explicada,
main = "Analisis de la varianza explicada (grafico)",
xlab = "numero de componente principal",
ylab = "Proporcion de varianza explicada",
col = "lightblue", ylim = c(0, 1))
# Añadir la línea de varianza acumulada al gráfico de barras y usar 'par(new = TRUE)' para sobreponer gráficos
par(new = TRUE)
# Configurar la escala del eje y para la línea
plot(var_acumulada, type = "b", pch = 19, col = "red", lwd = 2, axes = FALSE,
xlab = "", ylab = "", ylim = c(0, 1))
axis(4, ylim = c(0, 1))
mtext("Varianza acumulada", side = 4, line = 3)
# Restaurar la configuración gráfica original
par(new = FALSE)
# libreria
library(factoextra)
## Loading required package: ggplot2
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
# Ordenar los valores de varianza explicada de mayor a menor
fviz_screeplot(pca_data, addlabels = TRUE, main = "Varianza Explicada por Componentes Principales")
Coeficientes de las Componentes y Variables Originales: El gráfico de los coeficientes muestra cómo cada variable contribuye a las componentes principales. Esta información es útil para identificar cuáles características del vino tienen más peso en la variabilidad observada, permitiendo enfocarse en ellas para influir en aspectos clave del producto.
Varianza Explicativa por Cada Componente: La distribución de la varianza explicada sugiere que las primeras componentes capturan la mayor parte de la variabilidad en los datos. Esto simplifica la complejidad del análisis, permitiendo concentrarse en las primeras componentes para una representación efectiva de las diferencias en las características del vino.
Biplot: El biplot visualiza cómo las diferentes variables se relacionan entre sí y con las componentes principales. Esto facilita la identificación de grupos de variables que actúan de manera similar, lo cual puede ser aprovechado para optimizar la producción y mejorar la calidad del vino al enfocarse en estos grupos relacionados.