5.2 Análisis discriminante cuadrático

El análisis discriminante cuadrático (QDA) relaja la suposición de que todas las categorías tengan la misma estructura de covarianzas, es decir, \(X | Y = k \sim N(\mu_k, \Sigma_k)\), obteniendo como solución \[-\frac{1}{2} (\mathbf{x} - \mu_k)^t \Sigma^{-1}_k (\mathbf{x} - \mu_k) - \frac{1}{2} \mbox{log}(|\Sigma_k|) + \mbox{log}(P(Y = k))\]

Vemos que este método da lugar a fronteras discriminantes cuadráticas.

Si el número de variables predictoras es próximo al tamaño muestral, en la prácticas QDA se vuelve impracticable, ya que el número de variables predictoras tiene que ser menor que el numero de datos en cada una de las categorías. Una recomendación básica es utilizar LDA y QDA únicamente cuando hay muchos más datos que predictores. Y al igual que en LDA, si dentro de las clases los predictores presentan mucha colinealidad el modelo va a funcionar mal.

Al ser QDA una generalización de LDA podemos pensar que siempre va a ser preferible, pero eso no es cierto, ya que QDA requiere estimar muchos más parámetros que LDA y por tanto tiene más riesgo de sobreajustar. Al ser menos flexible, LDA da lugar a modelos más simples: menos varianza pero más sesgo. LDA suele funcionar mejor que QDA cuando hay pocos datos y es por tanto muy importante reducir la varianza. Por el contrario, QDA es recomendable cuando hay muchos datos.

Una solución intermedia entre LDA y QDA es el análisis discriminante regularizado (RDA, Friedman, 1989), que utiliza el hiperparámetro \(\lambda\) para definir la matriz \[\Sigma_{k,\lambda}' = \lambda\Sigma_k + (1 - \lambda) \Sigma\]

También hay una versión con dos hiperparámetros, \(\lambda\) y \(\gamma\), \[\Sigma_{k,\lambda,\gamma}' = (1 - \gamma) \Sigma_{k,\lambda}' + \gamma \frac{1}{p} \mbox{tr} (\Sigma_{k,\lambda}')I\]

De modo análogo al caso lineal, podemos realizar un análisis discriminante cuadrático empleando la función MASS::qda():

qd <- qda(taste ~ ., data = train)
qd
## Call:
## qda(taste ~ ., data = train)
## 
## Prior probabilities of groups:
##  good   bad 
## 0.662 0.338 
## 
## Group means:
##      fixed.acidity volatile.acidity citric.acid residual.sugar  chlorides
## good      6.726888        0.2616994   0.3330211       6.162009 0.04420242
## bad       7.030030        0.3075148   0.3251775       6.709024 0.05075740
##      free.sulfur.dioxide total.sulfur.dioxide   density       pH sulphates
## good            34.75831             132.7568 0.9935342 3.209668 0.4999396
## bad             35.41124             147.4615 0.9950789 3.166331 0.4763905
##        alcohol
## good 10.786959
## bad   9.845611
qd.pred <- predict(qd, newdata = test)
pred <- qd.pred$class
# p.est <- qd.pred$posterior
caret::confusionMatrix(pred, test$taste)
## Confusion Matrix and Statistics
## 
##           Reference
## Prediction good bad
##       good  147  40
##       bad    19  44
##                                           
##                Accuracy : 0.764           
##                  95% CI : (0.7064, 0.8152)
##     No Information Rate : 0.664           
##     P-Value [Acc > NIR] : 0.0003762       
##                                           
##                   Kappa : 0.4363          
##                                           
##  Mcnemar's Test P-Value : 0.0092202       
##                                           
##             Sensitivity : 0.8855          
##             Specificity : 0.5238          
##          Pos Pred Value : 0.7861          
##          Neg Pred Value : 0.6984          
##              Prevalence : 0.6640          
##          Detection Rate : 0.5880          
##    Detection Prevalence : 0.7480          
##       Balanced Accuracy : 0.7047          
##                                           
##        'Positive' Class : good            
## 

En este caso vemos que se obtienen mejores métricas (en la muestra test) que con el discriminante lineal del ejemplo anterior.

References

Friedman, J. H. (1989). Regularized discriminant analysis. Journal of the American statistical association, 84(405), 165-175. https://doi.org/10.1080/01621459.1989.10478752