Tema 3: LDA

library(MASS) 
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.3.2
library("openxlsx")
#file.choose()
#Datos = read.xlsx("/Users/danielnajera/Desktop/Evidencia1/BaseLDA.xlsx")
Datos = read.xlsx("C:\\Users\\danbr\\OneDrive\\Desktop\\Mineria de Datos\\Actividad Constante - El Diario\\BaseLDA.xlsx")
head(Datos)
##   Alcohol Malic_Acid  Ash Ash_Alcanity Magnesium Total_Phenols Flavanoids
## 1   14.23       1.71 2.43         15.6       127          2.80       3.06
## 2   13.20       1.78 2.14         11.2       100          2.65       2.76
## 3   13.16       2.36 2.67         18.6       101          2.80       3.24
## 4   14.37       1.95 2.50         16.8       113          3.85       3.49
## 5   13.24       2.59 2.87         21.0       118          2.80       2.69
## 6   14.20       1.76 2.45         15.2       112          3.27       3.39
##   Nonflavanoid_Phenols Proanthocyanins Color_Intensity  Hue OD280 Proline
## 1                 0.28            2.29            5.64 1.04  3.92    1065
## 2                 0.26            1.28            4.38 1.05  3.40    1050
## 3                 0.30            2.81            5.68 1.03  3.17    1185
## 4                 0.24            2.18            7.80 0.86  3.45    1480
## 5                 0.39            1.82            4.32 1.04  2.93     735
## 6                 0.34            1.97            6.75 1.05  2.85    1450
##   Customer_Segment
## 1                1
## 2                1
## 3                0
## 4                1
## 5                1
## 6                0

Modelo

Datos$Customer_Segment<-factor(Datos$Customer_Segment, levels = c(0,1), labels = c("Estandar","Premium"))
modelo_lda <- lda(Customer_Segment ~ Alcohol + Malic_Acid + Ash + Ash_Alcanity + Total_Phenols + Hue, data = Datos, prior=c(0.5,0.5))
modelo_lda
## Call:
## lda(Customer_Segment ~ Alcohol + Malic_Acid + Ash + Ash_Alcanity + 
##     Total_Phenols + Hue, data = Datos, prior = c(0.5, 0.5))
## 
## Prior probabilities of groups:
## Estandar  Premium 
##      0.5      0.5 
## 
## Group means:
##           Alcohol Malic_Acid      Ash Ash_Alcanity Total_Phenols      Hue
## Estandar 14.08200   1.880000 2.382000     16.52000      2.804000 1.116000
## Premium  13.98333   1.873333 2.452222     15.57778      2.875556 1.053333
## 
## Coefficients of linear discriminants:
##                      LD1
## Alcohol       -0.6325382
## Malic_Acid    -1.6909565
## Ash            7.7999329
## Ash_Alcanity  -0.5039052
## Total_Phenols -0.1288419
## Hue           -4.6171791

La sección de “Group means” proporciona las medias de las variables predictoras para cada grupo definido por la variable de respuesta “Customer_Segment”. En este caso, los grupos son “Premium” y “Estandar”. Cada coeficiente está asociado con una variable predictora y representa la contribución relativa de esa variable a la discriminación entre los grupos definidos por la variable de respuesta “Customer_Segment” Por ejemplo, el coeficiente asociado con “Alcohol” es -0.6325382. Un valor negativo indica que a medida que el valor de “Alcohol” aumenta, la probabilidad de pertenecer al grupo “Estandar” (en lugar de “Premium”) es más alta y asi con todas las demas. Estos coeficientes indican la dirección y magnitud de la contribución de cada variable al proceso de clasificación.

Predicción

predicciones <- predict(modelo_lda, newdata = Datos)
predicciones
## $class
##  [1] Premium  Premium  Premium  Premium  Premium  Premium  Premium  Premium 
##  [9] Estandar Premium  Estandar Estandar Premium  Premium 
## Levels: Estandar Premium
## 
## $posterior
##     Estandar    Premium
## 1  0.2775441 0.72245592
## 2  0.1691228 0.83087724
## 3  0.2819438 0.71805622
## 4  0.2399191 0.76008090
## 5  0.3210556 0.67894440
## 6  0.2294080 0.77059203
## 7  0.1774747 0.82252533
## 8  0.3695146 0.63048541
## 9  0.7922357 0.20776432
## 10 0.4303829 0.56961711
## 11 0.9878549 0.01214513
## 12 0.7586189 0.24138109
## 13 0.4570234 0.54297661
## 14 0.1746269 0.82537313
## 
## $x
##           LD1
## 1   0.6950942
## 2   1.1565984
## 3   0.6792284
## 4   0.8378266
## 5   0.5441476
## 6   0.8803558
## 7   1.1142350
## 8   0.3882071
## 9  -0.9724832
## 10  0.2036502
## 11 -3.1959040
## 12 -0.8320137
## 13  0.1252113
## 14  1.1284995

Estas son las predicciones resultantes. class: Muestra la clase predicha para cada observación en tus datos. Las clases son “Estandar” y “Premium”. Por ejemplo, la primera observación se predice como “Premium”, la segunda como “Premium” y así sucesivamente. posterior: Proporciona las probabilidades posteriores de pertenencia a cada clase para cada observación. Por ejemplo, para la primera observación, la probabilidad de pertenecer a “Estandar” es aproximadamente 0.28, y la probabilidad de pertenecer a “Premium” es aproximadamente 0.72 y asi con las demas. Estos resultados pueden ser útiles para evaluar la precisión del modelo y entender cómo las observaciones están siendo clasificadas en función de la información proporcionada por las variables predictoras.