##
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo
## Highcharts (www.highcharts.com) is a Highsoft software product which is
## not free for commercial and Governmental use
## corrplot 0.92 loaded
##
## Adjuntando el paquete: 'mod'
## The following objects are masked from 'package:base':
##
## drop, use
data=read.csv(url("http://archive.ics.uci.edu/ml/machine-learning-databases/wine/wine.data"),header = FALSE)
nuevos_nombres <- c('Class', 'Alcohol', 'MalicAcid', 'Ash', 'AlcalinityOfAsh', 'Magnesium', 'Total phenols', 'Flavanoids', 'NonflavanoidPhenols', 'Proanthocyanins', 'ColorIntensity', 'Hue', 'OD280/OD315', 'Proline')
colnames(data) <- nuevos_nombres
Class: La categoría del vino, generalmente identificada por un número (1, 2 o 3) que indica a qué grupo pertenece según sus características químicas.
Alcohol: El porcentaje de alcohol en volumen presente en el vino.
Malic acid: La concentración de ácido málico en el vino, un ácido orgánico que contribuye a la acidez y el sabor.
Ash: El contenido total de cenizas en el vino, que incluye minerales y otros componentes no volátiles.
Alcalinity of ash: Una medida de la alcalinidad de las cenizas, que indica la concentración de compuestos alcalinos (principalmente sales) en el vino.
Magnesium: La cantidad de magnesio presente en el vino, un mineral importante que puede influir en el sabor y la salud.
Total phenols: La concentración total de fenoles en el vino, compuestos que afectan el sabor, color y propiedades antioxidantes.
Flavanoids: La cantidad de flavonoides en el vino, un tipo de fenol que contribuye a la astringencia y el color.
Nonflavanoid phenols: La concentración de fenoles no flavonoides, que también afectan el sabor y las propiedades antioxidantes del vino.
Proanthocyanins: La concentración de proantocianidinas en el vino, compuestos que influyen en la astringencia y el cuerpo del vino.
Color intensity: Una medida de la intensidad del color del vino, que puede estar relacionada con la concentración de compuestos colorantes.
Hue: El matiz del color del vino, que indica su tono específico en la escala de colores.
OD280/OD315: La proporción de absorbancia a 280 nm y 315 nm, que mide la concentración de taninos y otros compuestos fenólicos en el vino.
Proline: La cantidad de prolina, un aminoácido que está relacionado con la madurez de la uva y puede influir en el sabor del vino.
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",
diag = TRUE)
Se seleccionaron las variables ‘Proline’, ‘Alcohol’, ‘Total phenols’, ‘AlcalinityOfAsh’, ‘OD280/OD315’, y ‘Magnesium’ para el modelo de regresión multivariable debido a su relevancia en la caracterización química del vino y su impacto en la calidad. Estas variables influyen en aspectos clave como el sabor, la estabilidad, el envejecimiento y la estructura del vino. Al analizar estas variables, el modelo puede proporcionar una comprensión más completa y precisa de los factores que determinan la calidad del vino. Se excluyó la variable ‘Class’ porque representa una clasificación categórica que no contribuye directamente al análisis cuantitativo de los factores químicos, sino que clasifica los vinos en diferentes tipos, lo que no es el objetivo principal de este análisis multivariable.
data_subset <- data[, c('Proline', 'Alcohol', 'Total phenols', 'AlcalinityOfAsh', 'OD280/OD315', 'Magnesium')]
corrplot.mixed(cor(data_subset),
lower = "circle",
upper = "number",
tl.col = "black")
corrplot(cor(data_subset), add = TRUE, method = "number",
type = "upper", tl.pos = "lt", # Etiquetas en la parte superior izquierda
tl.col = "black", number.cex = 0.7, addCoef.col = "black",
cl.pos = "n",
diag = TRUE)
Se decidió tomar “Proline” como variable dependiente debido a su alta correlación con las otras variables. El resto de las variables se seleccionaron como independientes para proceder con el modelo de regresión multivariable.
La hipótesis nula (\(H_0\)) y la hipótesis alternativa (\(H_1\)) para la prueba F son:
\[ H_0: \beta_1 = \beta_2 = \beta_3 = \dots = \beta_k = 0 \]
\[ H_1: \text{Al menos uno de los coeficientes } \beta_i \text{ es diferente de cero} \]
Donde \(\beta_i\) representa los coeficientes de las variables independientes en el modelo.
Para cada variable independiente en el modelo, la hipótesis nula (\(H_0\)) y la hipótesis alternativa (\(H_1\)) son:
\[ H_0: \beta_i = 0 \]
\[ H_1: \beta_i \neq 0 \]
Estas hipótesis se prueban individualmente para cada \(\beta_i\) utilizando la prueba t-Student. Aquí, \(\beta_i\) representa el coeficiente de la variable independiente \(x_i\) en el modelo de regresión.
mod <- lm(Proline ~ Alcohol + `Total phenols` + Magnesium + `OD280/OD315` + `AlcalinityOfAsh` , data = data)
mod
##
## Call:
## lm(formula = Proline ~ Alcohol + `Total phenols` + Magnesium +
## `OD280/OD315` + AlcalinityOfAsh, data = data)
##
## Coefficients:
## (Intercept) Alcohol `Total phenols` Magnesium
## -1989.398 179.172 108.900 4.447
## `OD280/OD315` AlcalinityOfAsh
## 26.970 -18.309
# Mostrar el resumen del modelo
summary(mod)
##
## Call:
## lm(formula = Proline ~ Alcohol + `Total phenols` + Magnesium +
## `OD280/OD315` + AlcalinityOfAsh, data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -547.81 -146.45 -6.61 127.00 560.49
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1989.398 321.726 -6.184 4.42e-09 ***
## Alcohol 179.172 21.352 8.391 1.70e-14 ***
## `Total phenols` 108.900 37.209 2.927 0.003889 **
## Magnesium 4.447 1.136 3.913 0.000131 ***
## `OD280/OD315` 26.970 31.272 0.862 0.389664
## AlcalinityOfAsh -18.309 5.057 -3.620 0.000387 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 204.8 on 172 degrees of freedom
## Multiple R-squared: 0.589, Adjusted R-squared: 0.5771
## F-statistic: 49.31 on 5 and 172 DF, p-value: < 2.2e-16
Se decidió descartar la variable OD280/OD315 del modelo de regresión multivariable debido a que su coeficiente no resultó ser estadísticamente significativo, con un valor de p de 0.389664. Este valor indica que no hay evidencia suficiente para afirmar que la variable OD280/OD315 tiene un impacto significativo en la predicción de Proline, a diferencia de las otras variables del modelo que mostraron significancia estadística (valores de p muy bajos).
mod <- lm(Proline ~ Alcohol + `Total phenols` + Magnesium + `AlcalinityOfAsh` , data = data)
mod
##
## Call:
## lm(formula = Proline ~ Alcohol + `Total phenols` + Magnesium +
## AlcalinityOfAsh, data = data)
##
## Coefficients:
## (Intercept) Alcohol `Total phenols` Magnesium
## -1905.129 175.593 131.087 4.371
## AlcalinityOfAsh
## -18.858
# Mostrar el resumen del modelo
summary(mod)
##
## Call:
## lm(formula = Proline ~ Alcohol + `Total phenols` + Magnesium +
## AlcalinityOfAsh, data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -535.64 -146.87 -2.88 128.07 557.52
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1905.129 306.301 -6.220 3.63e-09 ***
## Alcohol 175.593 20.929 8.390 1.67e-14 ***
## `Total phenols` 131.087 26.862 4.880 2.40e-06 ***
## Magnesium 4.371 1.132 3.861 0.000159 ***
## AlcalinityOfAsh -18.858 5.014 -3.761 0.000231 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 204.6 on 173 degrees of freedom
## Multiple R-squared: 0.5873, Adjusted R-squared: 0.5777
## F-statistic: 61.54 on 4 and 173 DF, p-value: < 2.2e-16
\[\text{Proline} = -1905.129 + (175.593 \times \text{Alcohol}) + (131.087 \times \text{Total phenols}) + (4.371 \times \text{Magnesium}) + (−18.858 \times \text{AlcalinityOfAsh})\] # Conclusion
El modelo muestra que variables como el Alcohol, los Total phenols, y el Magnesium tienen un impacto positivo en los niveles de Proline en el vino, lo que sugiere que contribuyen a su estructura y estabilidad. Por otro lado, la AlcalinityOfAsh tiene un efecto negativo, indicando que un exceso de minerales podría reducir la producción de Proline, afectando el equilibrio del vino. Estas relaciones son coherentes con lo inevestigado y refuerzan la validez del modelo para explicar cómo estos factores químicos influyen en la calidad del vino.
# Cargar las librerías necesarias
#install.packages("ggplot2")
#install.packages("factoextra")
library(ggplot2)
library(factoextra)
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
# Escalar los datos (sin la columna "Class")
data_scaled <- scale(data[,-1])
# Realizar PCA
pca <- prcomp(data_scaled, center = TRUE, scale. = TRUE)
# Ver nombres de los elementos en el objeto pca
names(pca)
## [1] "sdev" "rotation" "center" "scale" "x"
# Ver variables (rotation) y observaciones (x)
#pca$rotation # Coeficientes de las variables originales en las componentes principales
#pca$x # Coordenadas de las observaciones en el espacio de las componentes principales
#pca$sdev^2 # Varianza explicada por cada componente principal
# Gráfico de las variables sobre las dos primeras componentes principales
plot(pca$rotation[,1], pca$rotation[,2],
main = "Variables sobre las Componentes",
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$rotation[,1], pca$rotation[,2],
labels = row.names(pca$rotation), cex = 1, pos = 3, col = "red")
# Calculamos la varianza explicada por cada componente
var_explicada <- pca$sdev^2 / sum(pca$sdev^2)
var_acumulada <- cumsum(var_explicada)
# Crear el scree plot con la varianza explicada
plot(var_explicada, type = "b", pch = 19, xlab = "# de componente principal",
ylab = "Proporción de varianza explicada",
main = "Análisis de la varianza explicada (gráfico)",
ylim = c(0, 1))
# Grafico scree plot la libreria FactoMineR
fviz_screeplot(pca, addlabels = TRUE, ylim = c(0, 50))
# Biplot combinando las variables y observaciones
biplot(pca, scale = 0, cex = 0.6, col = c("blue4", "brown3"))
“Proline” está relativamente cerca de variables como “Magnesium” y “Alcohol”, lo que sugiere una correlación positiva moderada con estas variables. Esto significa que vinos con altos niveles de prolina tienden también a tener niveles más altos de magnesio y alcohol.
Las dos primeras componentes principales (PC1 y PC2) explican conjuntamente el 55.4% de la varianza total en los datos, lo que significa que más de la mitad de la información original está contenida en estas dos componentes.
En el biplot, la flecha correspondiente a la variable “Proline” es relativamente larga y apunta hacia la parte inferior izquierda del gráfico. Esto indica que “Proline” tiene una influencia considerable en las componentes principales, especialmente en la dirección de la primera componente (PC1).En correlación con otras variables “Proline” parece estar algo correlacionado con variables como “Alcohol”, “Magnesium”, y “Ash”, dado que las flechas de estas variables apuntan en direcciones similares. Sin embargo, está negativamente correlacionado con variables como “Flavanoids” y “Total phenols”, cuyas flechas apuntan en la dirección opuesta.
Gil Martínez, C. (2019, noviembre). Análisis de componentes principales (PCA). RPubs. https://rpubs.com/Cristina_Gil/PCA
Taller guia#3
```