data(iris)
datos <- iris
# AD sin selección de variables
require(MASS)
## Loading required package: MASS
require(klaR) # para errormatrix
## Loading required package: klaR
datos.lda <- lda(formula=Species~.,data=datos)
datos.lda.p <- predict(datos.lda,interval='confidence') # Asignación a cada clase, proporciona la probabilidad de pertenencia a cada una
plot(datos.lda,dimen=2) # Gráficos de las 2 primeras componentes del AD lineal

datos.lda.mc <- errormatrix(datos$Species, datos.lda.p$class) # Matriz de confusión
cat("\nMatriz de confusión:\n")
##
## Matriz de confusión:
print(datos.lda.mc)
## predicted
## true setosa versicolor virginica -SUM-
## setosa 50 0 0 0
## versicolor 0 48 2 2
## virginica 0 1 49 1
## -SUM- 0 1 2 3
print(round(errormatrix(datos$Species, datos.lda.p$class,r=T)*100)) # Matriz de confusion en %
## predicted
## true setosa versicolor virginica -SUM-
## setosa 100 0 0 0
## versicolor 0 96 4 4
## virginica 0 2 98 2
## -SUM- 0 33 67 2
#Selección de variables. Paso a paso
require("klaR")
datos.step <- stepclass(formula=Species~.,data=datos,method="lda")
## `stepwise classification', using 10-fold cross-validated correctness rate of method lda'.
## 150 observations of 4 variables in 3 classes; direction: both
## stop criterion: improvement less than 5%.
## correctness rate: 0.96; in: "Petal.Width"; variables (1): Petal.Width
##
## hr.elapsed min.elapsed sec.elapsed
## 0.000 0.000 3.432
cat("Variables retenidas en el modelo\n")
## Variables retenidas en el modelo
print(datos.step$model)
## nr name
## var 4 Petal.Width
cat("\nFórmula:\n")
##
## Fórmula:
print(datos.step$formula)
## Species ~ Petal.Width
## <environment: 0x3404d40>
# predicción
nuevo <- data.frame(Sepal.Length=5,Sepal.Width=3,Petal.Length=1.5,Petal.Width=0.3)
prediccion <- predict(datos.lda,newdata=nuevo, interval='confidence')
cat("\nAsignado a: ")
##
## Asignado a:
print(prediccion$class)
## [1] setosa
## Levels: setosa versicolor virginica
cat("\nProbabilidad de pertenencia a cada clase:\n")
##
## Probabilidad de pertenencia a cada clase:
print(prediccion$posterior)
## setosa versicolor virginica
## 1 1 3.108937e-16 1.44443e-34