El análisis discriminante es una técnica estadística multivariada utilizada para clasificar observaciones en grupos previamente definidos, a partir de un conjunto de variables explicativas cuantitativas. Este método busca encontrar combinaciones lineales de las variables independientes que permitan maximizar la separación entre los grupos y, de esta manera, facilitar la correcta asignación de nuevas observaciones a una categoría específica.
En el ámbito financiero y bancario, el análisis discriminante es especialmente útil en problemas de evaluación de riesgo crediticio, ya que permite analizar las características de los solicitantes de crédito y determinar si es conveniente aprobar, rechazar o mantener en evaluación una solicitud de préstamo.
En este trabajo se analizará una base de datos correspondiente a solicitudes de crédito de un banco. El conjunto de datos contiene cuatro variables cuantitativas (x1, x2, x3 y x4) que representan diferentes características financieras o indicadores asociados a los solicitantes, así como una variable categórica llamada “Estatus crédito”, la cual clasifica cada solicitud en tres posibles grupos: • Aceptado • Rechazo • Indeciso
El objetivo del análisis es identificar si las variables cuantitativas permiten discriminar adecuadamente entre los tres estados del crédito y determinar qué tan bien se pueden clasificar las observaciones dentro de estos grupos mediante un análisis discriminante lineal (LDA).
Para realizar este análisis se utilizará el software R, comenzando con la carga de la base de datos almacenada en un archivo de Excel.
Primero se instala y se carga la librería necesaria para leer archivos de Excel.
Posteriormente se carga la base de datos desde la ubicación donde se encuentra almacenada en el equipo.
Finalmente, se puede verificar que los datos se hayan cargado correctamente observando las primeras filas y la estructura de la base de datos.
## tibble [45 × 5] (S3: tbl_df/tbl/data.frame)
## $ x1 : num [1:45] 100.7 91.3 108.1 92.4 105.2 ...
## $ x2 : num [1:45] 194 199 187 205 195 ...
## $ x3 : num [1:45] 51.8 55.2 49.6 51 47 ...
## $ x4 : num [1:45] 252 254 265 244 245 ...
## $ Estatus crédito: chr [1:45] "Rechazo" "Rechazo" "Rechazo" "Rechazo" ...
## [1] 45 5
## [1] "x1" "x2" "x3" "x4"
## [5] "Estatus crédito"
Dado que la variable Estatus crédito corresponde a la categoría o grupo al que pertenece cada observación, es necesario convertirla a variable de tipo factor, lo cual es requerido para aplicar el análisis discriminante por eso aquí convertimos la variable Estatus crédito en un factor con tres categorías: • Aceptado • Indeciso • Rechazo
Estas categorías serán los grupos que el modelo intentará discriminar.
Se convirtió el objeto a data frame porque algunas funciones estadísticas en R, especialmente las utilizadas en análisis multivariado, trabajan de forma más compatible con este tipo de estructura de datos. Aunque read_excel() importa los datos como un tibble, transformarlo a data frame garantiza que las funciones del análisis discriminante puedan manipular correctamente las variables y la base de datos.
## 'data.frame': 45 obs. of 5 variables:
## $ x1 : num 100.7 91.3 108.1 92.4 105.2 ...
## $ x2 : num 194 199 187 205 195 ...
## $ x3 : num 51.8 55.2 49.6 51 47 ...
## $ x4 : num 252 254 265 244 245 ...
## $ Estatus crédito: Factor w/ 3 levels "Aceptado","Indeciso",..: 3 3 3 3 3 3 3 3 3 3 ...
## x1 x2 x3 x4
## Min. : 11.33 Min. :175.2 Min. :45.33 Min. :205.1
## 1st Qu.: 94.99 1st Qu.:190.9 1st Qu.:48.63 1st Qu.:247.4
## Median :101.58 Median :199.5 Median :50.24 Median :251.6
## Mean : 99.68 Mean :200.5 Mean :50.32 Mean :251.9
## 3rd Qu.:107.94 3rd Qu.:208.5 3rd Qu.:51.63 3rd Qu.:258.9
## Max. :117.89 Max. :230.2 Max. :55.27 Max. :266.3
## Estatus crédito
## Aceptado:15
## Indeciso:15
## Rechazo :15
##
##
##
Interpretación: El resumen muestra cómo se comportan las variables de los solicitantes de crédito. En x1, el valor promedio es 99.68, lo que indica que la mayoría de las personas tienen valores cercanos a 100 en esta característica. Sin embargo, aparece un valor mínimo de 11.33, lo que sugiere que existe al menos un solicitante con un valor mucho más bajo que el resto.
En x2, el promedio es 200.5, y los valores van aproximadamente de 175 a 230, lo que indica que la mayoría de los solicitantes tienen valores relativamente altos y bastante cercanos entre sí en esta variable.
La variable x3 tiene un promedio de 50.32 y sus valores se encuentran entre 45 y 55, lo que muestra que casi todos los solicitantes tienen valores muy parecidos en esta característica.
En x4, el promedio es 251.9, con valores entre 205 y 266, lo que indica que esta variable también se concentra en valores altos para la mayoría de los solicitantes.
Por último, la variable Estatus crédito tiene 15 casos en cada grupo (Aceptado, Indeciso y Rechazo), lo que significa que la base de datos está equilibrada y hay la misma cantidad de personas en cada tipo de decisión de crédito. Esto ayuda a comparar mejor los grupos en el análisis discriminante.
## x1 x2 x3 x4
## 4485.604 9022.399 2264.538 11335.560
La función colSums() permite obtener la suma acumulada de cada variable cuantitativa considerando las 45 observaciones del conjunto de datos.
Los resultados obtenidos fueron: • x1: 4485.604 • x2: 9022.399 • x3: 2264.538 • x4: 11335.560
Dado que el conjunto contiene 45 observaciones, estas sumas corresponden aproximadamente a:
\[ \text{Suma} = \text{Media} \times n \]
Por ejemplo, para la variable x1:
\[ 99.68 \times 45 \approx 4485.6 \]
lo cual coincide con la suma total obtenida.
Desde un punto de vista analítico, la variable x4 presenta la mayor suma acumulada, lo que indica que sus valores son los más altos dentro del conjunto de datos. En contraste, x3 presenta la menor suma total, debido a que sus valores individuales se encuentran alrededor de 50, lo cual es menor comparado con las otras variables.
Es importante señalar que la suma total solo refleja la magnitud acumulada de las mediciones y depende directamente del tamaño de la muestra, por lo que no proporciona información sobre la dispersión o relación entre variables.
resumen_completo <- function() {
resumen_general <- summary(BD_Banco)
datos_numericos <- BD_Banco[, sapply(BD_Banco, is.numeric)]
media <- colMeans(datos_numericos, na.rm = TRUE)
desviacion <- apply(datos_numericos, 2, sd, na.rm = TRUE)
varianza <- apply(datos_numericos, 2, var, na.rm = TRUE)
estadisticos <- data.frame(
Variable = names(media),
Media = media,
Desviacion_Estandar = desviacion,
Varianza = varianza,
row.names = NULL
)
return(list(
Resumen = resumen_general,
Estadisticos = estadisticos
))
}
resultado <- resumen_completo()
resultado$Resumen## x1 x2 x3 x4
## Min. : 11.33 Min. :175.2 Min. :45.33 Min. :205.1
## 1st Qu.: 94.99 1st Qu.:190.9 1st Qu.:48.63 1st Qu.:247.4
## Median :101.58 Median :199.5 Median :50.24 Median :251.6
## Mean : 99.68 Mean :200.5 Mean :50.32 Mean :251.9
## 3rd Qu.:107.94 3rd Qu.:208.5 3rd Qu.:51.63 3rd Qu.:258.9
## Max. :117.89 Max. :230.2 Max. :55.27 Max. :266.3
## Estatus crédito
## Aceptado:15
## Indeciso:15
## Rechazo :15
##
##
##
Interpretación El resumen estadístico muestra la media, desviación estándar y varianza de las cuatro variables cuantitativas.
En términos de promedio: • x2 presenta valores alrededor de 200. • x4 tiene valores alrededor de 252. • x1 se encuentra cerca de 100. • x3 presenta valores alrededor de 50.
Esto indica que las variables están medidas en escalas diferentes.
Respecto a la variabilidad: • x1 presenta la mayor varianza (253.33), lo que indica que es la variable con mayor diferencia entre los solicitantes. • x2 también presenta variabilidad considerable (187.02). • x4 tiene una dispersión moderada (104.04). • x3 es la variable más estable (6.65), lo que significa que los valores son muy similares entre los individuos.
Desde un punto de vista estadístico, las variables x1 y x2 podrían tener mayor capacidad para diferenciar entre los estados de crédito, ya que presentan mayor variación entre observaciones.
Además, se observa que el conjunto de datos está balanceado, ya que contiene: • 15 observaciones Aceptado • 15 observaciones Indeciso • 15 observaciones Rechazo
Esto es conveniente para el análisis discriminante, ya que cada grupo tiene el mismo peso en el modelo.
## x1 x2 x3 x4
## x1 253.335362 37.437318 -9.409998 -17.188727
## x2 37.437318 187.022495 3.871146 -14.938585
## x3 -9.409998 3.871146 6.650743 9.799514
## x4 -17.188727 -14.938585 9.799514 104.038255
Interpretación La matriz de covarianza permite analizar cómo varían las variables de manera conjunta.
Los valores en la diagonal representan las varianzas, mientras que los valores fuera de la diagonal muestran la relación entre variables.
Las varianzas observadas son: • x1: 253.33 • x2: 187.02 • x3: 6.65 • x4: 104.04
Esto confirma que x1 es la variable con mayor dispersión, mientras que x3 es la más estable.
En cuanto a las covarianzas: • Entre x1 y x2 existe una relación positiva (37.43), lo que sugiere que cuando una aumenta, la otra también tiende a aumentar. • Entre x1 y x3 la covarianza es negativa (-9.41), lo que indica que cuando una aumenta, la otra tiende a disminuir ligeramente. • Entre x3 y x4 existe una relación positiva (9.80).
En general, las covarianzas observadas no son extremadamente grandes, lo que indica que las variables no están fuertemente correlacionadas entre sí.
BD_Banco$`Estatus crédito` <- as.factor(BD_Banco$`Estatus crédito`)
mi_colores <- c("pink", "purple", "lightblue")
colores <- mi_colores[as.numeric(BD_Banco$`Estatus crédito`)]
pairs(X, col = colores, pch = 19, main = "Diagramas de dispersión por estatus de crédito")
legend("topright",
legend = levels(BD_Banco$`Estatus crédito`),
col = mi_colores,
pch = 19)Interpretación El gráfico muestra la relación entre las variables x1, x2, x3 y x4, y cómo se distribuyen según el estatus del crédito (Aceptado, Indeciso y Rechazo).
En varios de los gráficos se observa que cuando una variable aumenta, la otra también tiende a aumentar, por ejemplo entre x2 y x1, lo que indica una relación positiva entre estas variables.
También se puede notar que los puntos de los tres grupos aparecen relativamente mezclados, aunque en algunos casos los clientes con crédito aceptado tienden a tener valores más altos en x2 y x4, mientras que los rechazados suelen concentrarse en valores un poco más bajos.
Además, se observa un punto muy alejado en x1, lo que podría ser un valor atípico, ya que está mucho más bajo que el resto de los datos.
En general, los diagramas sugieren que las variables sí muestran ciertas diferencias entre los grupos, aunque la separación entre Aceptado, Indeciso y Rechazo no es completamente clara en todos los casos. Esto indica que probablemente sea necesario usar un método estadístico como el análisis discriminante para separar mejor los grupos.
La homocedasticidad establece que los grupos comparados tienen la misma matriz de covarianza.
Las hipótesis del contraste son:
\[ H_0 : \text{Las matrices de covarianza de los grupos son iguales} \]
\[ H_1 : \text{Al menos una matriz de covarianza es diferente} \]
## Loading required package: MASS
## ---
## biotools version 4.3
##
## Box's M-test for Homogeneity of Covariance Matrices
##
## data: BD_Banco[, c("x1", "x2", "x3", "x4")]
## Chi-Sq (approx.) = 55.732, df = 20, p-value = 3.19e-05
Interpretación Resultados obtenidos:
\[ \chi^2 = 55.732 \]
\[ gl = 20 \]
\[ p\text{-valor} = 3.19 \times 10^{-5} \]
Decisión
Dado que:
\[ p < 0.05 \]
se rechaza la hipótesis nula.
Conclusión
Existe evidencia estadística para afirmar que las matrices de covarianza no son iguales entre los grupos de estatus de crédito. Por lo tanto, el supuesto de homocedasticidad no se cumple completamente.
Elipses de covarianza
## Loading required package: broom
##
## Attaching package: 'heplots'
## The following object is masked from 'package:biotools':
##
## boxM
covEllipses(
BD_Banco[, c("x1", "x2", "x3", "x4")],
BD_Banco$`Estatus crédito`,
variables = c(1, 2),
fill = TRUE,
alpha = 0.3,
col = c("#F472B6", "#A855F7", "#60A5FA"),
lwd = 2,
main = "Elipses de covarianza por Estatus de crédito (x1 vs x2)"
)## Warning in plot.window(...): "alpha" is not a graphical parameter
## Warning in plot.xy(xy, type, ...): "alpha" is not a graphical parameter
## Warning in axis(side = side, at = at, labels = labels, ...): "alpha" is not a
## graphical parameter
## Warning in axis(side = side, at = at, labels = labels, ...): "alpha" is not a
## graphical parameter
## Warning in box(...): "alpha" is not a graphical parameter
## Warning in title(...): "alpha" is not a graphical parameter
## Warning in text.default(x, y, label, pos = pos, xpd = xpd, col = col, ...):
## "alpha" is not a graphical parameter
## Warning in text.default(x, y, label, pos = pos, xpd = xpd, col = col, ...):
## "alpha" is not a graphical parameter
## Warning in text.default(x, y, label, pos = pos, xpd = xpd, col = col, ...):
## "alpha" is not a graphical parameter
## Warning in text.default(x, y, label, pos = pos, xpd = xpd, col = col, ...):
## "alpha" is not a graphical parameter
Interpretación
Las elipses representan la dispersión conjunta de \(x_1\) y \(x_2\) para cada grupo de estatus de crédito. Se observan diferencias claras en el tamaño y la orientación de las elipses entre los tres grupos:
Estas diferencias en forma y tamaño confirman el resultado de la prueba Box’s M (\(p = 3.19 \times 10^{-5} < 0.05\)), que rechazó el supuesto de igualdad de matrices de covarianza:
\[ H_0: \Sigma_{Aceptado} = \Sigma_{Indeciso} = \Sigma_{Rechazo} \]
En consecuencia, el modelo discriminante lineal debe interpretarse con cierta precaución, ya que este supuesto no se cumple completamente.
La prueba de Shapiro-Wilk evalúa si una variable sigue una distribución normal.
Las hipótesis son:
\[ H_0 : \text{La variable sigue una distribución normal} \]
\[ H_1 : \text{La variable no sigue una distribución normal} \]
## $x1
##
## Shapiro-Wilk normality test
##
## data: X[[i]]
## W = 0.64373, p-value = 3.338e-09
##
##
## $x2
##
## Shapiro-Wilk normality test
##
## data: X[[i]]
## W = 0.97975, p-value = 0.6096
##
##
## $x3
##
## Shapiro-Wilk normality test
##
## data: X[[i]]
## W = 0.97032, p-value = 0.2973
##
##
## $x4
##
## Shapiro-Wilk normality test
##
## data: X[[i]]
## W = 0.83636, p-value = 1.662e-05
Interpretación
Se toma una decisión usando el p-valor: • Si p < 0.05, se rechaza la normalidad. • Si p > 0.05, no se rechaza la normalidad.
Variable x1
\[ p = 3.33 \times 10^{-9} \]
Como el p-valor es mucho menor que 0.05, se rechaza la hipótesis de normalidad. Esto significa que los valores de x1 en los solicitantes del banco no siguen una forma de campana normal. Es probable que haya valores muy diferentes al resto (valores atípicos) o una distribución muy sesgada.
Variable x2
\[ p = 0.6096 \]
Como el p-valor es mayor que 0.05, no se rechaza la hipótesis de normalidad. Esto significa que los valores de x2 en la base de datos se comportan de forma similar a una distribución normal, es decir, la mayoría de los valores se concentran cerca del promedio y disminuyen gradualmente hacia los extremos.
Variable x3
\[ p = 0.2973 \]
El p-valor también es mayor que 0.05, por lo que no se rechaza la normalidad. Esto indica que los datos de x3 tienen una distribución relativamente simétrica, donde la mayoría de los clientes tienen valores cercanos al promedio.
Variable x4
\[ p = 1.66 \times 10^{-5} \]
El p-valor es menor que 0.05, por lo que se rechaza la normalidad. Esto significa que los valores de x4 no siguen una distribución normal en los solicitantes del banco, posiblemente porque algunos clientes tienen valores mucho más altos o más bajos que el resto.
Conclusión general
En la base de datos del banco: • x2 y x3 presentan un comportamiento aproximadamente normal. • x1 y x4 no siguen una distribución normal.
Esto indica que algunas variables cumplen mejor el supuesto de normalidad que otras, lo cual es importante tener en cuenta al aplicar métodos estadísticos como el análisis discriminante.
par(mfrow = c(2,2),
col.main = "#3CB371",
col.lab = "black",
cex.main = 1.2)
qqnorm(BD_Banco$x1,
main = "QQ Plot - x1",
pch = 19,
col = "#40E0D0")
qqline(BD_Banco$x1, col = "red", lwd = 2)
qqnorm(BD_Banco$x2,
main = "QQ Plot - x2",
pch = 19,
col = "#7CCD7C")
qqline(BD_Banco$x2, col = "red", lwd = 2)
qqnorm(BD_Banco$x3,
main = "QQ Plot - x3",
pch = 19,
col = "#FFBBFF")
qqline(BD_Banco$x3, col = "red", lwd = 2)
qqnorm(BD_Banco$x4,
main = "QQ Plot - x4",
pch = 19,
col = "#FA8072")
qqline(BD_Banco$x4, col = "red", lwd = 2)
Interpretación Los gráficos Q-Q se utilizan para evaluar si los datos
siguen aproximadamente una distribución normal.
En estos gráficos se compara la distribución de los datos con una línea de referencia. Cuando los puntos se encuentran cerca de la línea roja, significa que los datos se comportan de forma similar a una distribución normal.
En las variables x2, x3 y x4 los puntos siguen bastante bien la línea, lo que indica que su distribución es cercana a la normal.
En la variable x1 se observa un punto más alejado al inicio del gráfico, lo que puede indicar un valor atípico o una ligera desviación de la normalidad. Sin embargo, la mayoría de los puntos siguen la línea, por lo que la variable no presenta una desviación muy fuerte de la normalidad.
En conjunto, los gráficos sugieren que las variables cumplen razonablemente el supuesto de normalidad, lo cual es importante para aplicar métodos como el análisis discriminante.
## Call:
## lda(`Estatus crédito` ~ x1 + x2 + x3 + x4, data = BD_Banco)
##
## Prior probabilities of groups:
## Aceptado Indeciso Rechazo
## 0.3333333 0.3333333 0.3333333
##
## Group means:
## x1 x2 x3 x4
## Aceptado 102.6598 215.3239 50.58787 255.9632
## Indeciso 95.4666 189.0555 50.05727 250.9788
## Rechazo 100.9139 197.1139 50.32407 248.7620
##
## Coefficients of linear discriminants:
## LD1 LD2
## x1 0.002671525 0.034288437
## x2 0.155299542 0.007887162
## x3 -0.156868204 0.215161333
## x4 0.099656990 -0.083118861
##
## Proportion of trace:
## LD1 LD2
## 0.9888 0.0112
Interpretación El modelo de Análisis Discriminante Lineal se ajustó utilizando como variable de clasificación Estatus crédito y como variables explicativas x1, x2, x3 y x4.
Probabilidades a priori
Las probabilidades iniciales de cada grupo son: • Aceptado: 0.3333 • Indeciso: 0.3333 • Rechazo: 0.3333
Esto ocurre porque la base de datos contiene el mismo número de observaciones en cada grupo (15).
Las medias muestran diferencias entre los tres tipos de decisión de crédito: • Aceptado presenta el mayor promedio en x2, lo que sugiere que esta variable puede estar asociada con mayor probabilidad de aprobación del crédito. • Indeciso presenta los valores más bajos en x1 y x2, lo que podría indicar perfiles financieros intermedios. • Rechazo presenta valores intermedios entre los otros dos grupos.
Estas diferencias indican que algunas variables pueden ayudar a distinguir entre las decisiones de crédito.
w <- lda_model$scaling[,1]
means <- lda_model$means
priors <- lda_model$prior
constantes <- -0.5 * as.vector(means %*% w) + log(priors)
constantes## Aceptado Indeciso Rechazo
## -26.74204 -24.48595 -24.98757
La función discriminante se construye como una combinación lineal de las variables:
\[ LD_1 = 0.00267x_1 + 0.15530x_2 - 0.15687x_3 + 0.09966x_4 + c_k \]
donde \(c_k\) es la constante asociada a cada grupo.
Constantes de las Funciones Discriminantes
Las constantes obtenidas fueron:
\[ c_{\text{Aceptado}} = -26.74204 \]
\[ c_{\text{Indeciso}} = -24.48595 \]
\[ c_{\text{Rechazo}} = -24.98757 \]
Las funciones clasificatorias quedan definidas como:
Aceptado
\[ \delta_{Aceptado}(x) = 0.00267(x_1) + 0.15530(x_2) - 0.15687(x_3) + 0.09966(x_4) - 26.74204 \]
Indeciso
\[ \delta_{Indeciso}(x) = 0.00267(x_1) + 0.15530(x_2) - 0.15687(x_3) + 0.09966(x_4) - 24.48595 \]
Rechazo
\[ \delta_{Rechazo}(x) = 0.00267(x_1) + 0.15530(x_2) - 0.15687(x_3) + 0.09966(x_4) - 24.98757 \]
donde:
\[x_1 = \text{variable financiera 1}\] \[x_2 = \text{variable financiera 2}\] \[x_3 = \text{variable financiera 3}\] \[x_4 = \text{variable financiera 4}\]
La clasificación se realiza evaluando las tres funciones y asignando la observación al grupo cuya función produzca el valor más alto.
Interpretación
Las funciones clasificatorias permiten clasificar a los solicitantes del banco en los grupos Aceptado, Indeciso o Rechazo utilizando una combinación de las variables x1, x2, x3 y x4.
En estas funciones cada variable tiene un peso (coeficiente) que indica cuánto influye en la clasificación. En este caso se observa que: • x2 (0.15530) tiene un efecto positivo relativamente fuerte, lo que significa que valores más altos de x2 aumentan el valor de la función discriminante. • x4 (0.09966) también contribuye positivamente, aunque con menor peso. • x3 (-0.15687) tiene un efecto negativo, lo que indica que valores más altos de x3 tienden a disminuir el valor de la función discriminante. • x1 (0.00267) tiene un peso muy pequeño, por lo que su influencia en la clasificación es menor en comparación con las otras variables.
Las constantes (\(c_k\)) ajustan la función para cada grupo de estatus de crédito. Estas constantes permiten que el modelo calcule un valor diferente de la función discriminante para Aceptado, Indeciso y Rechazo.
Para clasificar a un nuevo solicitante, se sustituyen sus valores de x1, x2, x3 y x4 en las tres funciones discriminantes. Luego se comparan los resultados obtenidos y el solicitante se asigna al grupo cuya función tenga el valor más alto.
En términos prácticos, este modelo utiliza la información de las cuatro variables para distinguir el perfil de los clientes y ayudar a determinar si un crédito debería ser aceptado, considerado como indeciso o rechazado.
### Evaluación del modelo
pred <- predict(lda_model)
tapply(pred$x[,1], BD_Banco$`Estatus crédito`, mean)## Aceptado Indeciso Rechazo
## 2.6737137 -1.8384800 -0.8352337
Interpretación El grupo Aceptado tiene un valor promedio positivo y mucho mayor que los otros grupos. Los grupos Indeciso y Rechazo presentan valores negativos. Esto indica que la función discriminante logra separar claramente al grupo Aceptado de los otros dos grupos, ya que sus valores de LD1 son considerablemente más altos. Por lo tanto, la primera función discriminante es útil para distinguir entre los solicitantes cuyo crédito es aceptado y aquellos que se encuentran indecisos o rechazados.
##
## Aceptado Indeciso Rechazo
## Aceptado 14 0 1
## Indeciso 0 11 4
## Rechazo 0 2 13
Interpretación
Se observa que: De los 15 clientes realmente aceptados, 14 fueron correctamente clasificados, y solo 1 fue clasificado como rechazo. De los 15 clientes indecisos, 11 fueron correctamente clasificados, mientras que 4 fueron clasificados como rechazo. De los 15 clientes rechazados, 13 fueron correctamente clasificados, y 2 fueron clasificados como indecisos. En general, la mayoría de las observaciones se encuentran en la diagonal principal, lo que indica que el modelo logra clasificar correctamente la mayor parte de los casos. Las principales confusiones ocurren entre Indeciso y Rechazo, lo cual es razonable porque estos perfiles pueden ser más similares entre sí
## [1] 0.8444444
Interpretación Este valor representa la exactitud del modelo, es decir, la proporción de observaciones correctamente clasificadas. En este caso: 84.44% de los solicitantes fueron clasificados correctamente por el modelo. Esto significa que el modelo de análisis discriminante tiene un buen desempeño para identificar el estatus de crédito de los clientes. Un nivel de exactitud superior al 80% se considera generalmente adecuado en problemas de clasificación, por lo que el modelo puede ser útil como herramienta de apoyo en la toma de decisiones crediticias.
Validación cruzada La validación cruzada clasifica cada observación con un modelo que no la vio antes, lo cual evita el sobreajuste y proporciona una estimación más realista del desempeño del modelo. La exactitud con validación cruzada se calcula como:
\[ Exactitud_{CV} = \frac{\text{Número de clasificaciones correctas}}{\text{Total de observaciones}} \]
lda_banco_cv <- lda(`Estatus crédito` ~ x1 + x2 + x3 + x4,
data = BD_Banco,
CV = TRUE)
table(
Real = BD_Banco$`Estatus crédito`,
Predicho = lda_banco_cv$class
)## Predicho
## Real Aceptado Indeciso Rechazo
## Aceptado 13 1 1
## Indeciso 0 10 5
## Rechazo 0 6 9
## [1] 0.7111111
Interpretación
La matriz de confusión con validación cruzada muestra los siguientes resultados:
Las principales confusiones ocurren entre los grupos Indeciso y Rechazo, lo cual es razonable ya que estos perfiles financieros pueden ser más similares entre sí.
La exactitud con validación cruzada fue:
\[ Exactitud_{CV} = 0.7111 \approx 71.11\% \]
Comparando ambos resultados:
| Tipo | Exactitud |
|---|---|
| Modelo completo | \(84.44\%\) |
| Validación cruzada | \(71.11\%\) |
La diferencia entre ambas exactitudes indica que el modelo presenta cierto sobreajuste, es decir, clasifica mejor los datos con los que fue entrenado que datos nuevos. Por ello, la exactitud del \(71.11\%\) obtenida con validación cruzada es la estimación más realista del desempeño del modelo ante nuevos solicitantes de crédito.
nuevo_cliente <- data.frame(
x1 = 100,
x2 = 205,
x3 = 50,
x4 = 255
)
predict(lda_model, nuevo_cliente)## $class
## [1] Aceptado
## Levels: Aceptado Indeciso Rechazo
##
## $posterior
## Aceptado Indeciso Rechazo
## 1 0.6279664 0.0354417 0.3365919
##
## $x
## LD1 LD2
## 1 1.059534 -0.2805899
Interpretación
El modelo de análisis discriminante clasificó al nuevo solicitante en el grupo Aceptado, ya que este grupo presenta la mayor probabilidad posterior.
\[ P(Aceptado) = 0.628 \]
Esto significa que, considerando las características financieras del solicitante representadas por las variables
\[ x_1, x_2, x_3, x_4 \]
el modelo estima que existe aproximadamente un 62.8% de probabilidad de que el crédito sea aprobado.
También existe una probabilidad de clasificación en el grupo Rechazo:
\[ P(Rechazo) = 0.337 \]
Sin embargo, esta probabilidad es menor que la probabilidad de aceptación, por lo que el modelo asigna al solicitante al grupo Aceptado.
Los valores de las funciones discriminantes
\[ LD_1 \quad y \quad LD_2 \]
representan la posición del nuevo individuo dentro del espacio discriminante que separa a los grupos. En particular, el valor positivo de
\[ LD_1 \]
indica que el solicitante se encuentra más cercano al grupo de clientes cuyos créditos han sido aceptados.
En términos prácticos, este resultado muestra cómo el modelo puede utilizarse para predecir el estatus de crédito de nuevos solicitantes, apoyando el proceso de toma de decisiones en una institución financiera.
En este trabajo se aplicó el Análisis Discriminante Lineal (LDA) para estudiar si las variables financieras pueden ayudar a clasificar a los clientes según el estado de su crédito: Aceptado, Indeciso o Rechazo.
El modelo utiliza combinaciones de las variables:
\[ x_1, x_2, x_3, x_4 \]
para construir funciones llamadas funciones discriminantes, que ayudan a separar a los grupos. Estas funciones tienen la forma general:
\[ LD = a_1x_1 + a_2x_2 + a_3x_3 + a_4x_4 \]
donde los coeficientes indican qué tanto contribuye cada variable a la clasificación.
Los resultados mostraron que la primera función discriminante explica la mayor parte de la diferencia entre los grupos. Esto significa que con esta función se puede observar claramente la separación entre clientes con crédito aceptado, indeciso o rechazado.
Para evaluar el modelo se utilizó una matriz de confusión, la cual compara la clasificación real con la clasificación hecha por el modelo. La mayoría de los casos fueron clasificados correctamente.
La exactitud del modelo se calculó como:
\[ Exactitud = \frac{\text{Número de clasificaciones correctas}}{\text{Número total de observaciones}} \]
En este caso el resultado fue:
\[ Exactitud = 0.8444 \]
lo que significa que el modelo clasificó correctamente aproximadamente el 84.44% de los clientes.
También se utilizó el modelo para clasificar un cliente nuevo con los siguientes valores:
\[ x_1 = 100 \]
\[ x_2 = 205 \]
\[ x_3 = 50 \]
\[ x_4 = 255 \]
El modelo calculó las probabilidades de pertenecer a cada grupo:
\[ P(Aceptado) = 0.628 \]
\[ P(Indeciso) = 0.035 \]
\[ P(Rechazo) = 0.337 \]
Como la probabilidad más alta es la de Aceptado, el modelo clasifica a este cliente en ese grupo.
En conclusión, el análisis muestra que las variables financieras utilizadas ayudan a distinguir entre los diferentes estados del crédito. El modelo permite clasificar clientes y apoyar la toma de decisiones, por ejemplo para saber si un crédito puede ser aprobado, rechazado o revisado con más detalle.
El análisis discriminante es una técnica estadística multivariada utilizada para clasificar observaciones en grupos predefinidos a partir de un conjunto de variables cuantitativas. Este método busca encontrar combinaciones lineales de las variables explicativas que permitan maximizar la separación entre los grupos, facilitando así la correcta asignación de nuevas observaciones a una categoría específica. En el ámbito educativo, el análisis discriminante es útil para evaluar y clasificar el desempeño estudiantil. Permite identificar patrones en características como rendimiento académico, motivación o habilidades cognitivas, y determinar a qué nivel académico o grupo de desempeño pertenece cada estudiante.
En este trabajo se analiza una base de datos de estudiantes que contiene información sobre:
• Puntuación prueba: calificación obtenida por cada estudiante en una evaluación estandarizada.
• Motivación: índice cuantitativo que mide el nivel de motivación del estudiante.
• Nivel: variable categórica que clasifica a los estudiantes en tres grupos: Nivel 1, Nivel 2 y Nivel 3.
El objetivo del análisis es determinar si las variables Puntuación prueba y Motivación permiten discriminar adecuadamente entre los tres niveles de estudiantes, y evaluar qué tan bien se pueden clasificar los estudiantes en su grupo correspondiente mediante un análisis discriminante lineal (LDA).
library(readxl)
BD_Estudiantes <- read_excel("/Users/veronicapichardo/Desktop/AM/tareas/BD_Estudiantes.xlsx")
str(BD_Estudiantes)## tibble [180 × 3] (S3: tbl_df/tbl/data.frame)
## $ Nivel : num [1:180] 1 1 1 1 1 1 1 1 1 1 ...
## $ Puntuación prueba: num [1:180] 1120 1134 1120 1114 1117 ...
## $ Motivación : num [1:180] 55 56 55 50 54 56 57 58 55 56 ...
La variable Nivel representa los grupos de estudiantes, por lo que debe convertirse a factor, ya que el análisis discriminante requiere una variable categórica para definir las clases.
BD_Estudiantes$Nivel <- as.factor(BD_Estudiantes$Nivel)
BD_Estudiantes <- as.data.frame(BD_Estudiantes)
str(BD_Estudiantes)## 'data.frame': 180 obs. of 3 variables:
## $ Nivel : Factor w/ 3 levels "1","2","3": 1 1 1 1 1 1 1 1 1 1 ...
## $ Puntuación prueba: num 1120 1134 1120 1114 1117 ...
## $ Motivación : num 55 56 55 50 54 56 57 58 55 56 ...
## Nivel Puntuación prueba Motivación
## 1:60 Min. :1062 Min. :35.00
## 2:60 1st Qu.:1084 1st Qu.:42.00
## 3:60 Median :1100 Median :47.50
## Mean :1102 Mean :47.06
## 3rd Qu.:1120 3rd Qu.:52.00
## Max. :1150 Max. :58.00
Interpretación El resumen estadístico muestra la distribución general de las variables en la base de datos. Se observa que existen tres niveles de estudiantes, con 60 observaciones en cada nivel, lo que indica que los grupos están equilibrados.
Para la variable Puntuación prueba, los valores van desde 1062 hasta 1150, con una media aproximada de 1102 puntos, lo que indica que la mayoría de los estudiantes se concentran alrededor de este valor.
En la variable Motivación, los valores van de 35 a 58, con una media aproximada de 47, lo que sugiere que el nivel promedio de motivación de los estudiantes se encuentra cerca de este valor.
En general, las medidas de tendencia central indican que los datos están relativamente concentrados alrededor de sus medias.
La suma total de las variables permite observar el valor acumulado de cada característica en toda la base de datos.
## Puntuación prueba Motivación
## 198374 8470
Interpretación
La variable Puntuación prueba tiene una suma total de 198,374, mientras que la variable Motivación presenta una suma total de 8,470.
Estos valores reflejan simplemente el total acumulado de cada variable en las 180 observaciones, lo que confirma la magnitud de los datos analizados.
resumen_completo_est <- function() {
resumen_general <- summary(BD_Estudiantes)
datos_numericos <- BD_Estudiantes[, sapply(BD_Estudiantes, is.numeric)]
media <- colMeans(datos_numericos, na.rm = TRUE)
desviacion <- apply(datos_numericos, 2, sd, na.rm = TRUE)
varianza <- apply(datos_numericos, 2, var, na.rm = TRUE)
estadisticos <- data.frame(
Variable = names(media),
Media = media,
Desviacion_Estandar = desviacion,
Varianza = varianza,
row.names = NULL
)
return(list(
Resumen = resumen_general,
Estadisticos = estadisticos
))
}
resultado_est <- resumen_completo_est()
resultado_est$Resumen## Nivel Puntuación prueba Motivación
## 1:60 Min. :1062 Min. :35.00
## 2:60 1st Qu.:1084 1st Qu.:42.00
## 3:60 Median :1100 Median :47.50
## Mean :1102 Mean :47.06
## 3rd Qu.:1120 3rd Qu.:52.00
## Max. :1150 Max. :58.00
Interpretación Los resultados muestran que la media de la Puntuación prueba es 1102.08, con una desviación estándar de 21.69, lo que indica que los valores se encuentran relativamente cercanos al promedio.
Por otro lado, la variable Motivación tiene una media de 47.06 y una desviación estándar de 6.26, lo que sugiere una variabilidad moderada en los niveles de motivación de los estudiantes.
Las varianzas también reflejan esta dispersión, siendo 470.42 para la puntuación y 39.25 para la motivación.
En general, ambas variables muestran una variabilidad moderada dentro del conjunto de datos.
La matriz de covarianza permite analizar cómo varían las variables entre sí.
## Puntuación prueba Motivación
## Puntuación prueba 470.4185 115.12973
## Motivación 115.1297 39.24829
Interpretación
La varianza de Puntuación prueba es 470.42, mientras que la varianza de Motivación es 39.25, lo que indica que la puntuación presenta mayor dispersión que la motivación.
La covarianza entre ambas variables es 115.13, lo que indica una relación positiva entre la puntuación del examen y el nivel de motivación. Esto sugiere que, en general, a mayor motivación, mayor tiende a ser la puntuación obtenida en la prueba.
Los diagramas de dispersión permiten visualizar la relación entre las variables Puntuación prueba y Motivación, diferenciando los estudiantes según su nivel.
mi_colores_est <- c("pink","purple","lightblue")
colores_est <- mi_colores_est[as.numeric(BD_Estudiantes$Nivel)]
pairs(X_est,
col = colores_est,
pch = 19,
main = "Diagramas de dispersión por nivel")
legend("topright",
legend = levels(BD_Estudiantes$Nivel),
col = mi_colores_est,
pch = 19)
En el gráfico se observa que los puntos tienden a agruparse según el
nivel, lo que indica que estas variables pueden ayudar a distinguir
entre los diferentes niveles de estudiantes.
Además, se aprecia una tendencia positiva entre ambas variables, ya que los estudiantes con mayor motivación tienden a presentar mayores puntuaciones en la prueba.
La prueba de Box’s M se utiliza para evaluar si las matrices de covarianza de los grupos son iguales. Este es un supuesto importante para aplicar análisis discriminante lineal (LDA).
Hipótesis \[ H_0: \text{Los niveles de estudiantes tienen una variación similar en sus datos} \]
\[ H_1: \text{Los niveles de estudiantes tienen una variación diferente en sus datos} \]
Interpretación
library(MASS)
library(biotools)
boxM(
BD_Estudiantes[, c("Puntuación prueba",
"Motivación")],
BD_Estudiantes$Nivel
)##
## Box's M-test for Homogeneity of Covariance Matrices
##
## data: BD_Estudiantes[, c("Puntuación prueba", "Motivación")] by BD_Estudiantes$Nivel
## Chi-Sq (approx.) = 19.5577, df = 6, p-value = 0.003318
Interpretación
El valor p = 0.003318 es menor que 0.05, por lo que se rechaza la hipótesis nula.
Esto indica que las matrices de covarianza de los niveles no son iguales, lo que significa que existe cierta diferencia en la variabilidad de los datos entre los grupos.
Aunque este resultado sugiere que el supuesto de igualdad de covarianzas no se cumple completamente, el análisis discriminante lineal todavía puede aplicarse, aunque los resultados deben interpretarse con cierta precaución.
Elipses de covarianza
library(heplots)
covEllipses(
BD_Estudiantes[, c("Puntuación prueba", "Motivación")],
BD_Estudiantes$Nivel,
fill = TRUE,
alpha = 0.3,
col = c("#F472B6", "#A855F7", "#60A5FA"),
lwd = 2,
main = "Elipses de covarianza por Nivel"
)## Warning in plot.window(...): "alpha" is not a graphical parameter
## Warning in plot.xy(xy, type, ...): "alpha" is not a graphical parameter
## Warning in axis(side = side, at = at, labels = labels, ...): "alpha" is not a
## graphical parameter
## Warning in axis(side = side, at = at, labels = labels, ...): "alpha" is not a
## graphical parameter
## Warning in box(...): "alpha" is not a graphical parameter
## Warning in title(...): "alpha" is not a graphical parameter
## Warning in text.default(x, y, label, pos = pos, xpd = xpd, col = col, ...):
## "alpha" is not a graphical parameter
## Warning in text.default(x, y, label, pos = pos, xpd = xpd, col = col, ...):
## "alpha" is not a graphical parameter
## Warning in text.default(x, y, label, pos = pos, xpd = xpd, col = col, ...):
## "alpha" is not a graphical parameter
## Warning in text.default(x, y, label, pos = pos, xpd = xpd, col = col, ...):
## "alpha" is not a graphical parameter
Interpretación
Las elipses representan la dispersión conjunta de la \(\text{Puntuación prueba}\) y la \(\text{Motivación}\) para cada nivel de estudiantes. El gráfico muestra un patrón muy claro:
Estas diferencias confirman el resultado de Box’s M (\(p = 0.003318 < 0.05\)), que rechazó el supuesto de igualdad de matrices de covarianza:
\[ H_0: \Sigma_1 = \Sigma_2 = \Sigma_3 \]
Sin embargo, la separación visual entre los grupos es muy clara, lo que respalda la buena capacidad discriminante del modelo.
sta prueba se utiliza para verificar si los datos de una variable siguen una distribución normal.
Hipótesis
\[ H_0: \text{Los datos de la variable siguen una distribución normal} \]
\[ H_1: \text{Los datos de la variable no siguen una distribución normal} \]
## $`Puntuación prueba`
##
## Shapiro-Wilk normality test
##
## data: X[[i]]
## W = 0.95451, p-value = 1.503e-05
##
##
## $Motivación
##
## Shapiro-Wilk normality test
##
## data: X[[i]]
## W = 0.95756, p-value = 2.985e-05
Interpretación
Para la variable Puntuación prueba, el valor \(p = 1.503e-05\), que es menor que 0.05, por lo que se rechaza la hipótesis de normalidad.
Para la variable Motivación, el valor \(p = 2.985e-05\), también menor que 0.05, por lo que tampoco sigue una distribución normal.
En conclusión, ninguna de las dos variables presenta una distribución normal según esta prueba.
Los gráficos Q-Q permiten comparar la distribución de los datos con una distribución normal.
par(mfrow = c(1,2),
col.main = "#3CB371",
col.lab = "black",
cex.main = 1.2)
# Puntuación prueba
qqnorm(BD_Estudiantes$`Puntuación prueba`,
main = "QQ Plot - Puntuación prueba",
pch = 19,
col = "#40E0D0")
qqline(BD_Estudiantes$`Puntuación prueba`, col = "red", lwd = 2)
# Motivación
qqnorm(BD_Estudiantes$Motivación,
main = "QQ Plot - Motivación",
pch = 19,
col = "#7CCD7C")
qqline(BD_Estudiantes$Motivación, col = "red", lwd = 2)
Interpretación En los gráficos se observa que varios puntos se alejan de
la línea roja, lo que confirma los resultados obtenidos en la prueba de
Shapiro-Wilk, indicando que las variables no siguen perfectamente una
distribución normal.
Sin embargo, los datos no muestran desviaciones extremadamente grandes, por lo que todavía es posible realizar el análisis discriminante.
library(MASS)
lda_est <- lda(Nivel ~ `Puntuación prueba` + Motivación, data = BD_Estudiantes)
lda_est## Call:
## lda(Nivel ~ `Puntuación prueba` + Motivación, data = BD_Estudiantes)
##
## Prior probabilities of groups:
## 1 2 3
## 0.3333333 0.3333333 0.3333333
##
## Group means:
## `Puntuación prueba` Motivación
## 1 1127.367 53.60000
## 2 1100.617 47.41667
## 3 1078.250 40.15000
##
## Coefficients of linear discriminants:
## LD1 LD2
## `Puntuación prueba` -0.09587152 0.0813357
## Motivación -0.16549286 -0.2976061
##
## Proportion of trace:
## LD1 LD2
## 0.9968 0.0032
Interpretación El modelo de Análisis Discriminante Lineal (LDA) se utilizó para clasificar a los estudiantes según su nivel, utilizando como variables explicativas la Puntuación prueba y la Motivación.
Las probabilidades previas de los grupos son iguales (0.333 para cada nivel), lo que indica que los tres niveles tienen el mismo número de observaciones.
Las medias de grupo muestran un patrón claro: • Nivel 1 tiene la mayor puntuación promedio y mayor motivación. • Nivel 2 presenta valores intermedios. • Nivel 3 muestra los valores más bajos en ambas variables.
Esto sugiere que a mayor motivación y mayor puntuación en la prueba, mayor es el nivel del estudiante.
Además, la proporción de traza muestra que LD1 explica el 99.68% de la variación, lo que indica que la primera función discriminante es suficiente para separar los grupos.
w_est <- lda_est$scaling[,1]
medias_est <- lda_est$means
priors_est <- lda_est$prior
constantes_est <- -0.5 * as.vector(medias_est %*% w_est) + log(priors_est)
constantes_est## 1 2 3
## 57.37777 55.58384 53.91039
Interpretación
Función Discriminante General
La función discriminante se construye como una combinación lineal de las variables Puntuación prueba y Motivación:
\[ LD_1 = -0.09587 \cdot \text{Puntuación prueba} - 0.16549 \cdot \text{Motivación} + c_k \]
donde \(c_k\) es la constante asociada a cada grupo.
Constantes de las Funciones Discriminantes
Las constantes obtenidas para cada nivel son:
\[ c_{1} = 57.37777 \]
\[ c_{2} = 55.58384 \]
\[ c_{3} = 53.91039 \]
** Función discriminante para cada grupo es :**
\[ \delta_1(x)= -0.09587152(\text{Puntuación.prueba}) -0.16549286(\text{Motivación}) +57.37777 \]
\[ \delta_2(x)= -0.09587152(\text{Puntuación.prueba}) -0.16549286(\text{Motivación}) +55.58384 \]
\[ \delta_3(x)= -0.09587152(\text{Puntuación.prueba}) -0.16549286(\text{Motivación}) +53.91039 \]
Interpretación
Cada función discriminante permite clasificar a los estudiantes en Nivel 1, Nivel 2 o Nivel 3 usando la Puntuación prueba y la Motivación.
Los coeficientes de las variables indican la influencia de cada una en la clasificación:
Las constantes \(c_k\) ajustan la función para cada grupo, permitiendo que los estudiantes se asignen al grupo cuya función produzca el valor más alto.
En términos prácticos, el modelo indica que los estudiantes con mayor Puntuación prueba y Motivación tienden a estar en los niveles superiores, mientras que los niveles más bajos corresponden a quienes tienen puntajes y motivación más bajos.
## 1 2 3
## -3.50754295 0.08031763 3.42722532
Interpretación
##
## 1 2 3
## 1 59 1 0
## 2 5 53 2
## 3 0 3 57
Interpretación La matriz de confusión compara el nivel real de los estudiantes con el nivel que predice el modelo.
Se observa lo siguiente:
En general, la mayoría de los valores se encuentran en la diagonal principal, lo que indica que el modelo clasifica correctamente a la mayor parte de los estudiantes.
Las pequeñas confusiones ocurren principalmente entre Nivel 2 y los otros niveles, lo cual es razonable porque este nivel se encuentra en una posición intermedia entre los otros dos.
## [1] 0.9388889
Interpretación
La exactitud del modelo se calcula como:
\[ Exactitud = \frac{\text{Número de clasificaciones correctas}} {\text{Número total de observaciones}} \]
En este caso el resultado fue:
\[ Exactitud = 0.9389 \]
Esto significa que el modelo clasificó correctamente aproximadamente el 93.89% de los estudiantes.
Este porcentaje es alto, lo que indica que el modelo tiene muy buen desempeño para identificar el nivel de los estudiantes usando las variables Puntuación prueba y Motivación.
Validación cruzada
lda_est_cv <- lda(Nivel ~ `Puntuación prueba` + Motivación,
data = BD_Estudiantes,
CV = TRUE)
table(
Real = BD_Estudiantes$Nivel,
Predicho = lda_est_cv$class
)## Predicho
## Real 1 2 3
## 1 59 1 0
## 2 5 52 3
## 3 0 3 57
## [1] 0.9333333
Interpretación
La matriz de confusión con validación cruzada muestra los siguientes resultados:
Las principales confusiones ocurren entre los grupos Indeciso y Rechazo, lo cual es razonable ya que estos perfiles financieros pueden ser más similares entre sí.
La exactitud con validación cruzada fue:
\[ Exactitud_{CV} = 0.7111 \approx 71.11\% \]
Comparando ambos resultados:
| Tipo | Exactitud |
|---|---|
| Modelo completo | \(84.44\%\) |
| Validación cruzada | \(71.11\%\) |
La diferencia entre ambas exactitudes indica que el modelo presenta cierto sobreajuste, es decir, clasifica mejor los datos con los que fue entrenado que datos nuevos. Por ello, la exactitud del \(71.11\%\) obtenida con validación cruzada es la estimación más realista del desempeño del modelo ante nuevos solicitantes de crédito.
nuevo_estudiante <- data.frame(
"Puntuación prueba" = 1110,
Motivación = 50,
check.names = FALSE
)
predict(lda_est, nuevo_estudiante)## $class
## [1] 2
## Levels: 1 2 3
##
## $posterior
## 1 2 3
## 1 0.1501947 0.8497705 3.478538e-05
##
## $x
## LD1 LD2
## 1 -1.2468 -0.2319251
Interpretación Se analizó un estudiante con los siguientes valores:
\[ Puntuación\ prueba = 1110 \]
\[ Motivación = 50 \]
El modelo calculó las probabilidades de pertenecer a cada nivel:
\[ P(Nivel\ 1) = 0.150 \]
\[ P(Nivel\ 2) = 0.850 \]
\[ P(Nivel\ 3) = 0.00003 \]
La probabilidad más alta corresponde al Nivel 2, por lo que el modelo clasifica a este estudiante en ese nivel.
Esto significa que, según sus valores de puntuación en la prueba y motivación, el estudiante presenta características similares a los estudiantes que pertenecen al Nivel 2.
Los valores de las funciones discriminantes
\[ LD_1 \quad y \quad LD_2 \]
indican la posición del estudiante dentro del espacio que separa los diferentes niveles.
En términos simples, el modelo utiliza estas funciones para determinar qué tan parecido es el estudiante a cada grupo y así asignarlo al nivel más probable.
En este trabajo se aplicó el Análisis Discriminante Lineal (LDA) para estudiar si las variables
\[ Puntuación\ prueba \]
y
\[ Motivación \]
permiten clasificar a los estudiantes en tres grupos:
El modelo construye funciones discriminantes que tienen la forma:
\[ LD = a_1x_1 + a_2x_2 \]
donde:
\[ x_1 = Puntuación\ prueba \]
\[ x_2 = Motivación \]
Los resultados mostraron que la primera función discriminante explica casi toda la diferencia entre los grupos, lo que significa que es suficiente para separar los niveles de estudiantes.
La matriz de confusión mostró que la mayoría de los estudiantes fueron clasificados correctamente, y la exactitud del modelo fue:
\[ Exactitud = 0.9389 \]
lo que significa que aproximadamente 93.89% de los estudiantes fueron clasificados correctamente.
También se utilizó el modelo para clasificar un estudiante nuevo, y el resultado indicó que pertenece al Nivel 2, ya que este nivel tuvo la mayor probabilidad.
En conclusión, el análisis muestra que la puntuación en la
prueba y la motivación ayudan a distinguir entre los diferentes niveles
de estudiantes.
El modelo puede utilizarse para clasificar estudiantes y apoyar
la evaluación de su desempeño académico.
En este análisis se estudiará una base de datos que contiene información química de diferentes vinos. El objetivo es analizar las características de cada vino y observar si estas variables pueden ayudar a distinguir entre distintos tipos de vino.
Para ello primero se realizará un análisis descriptivo, el cual permite entender cómo se comportan las variables dentro de la base de datos. En esta etapa se revisarán valores como el mínimo, máximo, media y mediana de cada variable. Estos valores ayudan a identificar el comportamiento general de los datos y posibles diferencias entre las observaciones.
Posteriormente, este análisis servirá como base para aplicar análisis discriminante, cuyo objetivo será encontrar patrones en las variables químicas que permitan clasificar los vinos en diferentes grupos.
En la base de datos se tienen:
\[ n = 178 \]
observaciones de vinos y 13 variables químicas que describen sus características.
Además, existe una variable llamada Customer_Segment, que indica el grupo al que pertenece cada vino.
Descripción de las variables
La base de datos contiene diferentes variables que describen propiedades químicas del vino. Cada una representa una característica importante que puede influir en su sabor, calidad o composición.
Alcohol Representa el porcentaje de alcohol presente en el vino.
Acido_malico Es un tipo de ácido natural presente en las uvas que influye en la acidez del vino.
Ceniza Indica la cantidad de minerales que permanecen después de quemar los componentes orgánicos del vino.
Ceniza_Alcalinidad Mide el nivel de alcalinidad de la ceniza, lo cual está relacionado con la composición mineral del vino.
Magnesio Es un mineral presente en el vino que proviene principalmente del suelo donde se cultivaron las uvas.
Total_fenoles Representa la cantidad total de compuestos fenólicos presentes en el vino. Estos compuestos influyen en el sabor, aroma y capacidad antioxidante.
Flavanoides Son un tipo de compuestos fenólicos que influyen en el color y sabor del vino.
Noflavanoides_fenoles Son compuestos fenólicos que no pertenecen al grupo de los flavonoides.
Proantocianinas Son compuestos relacionados con el sabor y la textura del vino.
intensidad_color Mide qué tan intenso es el color del vino.
Matiz Describe el tono o matiz del color del vino.
OD280 Es una medida relacionada con la concentración de compuestos fenólicos.
Prolina Es un aminoácido presente en el vino que puede aparecer en cantidades altas dependiendo del tipo de vino.
Customer_Segment Esta variable indica el grupo al que pertenece cada vino. En esta base existen tres grupos:
\[ Segmento\ 1 = 59 \]
\[ Segmento\ 2 = 71 \]
\[ Segmento\ 3 = 48 \]
Cada segmento representa un tipo distinto de vino dentro del conjunto de datos.
library(readxl)
BD_Wine <- read_excel("/Users/veronicapichardo/Desktop/AM/tareas/BD_Wine.xlsx")
str(BD_Wine)## tibble [178 × 14] (S3: tbl_df/tbl/data.frame)
## $ Alcohol : num [1:178] 14.2 13.2 13.2 14.4 13.2 ...
## $ Acido_malico : num [1:178] 1.71 1.78 2.36 1.95 2.59 1.76 1.87 2.15 1.64 1.35 ...
## $ Ceniza : num [1:178] 2.43 2.14 2.67 2.5 2.87 2.45 2.45 2.61 2.17 2.27 ...
## $ Ceniza_Alcalinidad : num [1:178] 15.6 11.2 18.6 16.8 21 15.2 14.6 17.6 14 16 ...
## $ Magnesio : num [1:178] 127 100 101 113 118 112 96 121 97 98 ...
## $ Total_fenoles : num [1:178] 2.8 2.65 2.8 3.85 2.8 3.27 2.5 2.6 2.8 2.98 ...
## $ Flavanoides : num [1:178] 3.06 2.76 3.24 3.49 2.69 3.39 2.52 2.51 2.98 3.15 ...
## $ Noflavanoides_fenoles: num [1:178] 0.28 0.26 0.3 0.24 0.39 0.34 0.3 0.31 0.29 0.22 ...
## $ Proantocianinas : num [1:178] 2.29 1.28 2.81 2.18 1.82 1.97 1.98 1.25 1.98 1.85 ...
## $ intensidad_color : num [1:178] 5.64 4.38 5.68 7.8 4.32 6.75 5.25 5.05 5.2 7.22 ...
## $ Matiz : num [1:178] 1.04 1.05 1.03 0.86 1.04 1.05 1.02 1.06 1.08 1.01 ...
## $ OD280 : num [1:178] 3.92 3.4 3.17 3.45 2.93 2.85 3.58 3.58 2.85 3.55 ...
## $ Prolina : num [1:178] 1065 1050 1185 1480 735 ...
## $ Customer_Segment : num [1:178] 1 1 1 1 1 1 1 1 1 1 ...
BD_Wine$Customer_Segment <- as.factor(BD_Wine$Customer_Segment)
BD_Wine <- as.data.frame(BD_Wine)
str(BD_Wine)## 'data.frame': 178 obs. of 14 variables:
## $ Alcohol : num 14.2 13.2 13.2 14.4 13.2 ...
## $ Acido_malico : num 1.71 1.78 2.36 1.95 2.59 1.76 1.87 2.15 1.64 1.35 ...
## $ Ceniza : num 2.43 2.14 2.67 2.5 2.87 2.45 2.45 2.61 2.17 2.27 ...
## $ Ceniza_Alcalinidad : num 15.6 11.2 18.6 16.8 21 15.2 14.6 17.6 14 16 ...
## $ Magnesio : num 127 100 101 113 118 112 96 121 97 98 ...
## $ Total_fenoles : num 2.8 2.65 2.8 3.85 2.8 3.27 2.5 2.6 2.8 2.98 ...
## $ Flavanoides : num 3.06 2.76 3.24 3.49 2.69 3.39 2.52 2.51 2.98 3.15 ...
## $ Noflavanoides_fenoles: num 0.28 0.26 0.3 0.24 0.39 0.34 0.3 0.31 0.29 0.22 ...
## $ Proantocianinas : num 2.29 1.28 2.81 2.18 1.82 1.97 1.98 1.25 1.98 1.85 ...
## $ intensidad_color : num 5.64 4.38 5.68 7.8 4.32 6.75 5.25 5.05 5.2 7.22 ...
## $ Matiz : num 1.04 1.05 1.03 0.86 1.04 1.05 1.02 1.06 1.08 1.01 ...
## $ OD280 : num 3.92 3.4 3.17 3.45 2.93 2.85 3.58 3.58 2.85 3.55 ...
## $ Prolina : num 1065 1050 1185 1480 735 ...
## $ Customer_Segment : Factor w/ 3 levels "1","2","3": 1 1 1 1 1 1 1 1 1 1 ...
## Alcohol Acido_malico Ceniza Ceniza_Alcalinidad
## Min. :11.03 Min. :0.740 Min. :1.360 Min. :10.60
## 1st Qu.:12.36 1st Qu.:1.603 1st Qu.:2.210 1st Qu.:17.20
## Median :13.05 Median :1.865 Median :2.360 Median :19.50
## Mean :13.00 Mean :2.336 Mean :2.367 Mean :19.49
## 3rd Qu.:13.68 3rd Qu.:3.083 3rd Qu.:2.558 3rd Qu.:21.50
## Max. :14.83 Max. :5.800 Max. :3.230 Max. :30.00
## Magnesio Total_fenoles Flavanoides Noflavanoides_fenoles
## Min. : 70.00 Min. :0.980 Min. :0.340 Min. :0.1300
## 1st Qu.: 88.00 1st Qu.:1.742 1st Qu.:1.205 1st Qu.:0.2700
## Median : 98.00 Median :2.355 Median :2.135 Median :0.3400
## Mean : 99.74 Mean :2.295 Mean :2.029 Mean :0.3619
## 3rd Qu.:107.00 3rd Qu.:2.800 3rd Qu.:2.875 3rd Qu.:0.4375
## Max. :162.00 Max. :3.880 Max. :5.080 Max. :0.6600
## Proantocianinas intensidad_color Matiz OD280
## Min. :0.410 Min. : 1.280 Min. :0.4800 Min. :1.270
## 1st Qu.:1.250 1st Qu.: 3.220 1st Qu.:0.7825 1st Qu.:1.938
## Median :1.555 Median : 4.690 Median :0.9650 Median :2.780
## Mean :1.591 Mean : 5.058 Mean :0.9574 Mean :2.612
## 3rd Qu.:1.950 3rd Qu.: 6.200 3rd Qu.:1.1200 3rd Qu.:3.170
## Max. :3.580 Max. :13.000 Max. :1.7100 Max. :4.000
## Prolina Customer_Segment
## Min. : 278.0 1:59
## 1st Qu.: 500.5 2:71
## Median : 673.5 3:48
## Mean : 746.9
## 3rd Qu.: 985.0
## Max. :1680.0
Interpretación
El resumen estadístico permite entender cómo se comportan las variables químicas en los vinos de la base de datos. Los valores de la media muestran el nivel promedio de cada característica en los vinos analizados.
Alcohol
La media del alcohol es aproximadamente
\[ \bar{x} = 13.00 \]
Esto indica que, en promedio, los vinos de la base tienen un contenido de alcohol cercano a 13 grados. Como la media y la mediana son muy similares, se puede decir que los valores están bastante equilibrados y no hay diferencias extremas entre los vinos en esta característica.
Ácido málico
La media del ácido málico es aproximadamente
\[ \bar{x} = 2.34 \]
Esto indica que la mayoría de los vinos tienen niveles moderados de acidez. Sin embargo, el valor máximo es más alto que la media, lo que muestra que algunos vinos presentan una acidez mayor que el promedio.
Ceniza
La media de ceniza es
\[ \bar{x} = 2.37 \]
Esto significa que la cantidad de minerales presentes en los vinos es relativamente estable, ya que los valores no se alejan mucho del promedio.
Alcalinidad de la ceniza
La media es aproximadamente
\[ \bar{x} = 19.49 \]
Esto indica que la mayoría de los vinos tienen niveles similares de alcalinidad, lo que sugiere que esta característica química es bastante consistente en la base de datos.
Magnesio
El promedio de magnesio es
\[ \bar{x} = 99.74 \]
Esto indica que los vinos contienen alrededor de 100 unidades de magnesio en promedio, aunque algunos vinos presentan valores más altos, lo que muestra cierta variabilidad entre ellos.
Fenoles totales
La media de fenoles totales es
\[ \bar{x} = 2.30 \]
Los fenoles son compuestos importantes en el sabor y calidad del vino. Este valor indica que, en promedio, los vinos tienen una cantidad moderada de estos compuestos.
Flavanoides
La media de flavonoides es
\[ \bar{x} = 2.03 \]
Esto indica que los vinos contienen una cantidad considerable de estos compuestos, los cuales influyen en el sabor, aroma y color del vino.
Fenoles no flavonoides
La media es aproximadamente
\[ \bar{x} = 0.36 \]
Esto indica que estos compuestos aparecen en cantidades más pequeñas en comparación con otros compuestos fenólicos presentes en el vino.
Proantocianinas
La media de proantocianinas es
\[ \bar{x} = 1.59 \]
Esto indica que estos compuestos están presentes en niveles moderados y contribuyen a las propiedades antioxidantes y al sabor del vino.
Intensidad de color
La media de la intensidad de color es
\[ \bar{x} = 5.06 \]
Esto indica que, en promedio, los vinos presentan un color moderadamente intenso, aunque algunos vinos tienen colores mucho más fuertes que otros.
Matiz
La media del matiz es
\[ \bar{x} = 0.96 \]
Esto indica que el tono del color del vino es relativamente similar entre las observaciones, lo que sugiere que esta característica no varía demasiado entre los vinos.
OD280
La media de esta variable es
\[ \bar{x} = 2.61 \]
Este indicador está relacionado con la cantidad de compuestos fenólicos en el vino, por lo que este valor muestra que los vinos tienen una concentración moderada de estos compuestos.
Prolina
La media de prolina es aproximadamente
\[ \bar{x} = 746.9 \]
Este valor indica que la prolina aparece en cantidades mucho mayores que otras variables, lo que sugiere que esta característica puede ser importante para diferenciar entre los tipos de vino.
Segmentos de vino
La variable de clasificación muestra que los vinos se dividen en tres grupos:
\[ Segmento\ 1 = 59 \]
\[ Segmento\ 2 = 71 \]
\[ Segmento\ 3 = 48 \]
Esto indica que el segmento 2 es el grupo más grande en la base de datos, mientras que el segmento 3 tiene menos observaciones.
Interpretación general
En general, el resumen muestra que algunas variables presentan valores promedio similares entre los vinos, mientras que otras, como prolina, intensidad de color y ácido málico, muestran mayor variabilidad.
Estas diferencias en las características químicas permiten identificar patrones que pueden utilizarse posteriormente en el análisis discriminante para clasificar los vinos en sus respectivos segmentos.
De las 13 variables químicas disponibles en la base de datos, se seleccionaron Flavanoides y Prolina como variables explicativas para el análisis discriminante. Esta elección se justifica por tres criterios principales:
Variabilidad entre grupos
Al revisar el resumen estadístico, estas dos variables presentan las diferencias más marcadas entre observaciones. Los Flavanoides tienen un rango de \[[0.34,\ 5.08]\] con una desviación estándar de \[s = 1.00\] lo que indica una dispersión considerable entre los vinos. La Prolina presenta un rango de \[[278,\ 1680]\] con una media de \[\bar{x} = 746.9\] y una desviación estándar de \[s = 314.9\] lo que refleja que algunos vinos tienen concentraciones de prolina muy distintas a otros. En el análisis discriminante, variables con alta variabilidad tienen mayor capacidad para separar grupos, ya que las diferencias entre observaciones facilitan la construcción de funciones que distingan entre segmentos.
Importancia química
La elección de estas variables no es únicamente estadística, sino que también tiene respaldo desde el punto de vista químico:
Los Flavanoides son compuestos fenólicos que influyen directamente en el color, sabor y aroma del vino. Estas características son precisamente las que definen el perfil sensorial de cada tipo de vino y, por lo tanto, es razonable esperar que varíen entre segmentos.
La Prolina es un aminoácido que aparece en concentraciones distintas dependiendo de la variedad de uva y las condiciones de cultivo. Por esta razón, actúa como un marcador natural del tipo de vino y puede ayudar a distinguir entre segmentos con distintos orígenes o procesos de elaboración.
Elegir variables con significado químico concreto permite que los resultados del modelo sean interpretables más allá de los números.
Complementariedad entre variables
Ambas variables aportan información desde perspectivas distintas: los Flavanoides describen la composición fenólica del vino (relacionada con su perfil sensorial), mientras que la Prolina describe su composición aminoacídica (relacionada con su variedad y origen). La covarianza positiva entre ambas \[\text{Cov}(\text{Flavanoides},\ \text{Prolina}) = 155.45\] confirma que están relacionadas, pero ninguna hace redundante a la otra, ya que cada una captura un aspecto diferente de la química del vino. Esto se refleja en el modelo LDA: Flavanoides domina la primera función discriminante \[LD1\] mientras que Prolina contribuye de forma complementaria en la segunda \[LD2\]
La función colSums permite calcular la suma total de los
valores de una variable considerando todas las observaciones de la base
de datos. En este caso se analizaron las variables
Flavanoides y Prolina para los vinos
del conjunto de datos.
## Flavanoides Prolina
## 361.21 132947.00
Interpretación
El número total de vinos analizados es:
\[ n = 178 \]
Flavanoides
La suma total obtenida para los flavanoides es:
\[ \sum Flavanoides = 361.21 \]
Esto significa que, al sumar la cantidad de flavanoides de todos los vinos de la base de datos, se obtiene un total de 361.21 unidades.
Los flavanoides son compuestos químicos que influyen en el sabor, color y propiedades antioxidantes del vino. El hecho de que esta suma sea relativamente moderada indica que estos compuestos aparecen en cantidades pequeñas en cada vino, pero están presentes en todos los registros del conjunto de datos.
Si consideramos que el promedio de esta variable es aproximadamente
\[ \bar{x} \approx 2.03 \]
esto indica que la mayoría de los vinos tienen alrededor de 2 unidades de flavanoides en promedio.
Prolina
La suma total obtenida para la prolina es:
\[ \sum Prolina = 132947 \]
Esto significa que la cantidad total de prolina en todos los vinos de la base es 132947 unidades.
La prolina es un aminoácido presente en el vino y suele aparecer en cantidades mucho mayores que otras variables químicas. Por esta razón, su suma total es mucho más grande que la de los flavanoides.
El promedio de esta variable es aproximadamente
\[ \bar{x} \approx 746.9 \]
lo que indica que, en promedio, cada vino contiene una cantidad alta de prolina en comparación con otras características químicas del vino.
Interpretación general
La comparación entre ambas sumas muestra que las variables químicas del vino pueden tener escalas muy diferentes. Algunas variables, como los flavanoides, aparecen en cantidades pequeñas, mientras que otras, como la prolina, aparecen en cantidades mucho más grandes.
Estas diferencias son importantes en el análisis de datos, ya que ayudan a entender qué variables presentan mayor variación y pueden contribuir a distinguir entre los diferentes tipos de vino en el análisis posterior.
La desviación estándar muestra qué tanto se alejan los valores respecto al promedio. Una desviación estándar pequeña indica que los vinos tienen valores similares en esa variable, mientras que una desviación grande indica mayor diferencia entre ellos.
La varianza también mide la dispersión de los datos y está relacionada con la desviación estándar.
resumen_completo_wine <- function() {
resumen_general <- summary(BD_Wine)
datos_numericos <- BD_Wine[, sapply(BD_Wine, is.numeric)]
media <- colMeans(datos_numericos, na.rm = TRUE)
desviacion <- apply(datos_numericos, 2, sd, na.rm = TRUE)
varianza <- apply(datos_numericos, 2, var, na.rm = TRUE)
estadisticos <- data.frame(
Variable = names(media),
Media = media,
Desviacion_Estandar = desviacion,
Varianza = varianza,
row.names = NULL
)
return(list(
Resumen = resumen_general,
Estadisticos = estadisticos
))
}
resultado_wine <- resumen_completo_wine()
resultado_wine$Resumen## Alcohol Acido_malico Ceniza Ceniza_Alcalinidad
## Min. :11.03 Min. :0.740 Min. :1.360 Min. :10.60
## 1st Qu.:12.36 1st Qu.:1.603 1st Qu.:2.210 1st Qu.:17.20
## Median :13.05 Median :1.865 Median :2.360 Median :19.50
## Mean :13.00 Mean :2.336 Mean :2.367 Mean :19.49
## 3rd Qu.:13.68 3rd Qu.:3.083 3rd Qu.:2.558 3rd Qu.:21.50
## Max. :14.83 Max. :5.800 Max. :3.230 Max. :30.00
## Magnesio Total_fenoles Flavanoides Noflavanoides_fenoles
## Min. : 70.00 Min. :0.980 Min. :0.340 Min. :0.1300
## 1st Qu.: 88.00 1st Qu.:1.742 1st Qu.:1.205 1st Qu.:0.2700
## Median : 98.00 Median :2.355 Median :2.135 Median :0.3400
## Mean : 99.74 Mean :2.295 Mean :2.029 Mean :0.3619
## 3rd Qu.:107.00 3rd Qu.:2.800 3rd Qu.:2.875 3rd Qu.:0.4375
## Max. :162.00 Max. :3.880 Max. :5.080 Max. :0.6600
## Proantocianinas intensidad_color Matiz OD280
## Min. :0.410 Min. : 1.280 Min. :0.4800 Min. :1.270
## 1st Qu.:1.250 1st Qu.: 3.220 1st Qu.:0.7825 1st Qu.:1.938
## Median :1.555 Median : 4.690 Median :0.9650 Median :2.780
## Mean :1.591 Mean : 5.058 Mean :0.9574 Mean :2.612
## 3rd Qu.:1.950 3rd Qu.: 6.200 3rd Qu.:1.1200 3rd Qu.:3.170
## Max. :3.580 Max. :13.000 Max. :1.7100 Max. :4.000
## Prolina Customer_Segment
## Min. : 278.0 1:59
## 1st Qu.: 500.5 2:71
## Median : 673.5 3:48
## Mean : 746.9
## 3rd Qu.: 985.0
## Max. :1680.0
Interpretación
Alcohol
La media del alcohol es aproximadamente
\[ \bar{x} = 13.00 \]
y la desviación estándar es
\[ 0.81 \]
Esto indica que la mayoría de los vinos tienen un contenido de alcohol cercano a 13 y que las diferencias entre los vinos en esta característica no son muy grandes.
Ácido málico
El promedio es
\[ \bar{x} = 2.34 \]
con una desviación estándar de aproximadamente
\[ 1.12 \]
Interpretación
Alcohol
La media del alcohol es aproximadamente
\[ \bar{x} = 13.00 \]
y la desviación estándar es
\[ 0.81 \]
Esto indica que la mayoría de los vinos tienen un contenido de alcohol cercano a 13 y que las diferencias entre los vinos en esta característica no son muy grandes.
Ácido málico
El promedio es
\[ \bar{x} = 2.34 \]
con una desviación estándar de aproximadamente
\[ 1.12 \]
Esto indica que la acidez de los vinos puede variar bastante entre las observaciones, ya que algunos vinos tienen niveles de ácido málico más altos que otros.
Ceniza
La media es
\[ \bar{x} = 2.37 \]
y la desviación estándar es aproximadamente
\[ 0.27 \]
Esto indica que la cantidad de minerales presentes en los vinos es bastante similar entre las observaciones, ya que los valores no se alejan mucho del promedio.
Alcalinidad de la ceniza
El promedio es
\[ \bar{x} = 19.49 \]
con una desviación estándar de aproximadamente
\[ 3.34 \]
Esto indica que existe cierta variabilidad en esta característica, lo que significa que algunos vinos presentan niveles de alcalinidad mayores que otros.
Magnesio
El promedio es
\[ \bar{x} = 99.74 \]
y la desviación estándar es aproximadamente
\[ 14.28 \]
Esto indica que el contenido de magnesio varía entre los vinos, aunque la mayoría de los valores se encuentran cerca del promedio.
Fenoles totales
La media es
\[ \bar{x} = 2.30 \]
con una desviación estándar de aproximadamente
\[ 0.63 \]
Esto muestra que la cantidad de compuestos fenólicos presenta cierta variación entre los vinos.
Flavanoides
El promedio es
\[ \bar{x} = 2.03 \]
y la desviación estándar es aproximadamente
\[ 1.00 \]
Esto indica que los flavanoides presentan una variabilidad considerable, lo que significa que algunos vinos contienen cantidades mucho mayores que otros.
Fenoles no flavonoides
La media es aproximadamente
\[ \bar{x} = 0.36 \]
y la desviación estándar es
\[ 0.12 \]
Esto indica que esta variable tiene poca variabilidad, por lo que la mayoría de los vinos presentan valores relativamente similares.
Proantocianinas
El promedio es
\[ \bar{x} = 1.59 \]
con una desviación estándar de aproximadamente
\[ 0.57 \]
Esto indica que esta característica química presenta diferencias moderadas entre los vinos.
Intensidad de color
La media es aproximadamente
\[ \bar{x} = 5.06 \]
y la desviación estándar es
\[ 2.32 \]
Esto indica que algunos vinos presentan colores mucho más intensos que otros, lo que genera una variabilidad importante en esta variable.
Las medidas de dispersión muestran que algunas variables presentan poca variabilidad, como ceniza o fenoles no flavonoides, lo que significa que la mayoría de los vinos tienen valores similares en esas características.
En cambio, otras variables como ácido málico, flavanoides e intensidad de color presentan mayor variación entre los vinos. Esto indica que estas características cambian más entre los diferentes vinos y pueden ser más útiles para distinguir entre los distintos segmentos de vino en el análisis discriminante que se realizará posteriormente.
En este paso se calculó la matriz de covarianza entre dos variables de la base de datos de vinos: Flavanoides y Prolina. La covarianza permite analizar cómo cambian dos variables al mismo tiempo dentro del conjunto de datos.
## Flavanoides Prolina
## Flavanoides 0.9977187 155.4475
## Prolina 155.4474922 99166.7174
Interpretación
La matriz obtenida fue:
\[ Cov(X_{wine}) = \begin{pmatrix} 0.9977 & 155.4475 \ 155.4475 & 99166.7174 \end{pmatrix} \]
donde
\[ X_{wine} = (Flavanoides,\ Prolina) \]
Varianza de cada variable
Los valores que aparecen en la diagonal de la matriz representan la varianza de cada variable.
Para Flavanoides:
\[ Var(Flavanoides) = 0.9977 \]
Esto indica que los valores de flavanoides no cambian demasiado entre los vinos, ya que la variación alrededor del promedio es relativamente pequeña.
Para Prolina:
\[ Var(Prolina) = 99166.72 \]
Este valor es mucho mayor porque la variable Prolina se mide en una escala más grande y presenta una mayor dispersión entre los vinos. Esto significa que algunos vinos tienen cantidades de prolina muy distintas a otros.
Covarianza entre las variables
El valor fuera de la diagonal representa la covarianza entre Flavanoides y Prolina:
\[ Cov(Flavanoides, Prolina) = 155.45 \]
Este valor es positivo, lo que indica que existe una tendencia en la base de datos:
En otras palabras, los vinos que tienen más flavanoides suelen tener también mayores niveles de prolina.
Este resultado es importante porque muestra que estas dos características químicas no son completamente independientes. Existe cierta relación entre ellas dentro de los vinos analizados.
Esto puede ser útil en análisis posteriores, como el análisis discriminante, ya que variables que cambian juntas pueden ayudar a diferenciar entre los distintos tipos de vino presentes en la base de datos.
Los diagramas de dispersión permiten visualizar la relación entre las variables Puntuación prueba y Motivación, diferenciando los estudiantes según su nivel.
mi_colores_wine <- c("pink","purple","lightblue")
colores_wine <- mi_colores_wine[as.numeric(BD_Wine$Customer_Segment)]
pairs(X_wine,
col = colores_wine,
pch = 19,
main = "Diagramas de dispersión por segmento de vino")
legend("topright",
legend = levels(as.factor(BD_Wine$Customer_Segment)),
col = mi_colores_wine,
pch = 19)
Interpretación:
El gráfico muestra la relación entre dos variables químicas del vino:
\[ X_{wine} = (Flavanoides,\ Prolina) \]
Cada punto representa un vino de la base de datos, y el color indica el segmento al que pertenece:
Esto permite observar si los segmentos se diferencian según estas características químicas.
Relación entre Flavanoides y Prolina
En el diagrama se observa una tendencia positiva entre las variables:
Esto coincide con lo que vimos en la matriz de covarianza, donde la covarianza fue positiva:
\[ Cov(Flavanoides,Prolina) > 0 \]
Esto significa que ambas variables tienden a crecer juntas en los vinos.
Diferencias entre los segmentos
El gráfico también muestra que los segmentos de vino se agrupan en zonas distintas.
Segmento 1 (rosa) Estos vinos presentan valores más altos de prolina y niveles relativamente altos de flavanoides. Por eso aparecen en la parte superior del gráfico.
Segmento 2 (morado) Los vinos de este grupo se concentran en valores intermedios de flavanoides y prolina. Están ubicados en la zona central del gráfico.
Segmento 3 (azul claro) Este grupo presenta niveles más bajos de flavanoides y prolina, por lo que aparece en la parte inferior izquierda del gráfico.
Este gráfico muestra que las variables flavanoides y prolina ayudan a distinguir entre los tipos de vino.
Los segmentos se separan visualmente en diferentes zonas del gráfico, lo que indica que estas variables químicas pueden ser útiles para clasificar los vinos en sus respectivos segmentos.
En otras palabras, los vinos de diferentes segmentos tienen composiciones químicas distintas, y esto se refleja claramente en el diagrama de dispersión.
En el análisis discriminante es importante verificar el supuesto de homogeneidad de matrices de covarianza entre los grupos. Para evaluar este supuesto se utiliza la prueba de Box M, la cual permite determinar si las matrices de covarianza de las variables son iguales entre los segmentos de vino.
Hipótesis
La prueba contrasta las siguientes hipótesis:
\[ H_0: \text{Los segmentos de vino tienen una variación similar en las variables Flavanoides y Prolina} \]
\[ H_1: \text{Los segmentos de vino tienen una variación diferente en las variables Flavanoides y Prolina} \]
library(MASS)
library(biotools)
boxM(
BD_Wine[, c("Flavanoides",
"Prolina")],
BD_Wine$Customer_Segment
)##
## Box's M-test for Homogeneity of Covariance Matrices
##
## data: BD_Wine[, c("Flavanoides", "Prolina")] by BD_Wine$Customer_Segment
## Chi-Sq (approx.) = 78.1383, df = 6, p-value = 8.657e-15
Interpretación
La prueba Box M se utilizó para evaluar si los diferentes segmentos de vino presentan una variación similar en las variables Flavanoides y Prolina.
El resultado obtenido fue:
\[ \chi^2 = 78.138 \]
con
\[ gl = 6 \]
y un valor p de
\[ p = 8.657 \times 10^{-15} \]
Este valor p es mucho menor que \(0.05\), por lo que se rechaza la hipótesis nula.
Esto significa que la variación de las variables Flavanoides y Prolina no es igual entre los segmentos de vino. En otras palabras, los diferentes grupos de vino presentan diferencias en la forma en que estas variables se dispersan.
En términos del análisis, esto indica que las matrices de covarianza no son homogéneas entre los segmentos, por lo que el supuesto de homocedasticidad no se cumple completamente para estas variables.
A pesar de esto, las diferencias en la variabilidad entre los segmentos también sugieren que las variables Flavanoides y Prolina pueden ayudar a distinguir entre los distintos tipos de vino, lo cual es relevante para el análisis discriminante que se realizará posteriormente.
Elipses de covarianza
library(heplots)
covEllipses(
BD_Wine[, c("Flavanoides", "Prolina")],
BD_Wine$Customer_Segment,
fill = TRUE,
alpha = 0.3,
col = c("#F472B6", "#A855F7", "#60A5FA"),
lwd = 2,
main = "Elipses de covarianza por Segmento de vino"
)## Warning in plot.window(...): "alpha" is not a graphical parameter
## Warning in plot.xy(xy, type, ...): "alpha" is not a graphical parameter
## Warning in axis(side = side, at = at, labels = labels, ...): "alpha" is not a
## graphical parameter
## Warning in axis(side = side, at = at, labels = labels, ...): "alpha" is not a
## graphical parameter
## Warning in box(...): "alpha" is not a graphical parameter
## Warning in title(...): "alpha" is not a graphical parameter
## Warning in text.default(x, y, label, pos = pos, xpd = xpd, col = col, ...):
## "alpha" is not a graphical parameter
## Warning in text.default(x, y, label, pos = pos, xpd = xpd, col = col, ...):
## "alpha" is not a graphical parameter
## Warning in text.default(x, y, label, pos = pos, xpd = xpd, col = col, ...):
## "alpha" is not a graphical parameter
## Warning in text.default(x, y, label, pos = pos, xpd = xpd, col = col, ...):
## "alpha" is not a graphical parameter
Interpretación
Las elipses representan la dispersión conjunta de \(\text{Flavanoides}\) y \(\text{Prolina}\) para cada segmento de vino. El gráfico muestra lo siguiente:
Las diferencias en tamaño y orientación entre las tres elipses confirman el rechazo del supuesto de homocedasticidad obtenido en la prueba Box’s M:
\[ H_0: \Sigma_1 = \Sigma_2 = \Sigma_3 \]
con \(p = 8.657 \times 10^{-15} < 0.05\), lo que indica que las matrices de covarianza son distintas entre los segmentos de vino.
Hipótesis
\[ H_0: \text{Los datos de la variable siguen una distribución normal} \]
\[ H_1: \text{Los datos de la variable no siguen una distribución normal} \]
## $Alcohol
##
## Shapiro-Wilk normality test
##
## data: X[[i]]
## W = 0.9818, p-value = 0.02005
##
##
## $Acido_malico
##
## Shapiro-Wilk normality test
##
## data: X[[i]]
## W = 0.88878, p-value = 2.946e-10
##
##
## $Ceniza
##
## Shapiro-Wilk normality test
##
## data: X[[i]]
## W = 0.98395, p-value = 0.03868
##
##
## $Ceniza_Alcalinidad
##
## Shapiro-Wilk normality test
##
## data: X[[i]]
## W = 0.99023, p-value = 0.2639
##
##
## $Magnesio
##
## Shapiro-Wilk normality test
##
## data: X[[i]]
## W = 0.93833, p-value = 6.346e-07
##
##
## $Total_fenoles
##
## Shapiro-Wilk normality test
##
## data: X[[i]]
## W = 0.97668, p-value = 0.004395
##
##
## $Flavanoides
##
## Shapiro-Wilk normality test
##
## data: X[[i]]
## W = 0.95453, p-value = 1.679e-05
##
##
## $Noflavanoides_fenoles
##
## Shapiro-Wilk normality test
##
## data: X[[i]]
## W = 0.96252, p-value = 0.0001055
##
##
## $Proantocianinas
##
## Shapiro-Wilk normality test
##
## data: X[[i]]
## W = 0.98072, p-value = 0.01445
##
##
## $intensidad_color
##
## Shapiro-Wilk normality test
##
## data: X[[i]]
## W = 0.94032, p-value = 9.229e-07
##
##
## $Matiz
##
## Shapiro-Wilk normality test
##
## data: X[[i]]
## W = 0.98134, p-value = 0.01743
##
##
## $OD280
##
## Shapiro-Wilk normality test
##
## data: X[[i]]
## W = 0.94505, p-value = 2.316e-06
##
##
## $Prolina
##
## Shapiro-Wilk normality test
##
## data: X[[i]]
## W = 0.93119, p-value = 1.741e-07
Interpretación
Regla de decisión:
\[ p > 0.05 \]
se acepta (H_0) y la variable puede considerarse aproximadamente normal.
\[ p < 0.05 \]
se rechaza (H_0) y se concluye que la variable no sigue una distribución normal.
Resultados por variable
Alcohol
Resultado de la prueba:
\[ W = 0.9818, \quad p = 0.02005 \]
Como
\[ p < 0.05 \]
se rechaza (H_0). Esto indica que la distribución del contenido de alcohol no es completamente normal, lo que significa que algunos vinos tienen valores más altos o más bajos que el promedio.
Ácido málico
Resultado de la prueba:
\[ W = 0.88878, \quad p = 2.946 \times 10^{-10} \]
Como
\[ p < 0.05 \]
se rechaza (H_0). Esto indica que los niveles de ácido málico presentan mucha variación entre los vinos, lo que hace que la distribución no sea normal.
Ceniza
Resultado de la prueba:
\[ W = 0.98395, \quad p = 0.03868 \]
Como
\[ p < 0.05 \]
se rechaza (H_0). Esto indica que la variable ceniza no sigue perfectamente una distribución normal, aunque la desviación respecto a la normalidad no es muy grande.
Ceniza_Alcalinidad
Resultado de la prueba:
\[ W = 0.99023, \quad p = 0.2639 \]
Como
\[ p > 0.05 \]
se acepta (H_0). Esto indica que los valores de alcalinidad de ceniza sí se aproximan a una distribución normal, lo que significa que los datos están más equilibrados alrededor de su promedio.
Magnesio
Resultado de la prueba:
\[ W = 0.93833, \quad p = 6.346 \times 10^{-7} \]
Como
\[ p < 0.05 \]
se rechaza (H_0). Esto indica que el contenido de magnesio no se distribuye de forma normal, ya que algunos vinos presentan valores considerablemente diferentes.
Fenoles totales
Resultado de la prueba:
\[ W = 0.97668, \quad p = 0.004395 \]
Como
\[ p < 0.05 \]
se rechaza (H_0). Esto indica que la cantidad de fenoles totales varía entre los vinos, lo que produce una distribución no normal.
Flavanoides
Resultado de la prueba:
\[ W = 0.95453, \quad p = 1.679 \times 10^{-5} \]
Como
\[ p < 0.05 \]
se rechaza (H_0). Esto indica que la distribución de flavanoides presenta diferencias entre los vinos, lo que hace que no sea normal.
Fenoles no flavonoides
Resultado de la prueba:
\[ W = 0.96252, \quad p = 0.0001055 \]
Como
\[ p < 0.05 \]
se rechaza (H_0). Esto indica que estos compuestos también presentan variación en la base de datos, por lo que la distribución no es normal.
Proantocianinas
Resultado de la prueba:
\[ W = 0.98072, \quad p = 0.01445 \]
Como
\[ p < 0.05 \]
se rechaza (H_0). Esto indica que los valores de esta variable no siguen exactamente una distribución normal entre los vinos.
Intensidad de color
Resultado de la prueba:
\[ W = 0.94032, \quad p = 9.229 \times 10^{-7} \]
Como
\[ p < 0.05 \]
se rechaza (H_0). Esto significa que la intensidad de color varía considerablemente entre los vinos, por lo que la distribución no es normal.
Matiz
Resultado de la prueba:
\[ W = 0.98134, \quad p = 0.01743 \]
Como
\[ p < 0.05 \]
se rechaza (H_0). Esto indica que el matiz del color del vino no presenta una distribución normal en la base de datos.
OD280
Resultado de la prueba:
\[ W = 0.94505, \quad p = 2.316 \times 10^{-6} \]
Como
\[ p < 0.05 \]
se rechaza (H_0). Esto indica que esta variable relacionada con compuestos fenólicos no sigue una distribución normal.
Prolina
Resultado de la prueba:
\[ W = 0.93119, \quad p = 1.741 \times 10^{-7} \]
Como
\[ p < 0.05 \]
se rechaza (H_0). Esto indica que los valores de prolina presentan una gran variación entre los vinos, por lo que la distribución no es normal.
Los resultados muestran que solo una variable (Ceniza_Alcalinidad) se aproxima a una distribución normal, mientras que las demás variables presentan distribuciones que se alejan de la normalidad.
Esto ocurre porque los vinos pertenecen a diferentes segmentos, lo que genera diferencias en sus características químicas. Estas diferencias son precisamente las que permiten identificar y clasificar los vinos según su composición química en análisis posteriores.
par(mfrow = c(1,2),
col.main = "#3CB371",
col.lab = "black",
cex.main = 1.2)
# Flavanoides
qqnorm(BD_Wine$Flavanoides,
main = "QQ Plot - Flavanoides",
pch = 19,
col = "#40E0D0")
qqline(BD_Wine$Flavanoides, col = "red", lwd = 2)
# Prolina
qqnorm(BD_Wine$Prolina,
main = "QQ Plot - Prolina",
pch = 19,
col = "#7CCD7C")
qqline(BD_Wine$Prolina, col = "red", lwd = 2)
Interpretación
Flavanoides
En el gráfico QQ de Flavanoides se observa que los puntos siguen la línea roja en la parte central, pero en los extremos comienzan a desviarse de ella. Esto indica que la variable presenta cierta aproximación a la normalidad en los valores medios, pero en los valores más pequeños y más grandes existen algunas diferencias respecto a una distribución normal.
Esto sugiere que la distribución de Flavanoides no es perfectamente normal, aunque mantiene una forma relativamente cercana a la normal en gran parte de los datos.
Prolina
En el caso de Prolina, los puntos muestran una mayor curvatura respecto a la línea roja, especialmente en los extremos del gráfico. Esto indica que la distribución de esta variable se aleja más de la normalidad.
La desviación observada sugiere que algunos vinos presentan valores de prolina considerablemente más altos o más bajos que los esperados bajo una distribución normal, lo cual genera una mayor dispersión en los extremos.
Conclusión
En general, los gráficos QQ muestran que ninguna de las dos variables sigue perfectamente una distribución normal. La variable Flavanoides presenta una aproximación más cercana a la normalidad en comparación con Prolina, que muestra desviaciones más claras en los extremos.
Estas diferencias en la forma de las distribuciones indican que las variables químicas del vino pueden presentar asimetrías o valores extremos, lo cual es importante considerar en el análisis estadístico posterior.
## Call:
## lda(Customer_Segment ~ Flavanoides + Prolina, data = BD_Wine)
##
## Prior probabilities of groups:
## 1 2 3
## 0.3314607 0.3988764 0.2696629
##
## Group means:
## Flavanoides Prolina
## 1 2.9823729 1115.7119
## 2 2.0808451 519.5070
## 3 0.7814583 629.8958
##
## Coefficients of linear discriminants:
## LD1 LD2
## Flavanoides -1.38619468 -1.312989655
## Prolina -0.00382994 0.004363641
##
## Proportion of trace:
## LD1 LD2
## 0.8279 0.1721
Interpretación
Probabilidades previas de los grupos
Las probabilidades previas indican la proporción de vinos que pertenece a cada segmento dentro de la base de datos.
Los resultados fueron:
\[ Segmento\ 1 = 0.331 \]
\[ Segmento\ 2 = 0.399 \]
\[ Segmento\ 3 = 0.270 \]
Esto significa que: • Aproximadamente 33.1% de los vinos pertenecen al segmento 1. • Alrededor de 39.9% pertenecen al segmento 2, siendo el grupo más grande. • Cerca de 27% pertenecen al segmento 3, que es el grupo con menos observaciones.
Estas probabilidades reflejan la distribución de los vinos en los diferentes segmentos de la base de datos.
Promedio de las variables por segmento
El modelo también muestra el promedio de cada variable dentro de cada segmento.
Segmento 1 • Flavanoides ≈ 2.98 • Prolina ≈ 1115.71
Esto indica que los vinos de este segmento presentan niveles altos tanto de flavanoides como de prolina.
Segmento 2 • Flavanoides ≈ 2.08 • Prolina ≈ 519.51
Los vinos de este grupo presentan niveles moderados de flavanoides y niveles más bajos de prolina en comparación con el segmento 1.
Segmento 3 • Flavanoides ≈ 0.78 • Prolina ≈ 629.90
En este segmento los vinos presentan los niveles más bajos de flavanoides, mientras que la cantidad de prolina es mayor que en el segmento 2 pero menor que en el segmento 1.
Estas diferencias muestran que las características químicas cambian entre los segmentos, lo cual ayuda a distinguir entre los tipos de vino.
Coeficientes de las funciones discriminantes
El modelo genera funciones discriminantes, que son combinaciones lineales de las variables utilizadas para separar los grupos.
La primera función discriminante puede representarse como:
\[ LD_1 = -1.386(Flavanoides) - 0.00383(Prolina) \]
y la segunda como:
\[ LD_2 = -1.313(Flavanoides) + 0.00436(Prolina) \]
Estos coeficientes indican cómo contribuye cada variable a la separación entre los segmentos.
En este caso se observa que Flavanoides tiene un coeficiente mayor, lo que sugiere que esta variable tiene una influencia importante en la diferenciación entre los tipos de vino.
Proporción de variabilidad explicada
El modelo también muestra qué tanto contribuye cada función discriminante a la separación entre los grupos.
\[ LD_1 = 0.8279 \]
\[ LD_2 = 0.1721 \]
Esto significa que: • La primera función discriminante explica aproximadamente el 82.79% de la separación entre los segmentos. • La segunda función explica alrededor del 17.21% restante.
Por lo tanto, la mayor parte de la discriminación entre los tipos de vino se logra con la primera función discriminante.
Conclusión
En general, el análisis discriminante muestra que las variables Flavanoides y Prolina presentan diferencias entre los segmentos de vino, lo que permite utilizarlas para clasificar los vinos en sus respectivos grupos.
Además, la primera función discriminante explica la mayor parte de la variabilidad entre los segmentos, lo que indica que estas variables químicas ayudan de manera importante a distinguir entre los diferentes tipos de vino presentes en la base de datos.
w_wine <- lda_wine$scaling[,1]
medias_wine <- lda_wine$means
priors_wine <- lda_wine$prior
constantes_wine <- -0.5 * as.vector(medias_wine %*% w_wine) + log(priors_wine)
constantes_wine## 1 2 3
## 3.0993833 1.5179649 0.4372758
Interpretación
Función Discriminante General
La función discriminante se construye como una combinación lineal de las variables Flavanoides y Prolina:
\[ LD_1 = -1.38619 \cdot Flavanoides - 0.00383 \cdot Prolina + c_k \]
donde c_k es la constante asociada a cada segmento de vino.
Constantes de las Funciones Discriminantes
Las constantes obtenidas para cada segmento son:
\[ c_{1} = 3.09938 \]
\[ c_{2} = 1.51796 \]
\[ c_{3} = 0.43728 \]
Funciones clasificantes del Modelo
SSegmento 1
\[ \delta_{1}(x)= -1.386(\text{Flavanoides}) -0.00383(\text{Prolina}) \]
Segmento 2
\[ \delta_{2}(x)= -1.313(\text{Flavanoides}) +0.00436(\text{Prolina}) \]
Segmento 3
\[ \delta_{3}(x)= 0.073(\text{Flavanoides}) -0.00053(\text{Prolina}) \]
Cada función permite clasificar los vinos en el Segmento 1, Segmento 2 o Segmento 3 utilizando las variables Flavanoides y Prolina.
Los coeficientes de las variables indican la influencia que tienen en la clasificación: • Flavanoides: −1.38619 Esto indica que cambios en la cantidad de flavanoides influyen de forma importante en el valor de la función discriminante. • Prolina: −0.00383 Este coeficiente es más pequeño, lo que sugiere que su efecto en la función discriminante es menor en comparación con los flavanoides.
Las constantes c_k permiten ajustar la función para cada segmento de vino. Cuando se evalúa un vino, se calcula el valor de la función discriminante para cada segmento y el vino se clasifica en el grupo que tenga el valor más alto.
En términos prácticos, el modelo muestra que las diferencias en Flavanoides y Prolina ayudan a distinguir entre los distintos segmentos de vino, lo cual permite utilizar estas variables para clasificar los vinos dentro de su grupo correspondiente. 🍷📊
## 1 2 3
## -2.733740 0.799382 2.177803
Interpretación Promedio de la función discriminante por segmento
Se calculó el promedio del valor de la primera función discriminante (LD1) para cada segmento de vino. Los resultados obtenidos fueron:
\[ Segmento\ 1 = -2.7337 \]
\[ Segmento\ 2 = 0.7994 \]
\[ Segmento\ 3 = 2.1778 \]
Estos valores muestran que la función discriminante logra separar los segmentos de vino, ya que cada grupo presenta un promedio distinto en el eje de discriminación.
El segmento 1 presenta valores negativos más bajos, mientras que el segmento 3 presenta los valores positivos más altos. El segmento 2 se ubica en una posición intermedia. Esto indica que la primera función discriminante permite diferenciar los vinos según sus características químicas.
##
## 1 2 3
## 1 56 3 0
## 2 4 61 6
## 3 0 4 44
Interpretación
La matriz de confusión compara el segmento real de cada vino con el segmento asignado por el modelo.
Segmento real Predicho 1 Predicho 2 Predicho 3 1 56 3 0 2 4 61 6 3 0 4 44
La diagonal principal representa los vinos clasificados correctamente por el modelo. • Segmento 1: 56 vinos fueron clasificados correctamente y 3 se clasificaron como segmento 2. • Segmento 2: 61 vinos fueron clasificados correctamente, mientras que algunos fueron asignados a los segmentos 1 y 3. • Segmento 3: 44 vinos fueron clasificados correctamente y 4 fueron clasificados como segmento 2.
Esto indica que el modelo logra identificar correctamente la mayoría de los vinos en su segmento correspondiente, aunque existen algunos errores de clasificación entre los segmentos.
Validación cruzada
lda_wine_cv <- lda(Customer_Segment ~ Flavanoides + Prolina,
data = BD_Wine,
CV = TRUE)
table(
Real = BD_Wine$Customer_Segment,
Predicho = lda_wine_cv$class
)## Predicho
## Real 1 2 3
## 1 56 3 0
## 2 5 60 6
## 3 0 4 44
## [1] 0.8988764
Interpretación
La matriz de confusión con validación cruzada muestra los siguientes resultados:
Las confusiones más frecuentes ocurren entre el Segmento 2 y los otros dos segmentos, lo cual es coherente con la gráfica de elipses, donde la elipse del Segmento 2 presenta traslape con ambos grupos.
La exactitud con validación cruzada fue:
\[ Exactitud_{CV} = 0.8989 \approx 89.89\% \]
Comparando ambos resultados:
| Tipo | Exactitud |
|---|---|
| Modelo completo | \(90.45\%\) |
| Validación cruzada | \(89.89\%\) |
La diferencia entre ambas exactitudes es muy pequeña (\(0.56\%\)), lo que indica que el modelo no presenta sobreajuste y mantiene una capacidad predictiva consistente ante datos nuevos. Esto confirma que las variables \(\text{Flavanoides}\) y \(\text{Prolina}\) son suficientes para clasificar correctamente cerca del \(90\%\) de los vinos en su segmento correspondiente.
## [1] 0.9044944
Interpretación
La exactitud del modelo fue:
\[ Exactitud = 0.9045 \]
Esto significa que aproximadamente 90.45% de los vinos fueron clasificados correctamente por el modelo de análisis discriminante.
Este resultado indica que el modelo tiene una capacidad alta para distinguir entre los segmentos de vino utilizando las variables Flavanoides y Prolina.
## $class
## [1] 1
## Levels: 1 2 3
##
## $posterior
## 1 2 3
## 1 0.7904059 0.2062302 0.00336385
##
## $x
## LD1 LD2
## 1 -1.238914 0.05003878
Interpretación Se evaluó un nuevo vino con las siguientes características: • Flavanoides = 2.5 • Prolina = 900
El modelo lo clasificó en:
\[ Segmento = 1 \]
Las probabilidades de pertenecer a cada segmento fueron:
Segmento Probabilidad 1 0.7904 2 0.2062 3 0.0034
Esto indica que el vino tiene aproximadamente 79% de probabilidad de pertenecer al segmento 1, mientras que la probabilidad de pertenecer al segmento 2 es menor y prácticamente nula para el segmento 3.
El valor de la función discriminante obtenido fue:
\[ LD_1 = -1.2389 \]
lo cual lo ubica dentro de la zona donde se concentran los vinos del segmento 1.
Conclusiones generales
A partir del análisis realizado sobre la base de datos de vinos, se pudieron identificar diferentes características químicas que permiten comprender mejor cómo se comportan los distintos tipos de vino presentes en el conjunto de datos.
En primer lugar, el análisis descriptivo permitió observar el comportamiento general de las variables químicas. Se encontró que algunas variables presentan valores relativamente estables entre los vinos, mientras que otras muestran una mayor variabilidad. Variables como ácido málico, flavanoides, intensidad de color y prolina presentan diferencias más marcadas entre las observaciones, lo que sugiere que pueden ser útiles para distinguir entre los distintos tipos de vino.
El análisis de medidas de dispersión confirmó que ciertas variables presentan mayor variabilidad que otras. En particular, prolina e intensidad de color muestran una dispersión considerable, lo que indica que algunos vinos tienen valores mucho más altos que otros en estas características químicas.
La matriz de covarianza mostró que existe una relación positiva entre Flavanoides y Prolina, lo que significa que cuando una de estas variables aumenta, la otra también tiende a aumentar. Esta relación también se observó visualmente en el diagrama de dispersión, donde los vinos se agrupan en diferentes zonas según el segmento al que pertenecen.
En cuanto a los supuestos estadísticos, la prueba de Box M indicó que las matrices de covarianza no son completamente iguales entre los segmentos de vino. Esto significa que la variabilidad de las variables analizadas cambia entre los grupos. Además, las pruebas de normalidad de Shapiro-Wilk mostraron que la mayoría de las variables no siguen una distribución normal perfecta. Sin embargo, estas diferencias en la distribución también reflejan que los vinos pertenecen a distintos segmentos con características químicas diferentes.
Posteriormente, se aplicó el Análisis Discriminante Lineal (LDA) utilizando las variables Flavanoides y Prolina para clasificar los vinos según su segmento. Los resultados mostraron que existen diferencias claras en los promedios de estas variables entre los tres segmentos de vino. En particular, el segmento 1 presenta valores más altos de flavanoides y prolina, mientras que el segmento 3 presenta niveles más bajos de flavanoides.
El modelo discriminante generó funciones que permiten combinar estas variables para separar los grupos. La primera función discriminante explicó aproximadamente el 82.79% de la variabilidad entre los segmentos, lo que indica que esta función es la que principalmente permite diferenciar entre los tipos de vino.
La evaluación del modelo mostró resultados positivos. La matriz de confusión indicó que la mayoría de los vinos fueron clasificados correctamente en su segmento correspondiente. La exactitud del modelo fue aproximadamente:
\[ Exactitud = 0.9045 \]
Esto significa que alrededor del 90.45% de los vinos fueron clasificados correctamente, lo cual indica que el modelo tiene una buena capacidad para distinguir entre los diferentes segmentos de vino utilizando las variables seleccionadas.
Finalmente, al evaluar un vino nuevo con valores específicos de flavanoides y prolina, el modelo lo clasificó en el segmento 1 con una probabilidad cercana al 79%, lo que demuestra que el modelo puede utilizarse para clasificar nuevas observaciones basándose en sus características químicas.
En conclusión, el análisis realizado muestra que las variables Flavanoides y Prolina son útiles para diferenciar entre los distintos segmentos de vino presentes en la base de datos. El modelo de análisis discriminante logró identificar patrones en estas variables y clasificó correctamente la mayoría de los vinos, lo que demuestra que estas características químicas juegan un papel importante en la identificación de los distintos tipos de vino.
Referencias
Amat Rodrigo, J. (2016). Análisis Discriminante Lineal (Linear Discriminant Analysis - LDA). RPubs. https://rpubs.com/Joaquin_AR/233932
Pichardo Martínez, B. V. (2025). [Trabajo no publicado]