Con la base de datos de R, Aid2, que contiene datos acerca de pacientes con sida,realizaremos un ejercicio de clasifición con AD, y evaluaremos los resultados con una métrica de porcentaje de aciertos y la curva ROC.

library(MASS)
data("Aids2")
str(Aids2)
## 'data.frame':    2843 obs. of  7 variables:
##  $ state  : Factor w/ 4 levels "NSW","Other",..: 1 1 1 1 1 1 1 1 1 1 ...
##  $ sex    : Factor w/ 2 levels "F","M": 2 2 2 2 2 2 2 2 2 2 ...
##  $ diag   : int  10905 11029 9551 9577 10015 9971 10746 10042 10464 10439 ...
##  $ death  : int  11081 11096 9983 9654 10290 10344 11135 11069 10956 10873 ...
##  $ status : Factor w/ 2 levels "A","D": 2 2 2 2 2 2 2 2 2 2 ...
##  $ T.categ: Factor w/ 8 levels "hs","hsid","id",..: 1 1 1 5 1 1 8 1 1 2 ...
##  $ age    : int  35 53 42 44 39 36 36 31 26 27 ...
# Lineal Discriminat Analisys
ad=lda(status~diag+age,data=Aids2)
ad
## Call:
## lda(status ~ diag + age, data = Aids2)
## 
## Prior probabilities of groups:
##         A         D 
## 0.3805839 0.6194161 
## 
## Group means:
##       diag      age
## A 11021.43 36.78373
## D 10315.77 37.79330
## 
## Coefficients of linear discriminants:
##               LD1
## diag -0.001901846
## age   0.013479156
#predicción
probs=predict(ad,newdata=Aids2,type="prob")
data.frame(probs)[1:5,]
prediccion=predict(ad,newdata = data.frame(diag=10905,age=35),type="class")
prediccion
## $class
## [1] A
## Levels: A D
## 
## $posterior
##           A         D
## 1 0.5409706 0.4590294
## 
## $x
##          LD1
## 1 -0.6423339
table(probs$class,Aids2$status)
##    
##        A    D
##   A  794  332
##   D  288 1429
mean(probs$class==Aids2$status) #porcentaje de bien clasificados
## [1] 0.7819205
# Curva ROC
# Curva ROC
#library(pROC)
#plot.roc(Aids2$status,probs$posterior[,2])