Notas de Analisis Discriminante PDF
Notas de Analisis Discriminante PDF
Notas de Analisis Discriminante PDF
Noviembre 2000
2000, Derechos Reservados por Edgar Acuña, prohibida la reproducción total o parcial de este
documento sin el permiso del autor.
Edgar Acuna /ESMA 6835 Clasificación 2
Prólogo
Al final del curso se espera que el estudiante sepa aplicar varios métodos de análisis
discriminante a datos de la vida real usando un paquete estadístico: MINITAB, SAS, S-Plus,
SPSS y decidir cual de ellos es el más conveniente.
Recomendado: Haber usado previamente algún programa estadístico, tales como MINITAB,
SAS, S-Plus, SPSS, Stata, Statistica, Statgraphics. Conocer la regla de Bayes. Algún
concoimiento de la distribución normal multivariada y de métodos de estimación.
Contenido
1. Introducción.
1.1 Aplicaciones de clasificación.
1.2 Ejemplo de Motivación.
1.3 Notación y Definiciones básicas.
1.4 Métodos de Análisis Discriminante.
2. Análisis Discriminante Lineal.
2.1 Análisis Discriminante según Fisher.
2.2 Prueba de igualdad de matrices de covarianza.
2.3 Prueba de normalidad multivariada
2.4 Relación de Análisis Discriminante con Regresión Lineal.
2.5 Ventajas y Desventajas de Análisis Discriminante Lineal.
1. Introducción
1) Aplicación en Agricultura:
Clasificación de cultivos usando fotografias tomadas por satélite.
Determinar el tipo de emfermedad en una planta de acuerdo a varias mediciones que se
toman.
Se quiere predecir el resultado de un estudiante que tomará la clase en un próximo semestre, bajo
las mismas condiciones actuales (mismo profesor, mismo texto, mismo nivel de estudiante, etc).
P P
100 P P P P P
P P P
90 P PP
80 P
70 P
P P
60 P P
EX2
F P
50 P P
F F
40 F F
P
30 F F P
20 F
10
40 50 60 70 80 90 100
EX1
Edgar Acuna /ESMA 6835 Clasificación 6
Regression Analysis
Predicted Values
Desde el punto de vista de análisis discriminante, se sabe que hay solo dos clases de estudiantes.
Los estudiantes que pasan forman una clase P y los que no pasan forman la clase F. El objetivo es
ahora determinar a que clase pertenece el estudiante anteriormente mencionado. Un primer
intento de decidir a que clase va el estudiante es obtener la distancia Euclideana del punto
(50,75) a los valores promedios de los examenes 1 y 2 para ambos grupos de estudiantes
En nuestro caso
Sin embargo, el anterior método no es muy correcto porque la presencia de correlación de las
variables E1 y E2 en cada clase podría afectar el peso que se le da a cada uno de los examenes en
cada clase. Esto es cuantificado por las matrices de covarianzas de las variables en cada clase. En
nuestro caso
−1
−1 187.56 34.23 25.54
2
D =(x- x p )' S
p p (x- x p )=(25.54 1.25)
34.23 507.07
1.25
=3.5010
−1
−1 183.43 − 97.29 9.59
2
D =(x- x F )' S
F F (x- x F )=(9.59 31.00)
− 97.29 106.29
31.00
= 24.3134
Evidentemente no se puede estar haciendo el cálculo de las distancias y las comparaciones para
cada punto, sería demasiado trabajo, lo ideal es encontrar una regla de decisión representada por
una linea ( o curva en general) que separa las dos clases.
Haciendo uso de los resultados que da MINITAB siguiendo la secuencia Stat4 Multivariate
4Discriminant Analyisis se obtiene la siguiente regla de decisión:
110 f
100 p
90
80
70
60
E2
50
40 0.085E1+0.096E2>10.8222
30
20
0.085E!+0.096E2<10.8222
10
0
20 30 40 50 60 70 80 90 100
E1
En el análisis por conglomerados, solo se conocen los resultados en los examenes y la idea es
hallar grupos de estudiante que tenga un rendiiento afín. En este caso lo más indicado es tratar de
identificar 5 grupos de estudiantes: los que pasan el curso con A, B, C y D y los que fracasan el
curso (F).
Haciendo un análisis por conglomerado usando el método jerárquico se obtiene que los que
pertenecen al grupo A son los estudiantes 1,2,3,4,5, 6, 7, 11, 14 y 15; al grupo B: 8,10 y 12 al
grupo C: 9, 13, 17, 18, 20, 23 y 24 al grupo D: 16, 19, 28 y 31 y al grupo F: 21, 22, 25, 26, 27,
29,30 y 32. MINITAB produce los siguientes resultados
Final Partition
Number of clusters: 5
Cluster Centroids
Similarity
0.00
33.33
66.67
100.00
2 3 1 4 5 6 14 11 15 7 8 10 12 13 17 20 24 9 18 23 16 28 19 31 21 22 27 29 25 32 26 30
Observations
La regla de Bayes:
En términos de eventos: Si A1,… … ..An forman una partición del espacio muestral S y B es otro
evento definido en S. Entonces
P ( Ai ) P ( B / Ai )
P ( Ai / B) = n
∑ P( A ) P(B / A )
j =1
j j
para i=1,2,....n, las probabilidades P(Ai) son llamadas probabilidades apriori y las probabilidades
P(Ai/B) son llamadas las probabilidades a posteriori.
f (x / C i ) P (x ∈ C i ) f (x / C i )πi
P (C i / x) = = N
∑π
f (x)
j f (x / C j )
j =1
Se dice que el vector aleatorio x=(x1,x2,… ..xp) se distribuye como una normal multivariada de
dimensión p con vector de medias u y matriz de covarianzas Σ si su función de densidad es de la
forma
1 1
f (x) = exp[ − (x − u )' Σ − 1 (x − u)]
(2π) p/2
|Σ|
1/ 2
2
y se escribe x ~ Np(u,Σ)
Edgar Acuna /ESMA 6835 Clasificación 12
Y X1 X2 … Xp
1 X11 X21 … . Xp1
1 X12 X22 … Xp2
.. .. .. .. ..
1 X1n1 X2n1 … Xpn1
2 X1,n1+1 X2,n1+1 … Xp,n1+1
2 X1,n1+2 X2,n1+2 … Xp,n1+2
.. .. .. … ..
2 X1,n1+n2 X2,n1+n2 … Xp,n1+n2
Es decir, tenemos solo dos clases de objetos: C1 y C2 y p características que se miden en ellos
para asignarlos a una clase respectiva. Hay n1 objetos en la clase 1 y n2 en la clase 2. Sea
x1 = ( x1 , x 2 ,...x p ) , el vector de medias de las p variables predictoras en la clase 1 y x 2 el
correspondiente vector de medias en la clase 2. Representemos por u 1 y u 2 respectivamente
a los vectores de medias poblacionales de las variables predictoras en cada clase. y supongamos
que las matrices de varianzas poblacionales en cada clase son iguales. Osea,
∑ ∑ ∑
1
= 2= (esta es llamada la propiedad de Homocedasticidad). Asumir normalidad de los
datos no se requiere por ahora.
75.54 59.50
x1 =
73.75
, x2 =
34.00
, n1=24 , n2=8
0.00535 − 0.00004
S −1 =
− 0.00004 0.00241
E1
Sustituyendo estos valores en la ecuación 2.3, usando x =
, se obtiene la función
2
E
discriminante lineal
En 1936, Fisher obtuvo la función discriminante lineal de la ecuación (2.3) pero siguiendo otro
camino. El trató de hallar una combinación lineal de las variables xi que separaba las clases Ci lo
más posible, asumiendo que ambas matrices de covarianza son iguales (Σ1=Σ2=Σ). Más
especificamente, Fisher encontró, que si y=d'x entonces, la distancia al cuadrado entre las medias
de y en ambas clases dividido por su varianza en cada grupo, definida por
(d ' u1 − d ' u 2 ) 2
(2.4).
d ' Σd
Notar que y está más cerca a y1 si y>( y1 + y 2 )/2, lo cual produce la ecuación (2.3).
Fisher aplicó su método para clasificar tres especies de Iris:Setosa, Versicolor y Virgínica de
acuerdo a la longitud y ancho del pétalo y sépalo y obtuvo excelentes resultados. Sin embargo, si
bien hay normalidad multivariada de las variables predictoras x en cada clase, pero la suposición
de igualdad de matrices de covarianza no se cumple.
p
d ij = ∑ (x
k =1
ijk − M jk ) 2
1.25000
0.32995
2.05283
1.15273
0.06852
0.27786
2.01454
0.73612
1.01672
2.29809
0.93436
1.51993
1.35928
1.43570
0.53300
El "p-value" mayor que 0.05 indica que la hipótesis de igualdad de matrices de covarianza no es rechazada.
En conclusión se cumple la suposición de igualdad de covarianzas. Una alternativa sería usar la prueba de
Mann-Whitney en lugar de la t para dos muestras.
Podemos aplicar también la prueba de Bartlett usando SAS y se obtienen los siguientes resultados
P = Number of Variables
__ N(i)/2
|| |Within SS Matrix(i)|
V = -----------------------------------
N/2
|Pooled SS Matrix|
_ _ 2
| 1 1 | 2P + 3P - 1
RHO = 1.0 - | SUM ----- - --- | -------------
|_ N(i) N _| 6(P+1)(K-1)
Edgar Acuna /ESMA 6835 Clasificación 16
DF = .5(K-1)P(P+1)
_ _
| PN/2 |
| N V |
Under null hypothesis: -2 RHO ln | ------------------ |
| __ PN(i)/2 |
|_ || N(i) _|
En este caso la la hipótesis nula de igualdad de varianza es rechazada pues le "p-value" es 0.0339
menor que 0.05 y no sería conveniente usar análisis discriminante lineal.
Cuando se tiene varias poblaciones multivariadas cuya variabilidad se desea comparar se usa la
prueba de razón de verosimilitud pero, ésta es válida siempre que la suposición de normalidad se
cumpla. SAS usa una modificación de razón de verosimilitud debido a Bartlett para probar
homocedasticidad, la cual sin embargo es bien sensible si no hay normalidad. Una solución sería
probar primero normalidad multivariada usando la prueba de Mardia, la cual se basa en la
distribución de los coeficientes de asimetría y kurtosis. Hay un macro en SAS para esta prueba,
en cual se hace uso del procedimiento IML para matrices. Si no hay normalidad se podria usar
una extension de la prueba de Van Valen combinada con una prueba de F de análisis de varianza.
La prueba de Hawkins (Technometrics, 1981) permite probar simultáneamente normalidad
multivariada y homocedasticidad. Desafortunadamente esta prueba no aparece en ningún
programa estadístico.
MINITAB no incluye prueba para homocedaticidad multivariada ni prueba de normalidad
multivariada. La version 2000 de S-Plus también tiene pruebas de homoscedasticidad.
Edgar Acuna /ESMA 6835 Clasificación 17
Consideremos que x’j (j=1,… .n) representan las observaciones en la muestra de entrenamiento
correspondiente a una clase particular C. Si se consideran p variables predictoras entonces cada
xj es un vector columna p-dimensional. Deseamos probar que el vector aleatorio X=(X1,… ..Xp)
se distribuye ne forma normal multivariada en C. Mardia basa su prueba en las medidas de
asimetría y kurtosis, cuyas estimaciones basadas en la muestra de entrenamiento están definidas
como :
n n
1
b1 =
n2
∑ ∑ {(x
j =1 k =1
j − x)' S − 1 (x k − x)}3
n
1
b2 =
n
∑ {(x
j =1
j − x)' S − 1 (x j − x)}2
(n / 6)b1 ~ χ d2
Ejemplo: Probar si existe normalidad multivariada para los datos del ejemplo 1.
Haciendo los cálculos con MINITAB para la clase C1=P se obtiene que b1= 1.26451 y
(n/6)b1=5.05804. Asimismo d=(2/6)(3)(4)=4 dando un “p-value” para la Ji-Cuadrado de
0.2814.
Por otro lado, b2=6.25786, luego z=(6.25786-8)/ 8 / 3 =-1.0668 y el “p-value” para la
prueba de z es 0.2860.
Como ambos “p-values” son mayores que 0.05 no se rechaza la hipótesis nula y se
concluye que las notas en los dos examenes para los estudiantes que aprueban se
distribuyen como una normal multivariada.
El análisis discriminante lineal es equivalente a una regresión lineal con variable de respuesta Y
que asume el valor y1=n2/(n1+n2) si la observación pertenece a la clase C1 y y 2=-n1/(n1+n2) si la
observación pertenece a la clase C2. Aqui n1 es el número de observaciones de la clase C1 y n2 es
el número de observaciones de la clase C2 . Claramente y =0. La linea de regresión múltiple
puede ser escrita como
k k
donde βˆ0 = y − ∑i =1
βˆi x i = − ∑ βˆi x i . Usando notación matricial se puede a llegar a establecer
i =1
n1n2 /(n1 + n2 )
c=
(n1 + n2 − 2) + [n1 n2 /(n1 + n2 )]D 2
yj=ao+a’xj+ej
Minimizando la suma de los cuadrados de los errores ej conduce a las ecuaciones normales
Σ (yj-ao-a’xj)(-1)=0 (1)
Σ(yj-ao-a’xj)(-xj)=0 (2)
Ahora usando el hecho que Σyj=0 se obtiene de la primera ecuación que ao= -a’x =
n1 n
-( x'1 + 2 x' 2 )a. Sustituyendo en la ecuación (2) esta se convierte en
n n
n1 n
Σ[-( x'1 + 2 x' 2 ) a +a’xj]xj=Σyjxj
n n
n1 n nn
(Σ xj x’j ) a -( x'1 + 2 x' 2 ) a Σxj= 1 2 ( x1 − x 2 )
n n n
o equivalentemente
Edgar Acuna /ESMA 6835 Clasificación 19
n1 n nn
[ Σx’j xj -( x'1 + 2 x' 2 )( n1x1 + n2 x 2 )]a= 1 2 ( x1 − x 2 ) (3)
n n n
n1n2 nn
[(n-2)SW+ ( x1 − x 2 )( x1 − x 2 )' ]a= 1 2 ( x1 − x 2 ) (4)
n n
1
donde Sw= [∑ ( x − x1 )(x − x1 )' + ∑ (x − x 2 )(x − x 2 )'
n− 2
A− 1uu' A− 1
(A+uu')-1=A-1+
1 + u' A− 1u
n1n2 nn
b) Usar el hecho que ( x1 − x 2 )( x1 − x 2 )' esta en la dirección de 1 2 ( x1 − x 2 ) . Así que
n n
(n-2)SWa=c ( x1 − x2 )
S -1w
a= k ( x1 - x 2 )
n− 2
Para hallar el valor de c sustituir en la ecuación (4) y con eso la prueba está terminada.
Además, se halla la siguiente relación entre el coeficiente de determinación R2de la regresión
múltiple y la distancia Mahalanobis.
(n1 + n2 )(n1 + n2 − 2) R 2
D2 = ( )
n1n2 1 − R2
A. Ventajas
B. Desventajas
Sin embargo, usualmente nosotros conocemos alguna información adicional, tal como un vector x
de observaciones x hechas en el objeto que se desea clasificar. En este caso nosotros comparamos
las probabilidades de pertenecer a cada clase para un objeto con mediciones x y clasificamos al
objeto como de la clase Ci si
Esta regla de decisión es llamada la regla de Bayes de error mínimo. Las probabilidades P(Ci/x)
son llamadas probabilidades a posteriori. Desafortunadamente raras veces se conoce las
probabilidades a posteriori y éstas deben ser estimadas, como es el caso de regresión logística,
clasificación por árboles y redes neurales.
Una formulación mas conveniente de la regla anterior puede ser obtenida aplicando el teorema de
Bayes, el cual afirma que:
f (x / C i )πi
P (Ci / x) = (3.3)
f (x)
para todo i ≠j. Si las funciones de densidades para cada clase f(x/ Ci ) son conocidas entonces el
problema está resuelto, como es el caso de discriminante lineal y cuadrático ( ver secciones 2 y
5). Pero algunas veces también las f(x/ Ci ) son desconocidas y deben de ser estimadas usando
Edgar Acuna /ESMA 6835 Clasificación 21
Cuando hay solo dos clases presentes la regla de decisión de error mínimo de Bayes puede ser
expresada en la forma de una razón de verosimilitud. Así un objeto es clasificado como de la
clase C1 si
f (x / C1 ) π2
> (3.5)
f (x / C 2 ) π1
π2
− 1 / 2[(x − u 1 )' Σ − 1 (x − u 1 ) − (x − u 2 )' Σ − 1 ( x − u 2 )] > Ln( ) (3.7)
π1
π2
(u1-u2)'Σ-1(x-1/2(u1+u2))-> Ln( ) (3.8)
π2
La ecuación (3.8) es similar a la ecuación (2.3), excepto por el lado derecho. Si consideramos
que las probabilidades apriori son iguales (π1=π2) se obtienen el mismo resultado.
En este ejemplo las clases son tres especies de Iris: Iris setosa, Iris versicolor y Iris virginica que
son clasificadas de acuerdo a cuatro variables:longitud de pétalo (petallen) y ancho de
pétalo(petalwid), longitud de sépalo (sepallen) y ancho de sépalo (sepalwid) no se usaron. La
muestra de entrenamiento consiste de 150 casos, 50 por cada especie
En MINITAB se obtienen los siguientes resultados cuando se consideran las cuatro variables
Summary of Classification
Hay 3 observaciones mal clasificadas para una tasa estimada de clasificación errada es del 2%
79 46 68 p
69 74 68 p
51 49 59 f
37 41 56 f
67 39 53 f
75 24 60 f
62 38 58 f
57 26 46 f
77 18 44 f
50 37 42 f
;
data datatest;
input e1 e2;
datalines;
50 75
;
proc discrim data=ejemplo1 test=datatest method=normal pool=yes listerr;
class aprueba;
var e1 e2;
title 'Analisis discriminante Lineal para el ejemplo1';
run;
Notar la opción pool=yes, esto significa que se va a usar una matriz de covarianza combinada ya
que se desea un análsis discriminante lineal. Los resultados que se obtienen son los siguientes
Discriminant Analysis
32 Observations 31 DF Total
2 Variables 30 DF Within Classes
2 Classes 1 DF Between Classes
Prior
APRUEBA Frequency Weight Proportion Probability
2 11.2535757
2 _ _ -1 _ _
D (i|j) = (X - X )' COV (X - X )
i j i j
Edgar Acuna /ESMA 6835 Clasificación 25
f 0 5.14212
p 5.14212 0
_ -1 _ -1 _
Constant = -.5 X' COV X Coefficient Vector = COV X
j j j
APRUEBA
f p
2 _ -1 _
D (X) = (X-X )' COV (X-X )
j j j
2 2
Pr(j|X) = exp(-.5 D (X)) / SUM exp(-.5 D (X))
j k k
16 p f * 0.8269 0.1731
19 p f * 0.7831 0.2169
21 p f * 0.7020 0.2980
22 p f * 0.5992 0.4008
* Misclassified observation
2 _ -1 _
D (X) = (X-X )' COV (X-X )
j j j
2 2
Pr(j|X) = exp(-.5 D (X)) / SUM exp(-.5 D (X))
j k k
f 8 0 8
100.00 0.00 100.00
p 4 20 24
16.67 83.33 100.00
Total 12 20 32
Percent 37.50 62.50 100.00
f p Total
2 _ -1 _
D (X) = (X-X )' COV (X-X )
j j j
2 2
Pr(j|X) = exp(-.5 D (X)) / SUM exp(-.5 D (X))
j k k
f p Total
Total 0 1 1
Percent 0.00 100.00 100.00
El contenido de la salida es bastante similar al que da MINITAB, aunque incluye las fórmulas
usadas en ella. El siguiente es el programa en SAS correpondiente al ejemplo 2. Los datos están
contenidos en el archivo a:\iris.dat y solo se usarán las variables predictoras petalwid y petallen.
Discriminant Analysis
Prior
ESPECIES Frequency Weight Proportion Probability
setosa 2 1.09231
versicol 2 3.49389
virginic 2 5.32749
Pooled 2 4.08356
P = Number of Variables
__ N(i)/2
|| |Within SS Matrix(i)|
V = -----------------------------------
N/2
|Pooled SS Matrix|
_ _ 2
| 1 1 | 2P + 3P - 1
RHO = 1.0 - | SUM ----- - --- | -------------
|_ N(i) N _| 6(P+1)(K-1)
DF = .5(K-1)P(P+1)
_ _
| PN/2 |
| N V |
Under null hypothesis: -2 RHO ln | ------------------ |
| __ PN(i)/2 |
|_ || N(i) _|
2 _ _ -1 _ _
D (i|j) = (X - X )' COV (X - X ) + ln |COV |
Edgar Acuna /ESMA 6835 Clasificación 29
i j j i j j
* Misclassified observation
2 _ -1 _
D (X) = (X-X )' COV (X-X ) + ln |COV |
j j j j j
2 2
Pr(j|X) = exp(-.5 D (X)) / SUM exp(-.5 D (X))
j k k
setosa 50 0 0 50
100.00 0.00 0.00 100.00
versicol 0 49 1 50
0.00 98.00 2.00 100.00
virginic 0 2 48 50
0.00 4.00 96.00 100.00
Total 50 51 49 150
Percent 33.33 34.00 32.67 100.00
Edgar Acuna /ESMA 6835 Clasificación 30
Para hacer análisis discriminante en S-Plus se puede usar la secuencia de menus: Statistics>Multivariate>
Discriminant Analysis. Una segunda alternativa es usar la función discrim. Una tercera alternativa es usar
la función lda de la libreria MASS de Venables y Ripley. Para esto primero se da la instrucción
library(MASS) en la ventana de comandos. La función discrim esta basada en las funciones lda y qda de
MASS. La siguiente instrucción hará el análisis discriminante lineal para el conjunto de datos iris.
ldairis<-lda(especie~.,iris,prior=c(1,1,1)/3)
Estimación por resubsitución o Error Aparente (eA) (Smith, 1947). Este es simplemente la
proporción de obervaciones de la muestra que son erróneamenete clasificados por el clasificador
hallado en base a la muestra tomada. Por lo general es un estimador demasiado optimista y puede
conducir a falsas conclusiones si el tamaño de la muestra no es muy grande comparado con el
número de variables envueltas en el clasificador. Este estimador tiene mucho sesgo.
La mayoria de programas estadísticos (SAS, MINITAB, SPSS, etc ) dan el error aparente.
Estimación por validación cruzada. (Stone, 1974) En este caso se divide al azar la muestra en v
partes ( v=10 es lo más usado) y se halla el clasificador usando todas menos una de las partes
luego se clasifica las observaciones que se dejaron de lado, el promedio de las clasificaciones
erradas dará el estimador por validación cruzada. Es poco sesgado, pero muy variable.
Estimación "Dejar uno afuera" . (Lachenbruch, `1965) Es una situación particular del caso
anterior con v=n, algo similar también al "Jackknife". Aquí se omite una observacion se recalcula
el clasificador usando las observaciones restantes y luego se clasifica la observacion no
considerada, se repite el proceso para cada observación de la muestra. La proporción de
Edgar Acuna /ESMA 6835 Clasificación 31
La mayoria de programas estadísticos (SAS, MINITAB, SPSS, etc ) dan el error aparente.
Estimación por "Bootstrapping". (Efron, 1983). El método se basa en tomar muestras con
reemplazamiento de los datos en la muestra de entrenamiento y de igual tamaño que ella. Es casi
insesgado y tiene varianza pequeña. Tiene la desventaja de que es demasiado costoso calcularlo.
Hay varios esquemas de este método:
a) Método simple:
1. Se toma una muestra con reemplazamiento y de igual tamaño que la muestra de
entrenamiento y se halla el clasificador.
b) Metodo refinado:
Antes que nada el sesgo del estimador de la tasa de error se define como eC-eA. Notar que eC=eA+
eC-eA= eA+ Sesgo
En este caso se estima dicho sesgo del error por resubstitución de la muestra de entrenamiento
siguiendo los siguientes pasos:
Existen tambien los métodos de doble "bootstrapping" y el estimator .632 ( Ver Efron y
Tibshirani (1983), McLachlan, (1992), Webb (1999)). Notar que
Breiman (1998) obtuvo la siguiente descomposición del error de clasificación para el clasificador
C:
ME(C)=ME(C*)+Sesgo2(C) +Var(C)
El clasificador puede sobreajustar ("overfit") en cuyo caso el sesgo es bajo pero la variabilidad es
alta o subajustar ("underfit") los datos en cuyo caso el sesgo es alto pero la varianza es alta.
| Σ2 | π
1 / 2 Ln( ) − 1 / 2[(x − u 1 )' Σ1− 1 (x − u 1 ) − (x − u 2 )' Σ −21 (x − u 2 )] > Ln( 2 ) (6.8)
| Σ1 | π1
haciendo simplificaciones se obtiene
| Σ1 | π
x' (Σ 2− 1 − Σ1− 1 )x − 2x' (Σ 2− 1u 2 − Σ1− 1u 1 ) + (u '2 Σ −21u 2 − u 1' Σ1− 1u 1 ) > Ln( ) + 2 Ln( 2 )
| Σ2 | π1
| S1 |
x' ( S2− 1 − S1− 1 )x − 2x' ( S 2− 1x 2 − S1− 1x1 ) + ( x2' S2− 1 x 2 − x1' S1− 1x1 ) > Ln( ) (6.9)
| S2 |
Aqui la frontera entre las dos clases son curvas cuadráticas (elipses, hiperbolas etc.).
Usando simulación se ha demostrado que cuando hay normalidad la discriminación cuadrática es
más eficiente que la lineal para muestras grandes, pero no para muestras pequeñas. En el caso de
muestras pequeñas debe haber una marcada diferencia entre las matrices de covarianza para que
la discriminacion cuadrática sea eficiente ( Marks and Dunn, JASA 1974).
También ha quedado probado que cuando no hay normalidad la discriminación cuadrática tiene
un pobre rendimiento.
Edgar Acuna /ESMA 6835 Clasificación 33
Discriminant Analysis
Group f p
Count 8 24
Summary of Classification
p 13.80 1.000
5 p p f 120.39 0.000
p 13.18 1.000
6 p p f 70.39 0.000
p 11.63 1.000
7 p p f 108.56 0.000
p 12.73 1.000
8 p p f 78.23 0.000
p 13.07 1.000
9 p p f 38.51 0.000
p 13.31 1.000
10 p p f 72.20 0.000
p 14.40 1.000
11 p p f 66.28 0.000
p 11.87 1.000
12 p p f 50.54 0.000
p 17.64 1.000
13 p p f 26.06 0.001
p 12.56 0.999
14 p p f 73.81 0.000
p 11.66 1.000
15 p p f 83.15 0.000
p 12.04 1.000
16 ** p f f 11.11 0.890
p 15.29 0.110
17 p p f 36.16 0.000
p 11.74 1.000
18 p p f 30.77 0.000
p 12.07 1.000
19 ** p f f 13.13 0.874
p 17.01 0.126
20 p p f 29.41 0.000
p 12.01 1.000
21 p p f 14.23 0.383
p 13.28 0.617
22 p p f 17.09 0.106
p 12.82 0.894
23 p p f 20.41 0.025
p 13.12 0.975
24 p p f 46.80 0.000
p 11.68 1.000
25 f f f 11.62 0.873
p 15.48 0.127
26 f f f 12.42 0.984
p 20.69 0.016
27 f f f 10.99 0.821
p 14.04 0.179
28 f f f 10.58 0.948
p 16.37 0.052
29 f f f 9.766 0.920
p 14.639 0.080
30 f f f 10.84 0.960
p 17.21 0.040
31 f f f 11.71 0.953
p 17.73 0.047
32 f f f 9.781 0.973
p 16.985 0.027
Solo 2 de las 32 observaciones son mal clasificadas para un porcentaje de error del 6.3%,
mejorando los resultados obtenidos por el análisis discriminante lineal.
Edgar Acuna /ESMA 6835 Clasificación 35
La gráfica de la ecuación representa una elipse con ejes rotados, sólo una parte de ella interesa
para determinar las regiones de clasificación.
La siguiente gráfica muestra una comparación entre las funciones discriminante lineal y
cuadrática para los datos del ejemplo 1.
110 f
100 funcion discriminante lineal p
90
80
70
60
E2
funcion discriminante
50 cuadratica
40
30
20
10
10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95100
E1
En SAS el procedimento DISCRIM tiene una opción pool=no que produce el análisis
discriminante cuadrático directamente. La opción pool=test hace primero la prueba de
homogeneidad de varianza y luego dependiendo del resultado de la prueba ejecuta un análisis
discriminante lineal o cuadrático. El siguiente es el programa en SAS correpondiente al ejemplo 2
usando solamente las predictoras petallen y petalwid
77 38 67 22 virginica
49 25 45 17 virginica
64 32 45 15 versicolor
55 24 38 11 versicolor
49 36 14 1 setosa
67 33 57 21 virginica
77 28 67 20 virginica
50 23 33 10 versicolor
61 30 49 18 virginica
61 26 56 14 virginica
51 38 19 4 setosa
51 35 14 2 setosa
46 32 14 2 setosa
50 36 14 2 setosa
57 29 42 13 versicolor
71 30 59 21 virginica
49 24 33 10 versicolor
49 31 15 2 setosa
66 29 46 13 versicolor
44 29 14 2 setosa
47 32 13 2 setosa
74 28 61 19 virginica
56 28 49 20 virginica
49 31 15 1 setosa
56 30 41 13 versicolor
51 25 30 11 versicolor
54 39 13 4 setosa
61 29 47 14 versicolor
68 30 55 21 virginica
45 23 13 3 setosa
55 23 40 13 versicolor
51 37 15 4 setosa
63 33 60 25 virginica
64 28 56 22 virginica
46 34 14 3 setosa
46 36 10 2 setosa
56 25 39 11 versicolor
51 33 17 5 setosa
63 33 47 16 versicolor
55 35 13 2 setosa
61 28 40 13 versicolor
63 25 50 19 virginica
54 30 45 15 versicolor
50 35 16 6 setosa
63 27 49 18 virginica
72 32 60 18 virginica
48 34 19 2 setosa
64 28 56 21 virginica
67 31 44 14 versicolor
56 30 45 15 versicolor
60 29 45 15 versicolor
77 30 61 23 virginica
72 30 58 16 virginica
64 31 55 18 virginica
56 27 42 13 versicolor
77 26 69 23 virginica
52 27 39 14 versicolor
Edgar Acuna /ESMA 6835 Clasificación 37
50 20 35 10 versicolor
46 31 15 2 setosa
59 30 42 15 versicolor
60 22 40 10 versicolor
67 31 47 15 versicolor
63 25 49 15 versicolor
57 28 41 13 versicolor
51 35 14 3 setosa
56 29 36 13 versicolor
55 25 40 13 versicolor
57 25 50 20 virginica
66 30 44 14 versicolor
52 35 15 2 setosa
53 37 15 2 setosa
65 28 46 15 versicolor
69 31 51 23 virginica
61 30 46 14 versicolor
65 30 55 18 virginica
57 28 45 13 versicolor
67 33 57 25 virginica
67 30 52 23 virginica
48 31 16 2 setosa
64 32 53 23 virginica
79 38 64 20 virginica
58 26 40 12 versicolor
47 32 16 2 setosa
48 30 14 3 setosa
50 30 16 2 setosa
43 30 11 1 setosa
62 28 48 18 virginica
58 27 41 10 versicolor
57 26 35 10 versicolor
63 34 56 24 virginica
54 34 15 4 setosa
60 30 48 18 virginica
57 30 42 12 versicolor
60 22 50 15 virginica
60 34 45 16 versicolor
55 24 37 10 versicolor
69 32 57 23 virginica
51 34 15 2 setosa
73 29 63 18 virginica
63 23 44 13 versicolor
61 28 47 12 versicolor
65 30 58 22 virginica
72 36 61 25 virginica
69 31 49 15 versicolor
48 34 16 2 setosa
57 38 17 3 setosa
68 28 48 14 versicolor
58 28 51 24 virginica
67 31 56 24 virginica
62 22 45 15 versicolor
60 27 51 16 versicolor
58 27 51 19 virginica
62 34 54 23 virginica
76 30 66 21 virginica
Edgar Acuna /ESMA 6835 Clasificación 38
70 32 47 14 versicolor
59 30 51 18 virginica
52 34 14 2 setosa
44 32 13 2 setosa
44 30 13 2 setosa
55 26 44 12 versicolor
51 38 16 2 setosa
50 32 12 2 setosa
58 40 12 2 setosa
49 30 14 2 setosa
50 34 16 4 setosa
57 44 15 4 setosa
58 27 51 19 virginica
52 41 15 1 setosa
63 29 56 18 virginica
55 42 14 2 setosa
54 39 17 4 setosa
50 34 15 2 setosa
58 27 39 12 versicolor
62 29 43 13 versicolor
50 35 13 3 setosa
67 25 58 18 virginica
54 37 15 2 setosa
64 29 43 13 versicolor
69 31 54 21 virginica
65 32 51 20 virginica
64 27 53 19 virginica
48 30 14 1 setosa
51 38 15 3 setosa
54 34 17 2 setosa
67 30 50 17 versicolor
;
proc discrim method=normal pool=test listerr;
class especies;
var petallen petalwid;
run;
Discriminant Analysis
Prior
ESPECIES Frequency Weight Proportion Probability
setosa 2 1.09231
versicol 2 3.49389
virginic 2 5.32749
Pooled 2 4.08356
P = Number of Variables
__ N(i)/2
|| |Within SS Matrix(i)|
V = -----------------------------------
N/2
|Pooled SS Matrix|
_ _ 2
| 1 1 | 2P + 3P - 1
RHO = 1.0 - | SUM ----- - --- | -------------
|_ N(i) N _| 6(P+1)(K-1)
DF = .5(K-1)P(P+1)
_ _
| PN/2 |
| N V |
Under null hypothesis: -2 RHO ln | ------------------ |
| __ PN(i)/2 |
|_ || N(i) _|
2 _ _ -1 _ _
D (i|j) = (X - X )' COV (X - X ) + ln |COV |
i j j i j j
* Misclassified observation
2 _ -1 _
D (X) = (X-X )' COV (X-X ) + ln |COV |
j j j j j
2 2
Pr(j|X) = exp(-.5 D (X)) / SUM exp(-.5 D (X))
j k k
setosa 50 0 0 50
100.00 0.00 0.00 100.00
versicol 0 49 1 50
0.00 98.00 2.00 100.00
virginic 0 2 48 50
Edgar Acuna /ESMA 6835 Clasificación 41
Total 50 51 49 150
Percent 33.33 34.00 32.67 100.00
Por otro lado sea p=P(Y=1/x) la probabilidad a posteriori de que y sea igual a 1, entonces se
puede notar que:
p π1 f (x / C1 )
=
1 − p π2 f (x / C 2 )
p
donde es llamado la razón de apuestas (odds ratio). Tomando logaritmos en ambos lados
1− p
se obtiene
p π f ( x / C1 )
log( ) = log( 1 ) + log
1− p π2 f (x / C 2 )
Si las variables x en cada clase se distribuyen normalmente con igual matriz de covarianza Σ
entonces la ecuación anterior se convierte en
p π
log( ) = log( 1 ) + (u1-u2)' Σ-1(x-1/2(u1+u2))
1− p π2
p
log( ) = α + β' x
1− p
o de la forma
exp(α + β ' x)
p=
1 + exp(α + β ' x)
p
esta ecuación es llamada regresión logística y log( ) es llamado la transformacion logit.
1− p
La ecuación anterior se cumple también para otros tipos de distribuciones distintas de la normal
multivariada tales como distribuciones de Bernoulli, y mezclas de éstas.
La Devianza: Es similar a la suma de cuadrados del error de la regresión lineal y se define por
n
pˆ 1 − pˆ
D = − 2∑ { yi log( ) + (1 − yi ) log( )}
i =1 yi 1 − yi
Si D es mayor que una Ji-Cuadrado con n-p grados de libertad para un nivel de significación dado
entonces el modelo logístico es confiable.
AIC=D+2(k+s)
(Oi − n'i pi )2
g
C =∑
i =1 n'i pi (1− pi )
Edgar Acuna /ESMA 6835 Clasificación 43
Existen varios tipos de residuales que permiten cotejar si una observación es influencial o no.
donde, si los valores de la variable de respuesta están agrupadas, yi representa el número de veces
que y=1 entre las mi repreticiones de XI
mi p i m (1 − pˆi ) 1 / 2
Di = − 2sign ( y i − mi pi )[ y i log( ) + (mi − y i ) log( i )]
yi mi − y i
Para efectos de clasificación la manera más facil de discriminar es considerar que si p>0.5
entonces la obervación pertenece a la clase que uno está interesado. Pero algunas veces esto
puede resultar injusto sobre todo si se conoce si una de las clases es menos frecuente quela otra.
exp(α + β ' x)
P (C1 / x) =
1 + exp(α + β ' x)
1
P (C 2 / x) =
1 + exp(α + β ' x)
respectivamente.
n1
exp( a + x i ' β ) n
1
L (α , β ) = ∏ ⋅∏
i =1 1 + exp(α + xi ' β ) j =n1 + 1 1 + exp(α + x j ' β )
asumiendo que las primeras n1 observaciones son de la clase C1 y las restantes son de la clase C2.
~
Los estimados α~ y β son aquellos que maximizan la función anterior y son encontrados
aplicando métodos iterativos tales como Newton-Raphson (SAS) o minimos cuadrados
reponderados iteraativos (MINITAB, S-Plus).
Si hay separabilidad entre los grupos no hay solución unica de la función de verosimilitud
Ejemplo : Se han registrado los pesos de 189 bebes recien nacidos y se han medido las
siguientes variables para determinar si el niño es de bajo peso (menos de 2500 gramos) o no lo es.
Response Profile
Ordered
Value BAJOPESO Count
1 0 130
2 1 59
Intercept
Intercept and
Criterion Only Covariates Chi-Square for Covariates
1 4 0 0.48248 1
2 5 0 0.48423 1
3 13 0 0.24109 1
4 14 0 0.43253 1
5 45 0 0.43200 1
6 46 0 0.43200 1
7 50 0 0.40682 1
8 57 0 0.30465 1
9 65 0 0.32666 1
10 71 0 0.44522 1
11 73 0 0.49172 1
12 86 0 0.46934 1
13 94 0 0.16979 1
14 102 0 0.45456 1
15 132 1 0.80635 0
Edgar Acuna /ESMA 6835 Clasificación 47
16 136 1 0.82412 0
17 138 1 0.73348 0
18 141 1 0.75693 0
19 143 1 0.73871 0
20 144 1 0.69826 0
21 145 1 0.67348 0
22 146 1 0.75699 0
23 147 1 0.82539 0
24 148 1 0.71635 0
25 149 1 0.67859 0
26 150 1 0.56512 0
27 152 1 0.80894 0
28 153 1 0.50867 0
29 154 1 0.62888 0
30 155 1 0.89982 0
31 157 1 0.56163 0
32 159 1 0.73658 0
33 161 1 0.65930 0
34 162 1 0.57686 0
35 163 1 0.68692 0
36 164 1 0.76802 0
37 168 1 0.69842 0
38 169 1 0.61239 0
39 170 1 0.82139 0
40 171 1 0.78787 0
41 172 1 0.61371 0
42 173 1 0.59766 0
43 175 1 0.73683 0
44 176 1 0.72720 0
45 177 1 0.73569 0
46 178 1 0.64420 0
47 179 1 0.58253 0
48 180 1 0.75786 0
49 182 1 0.63317 0
50 183 1 0.87801 0
51 185 1 0.67738 0
52 186 1 0.58231 0
52 de las 189 observaciones quedan mal clasificadas para una tasa de error del 27.5%.
Edgar Acuna /ESMA 6835 Clasificación 48
Las gráficas de los dos métodos aparecen en la siguiente figuras y embos caso el p-ótimo a usarse es p=0.3
100
Sensitividad
Este es el
p-optimo
50
0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
Especificidad
Edgar Acuna /ESMA 6835 Clasificación 49
En S-Plus para hacer discriminación logística con dos clases se usa la función glm (modelo lineal general)
con la opción family=binary, y para hacer discriminación logística con varias clases se usa la función
Multinom
Generalizaciones de la logistica
P (C = 1 / x)
log( ) = log it ( P (x)) = η (x)
P (C = 2 / x)
En el modelo básico η(x)=β0+β’x . Pero existen otras posibilidades para η(x). Tales como las
siguientes
a) η(x)=Polinomio(x)
k1 k2 km
e) η(x)=β0+w1 ∏
k =1
φ1k(xv(1,k)) +w2 ∏
k =1
φ2k(xv(2,k))+… … +wm ∏
k =1
φmk(xv(m,k)),
donde las funciones φjk son funciones splines. Este es llamada el modelo
MARS (Mulivariate aadditive regression splines, Friedman (1991)).
Edgar Acuna /ESMA 6835 Clasificación 50
La curva ROC
0.10
100
0.20
0.25
0.30
0.35
C13
50 0.40
0.50
0.60
0.70
0.80
0.90
0
0 10 20 30 40 50 60 70 80 90
C16
Edgar Acuna /ESMA 6835 Clasificación 51
Entonces el estimador de densidad de los k vecinos mas cercanos en el punto t es definido por
k
fˆ(t ) =
2nd k (t )
0.25
0.20
Density
0.15
0.10
0.05
0.00
0 1 2 3 4 5 6 7 8
C1
10
fhat(x)
0
0 1 2 3 4 5 6 7 8
x
Notar que el area debajo de la curva no da 1, habria que normalizar. Cuando se usar k pequeño
El estimado tiene muchos picos y cuando k es grande es muy suave.
k
fˆ(x) = (8.1)
nv k (x)
Desde el punto de vista de análisis discriminante el método k-nn es bien simple de aplicar.
En efecto, si las funciones de densidades condicionales f(x/Ci) de la clase Ci que aparecen en la
f (x / C i )πi
ecuación P (Ci / x) = son estimadas por una expresión de la forma (8.1).
f (x)
Entonces, para clasificar un objeto con mediciones dadas por el vector x en la clase Ci se
Debe cumplir que
k iπi k j πj
> para j≠i
ni v k ( x ) n j v k ( x )
Asumiendo priors proporcionales a los tamaños de las clases (ni/n y nj/n respectivamente) lo
anterior es equivalente a:
1) Hallar los k objetos que están a más corta distancia de x, k usualmente es un número impar 1
o 3.
2) Si la mayoria de esos k objetos pertenecen a la clase Ci entonces el objeto considerado
también pertenece a ella. En caso de empate se clasifica al azar.
Se ha demostrado (Cover y Hart, 1967) que la tasa de error del k-nn es a lo mas dos
veces la tasa de error óptimo.
7.1 Análisis discriminante usando los k vecinos mas cercanos en SAS y S-Plus
El procedimento DISCRIM de SAS incluye el método de los vecinos más cercanos basta incluir
method=npar por noparamétrico y un valor de k, 1 y 3 son los valores más usados. También se
pueden elegir 3 tipos de distancia: La distancia Euclideana (METRIC=IDENTITY), La distancia
Mahalanobis (METRIC= FULL) o una distancia ponderada por una matriz diagonal que contiene
las varianzas combinadas de los grupos (METRIC=DIAGONAL). Por default, SAS usa
METRIC=FULL.
Edgar Acuna /ESMA 6835 Clasificación 54
Discriminant Analysis
Prior
BAJOPESO Frequency Weight Proportion Probability
1 0 1 * 0.1850 0.8150
4 0 1 * 0.4758 0.5242
10 0 1 * 0.4758 0.5242
12 0 1 * 0.1850 0.8150
13 0 1 * 0.1850 0.8150
14 0 1 * 0.4758 0.5242
15 0 1 * 0.4758 0.5242
16 0 1 * 0.4758 0.5242
18 0 1 * 0.4758 0.5242
19 0 1 * 0.1850 0.8150
22 0 1 * 0.4758 0.5242
25 0 1 * 0.4758 0.5242
27 0 1 * 0.4758 0.5242
29 0 1 * 0.1850 0.8150
32 0 1 * 0.1850 0.8150
33 0 1 * 0.1850 0.8150
35 0 1 * 0.4758 0.5242
37 0 1 * 0.4758 0.5242
39 0 1 * 0.1850 0.8150
Edgar Acuna /ESMA 6835 Clasificación 55
40 0 1 * 0.4758 0.5242
41 0 1 * 0.1850 0.8150
50 0 1 * 0.1850 0.8150
51 0 1 * 0.4758 0.5242
52 0 1 * 0.4758 0.5242
54 0 1 * 0.4758 0.5242
55 0 1 * 0.4758 0.5242
57 0 1 * 0.4758 0.5242
58 0 1 * 0.4758 0.5242
59 0 1 * 0.1850 0.8150
63 0 1 * 0.1850 0.8150
64 0 1 * 0.4758 0.5242
65 0 1 * 0.4758 0.5242
66 0 1 * 0.1850 0.8150
69 0 1 * 0.4758 0.5242
70 0 1 * 0.1850 0.8150
71 0 1 * 0.1850 0.8150
73 0 1 * 0.4758 0.5242
79 0 1 * 0.1850 0.8150
85 0 1 * 0.4758 0.5242
86 0 1 * 0.4758 0.5242
87 0 1 * 0.4758 0.5242
91 0 1 * 0.4758 0.5242
94 0 1 * 0.4758 0.5242
102 0 1 * 0.4758 0.5242
103 0 1 * 0.1850 0.8150
109 0 1 * 0.4758 0.5242
110 0 1 * 0.4758 0.5242
112 0 1 * 0.4758 0.5242
114 0 1 * 0.1850 0.8150
117 0 1 * 0.4758 0.5242
118 0 1 * 0.4758 0.5242
122 0 1 * 0.4758 0.5242
128 0 1 * 0.4758 0.5242
153 1 0 * 0.5765 0.4235
161 1 0 * 0.5765 0.4235
* Misclassified observation
2 -1
D (X,Y) = (X-Y)' COV (X-Y)
0 77 53 130
59.23 40.77 100.00
1 2 57 59
3.39 96.61 100.00
0 1 Total
Hay 55 sujetos de los 189 mal clasificados lo cual da una tasa de error del 29%, mucho mayor
que el método de kernels
S-Plus tampoco tiene una función que haga discriminación por el método de k vecinos más
cercanos. Nuevamente, hemos usado la librería de programas en S-Plus que viene con el libro de
Venables y Ripley (1997). La función k-nn hace clasificación pro k-nn pero solamente usando la
distancia euclideana.
>library(class)
>examenes<-cbind(E1,E2)
> examenes
Edgar Acuna /ESMA 6835 Clasificación 57
E1 E2
[1,] 96 100
[2,] 96 94
[3,] 100 91
[4,] 93 96
[5,] 90 94
[6,] 75 83
[7,] 75 99
[8,] 64 93
[9,] 89 55
[10,] 57 94
[11,] 70 84
[12,] 44 89
[13,] 62 63
[14,] 76 84
[15,] 73 90
[16,] 76 30
[17,] 69 67
[18,] 78 57
[19,] 85 25
[20,] 67 63
[21,] 64 48
[22,] 66 51
[23,] 79 46
[24,] 69 74
[25,] 51 49
[26,] 37 41
[27,] 67 39
[28,] 75 24
[29,] 62 38
[30,] 57 26
[31,] 77 18
[32,] 50 37
>
> prueba<-cbind(70,75)
> prueba
[1] 50 75
> clases<-factor(c(rep("p",24),rep("f",8)))
> clases
[1] p p p p p p p p p p p p p p p p p p p p p p p p f f f f f f f f
> knn(examenes,prueba,clases,k=3)
[1] p
Levels:
[1] "f" "p"
> vecinos<-knn(examenes,examenes,clases,k=3,prob=T)
> vecinos
[1] p p p p p p p p p p p p p p p p p p p p p p p p f f f f f f f f
> attributes(vecinos)
$levels:
[1] "f" "p"
Edgar Acuna /ESMA 6835 Clasificación 58
$class:
[1] "factor"
$prob:
[1] 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000
[9] 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 0.6666667
[17] 1.0000000 1.0000000 0.6666667 1.0000000 0.6666667 0.7500000 1.0000000 1.0000000
[25] 0.6666667 1.0000000 0.6666667 0.6666667 0.6666667 1.0000000 0.6666667 1.0000000
>
Ejemplo 11. El siguiente es otro ejemplo aplicado a los datos del ejemplo 3, que están guardados
en un diskette en el archivo discdat.dat.
> library(class)
> sico<-read.table("a:discdat.dat",header=T)
> prueba<-c(1,2,1,1,1)
> prueba
[1] 1 2 1 1 1
> sico1<-data.frame(sico[,-1])
> sico1
x1 x2 x3 x4 x5
1 2 2 2 2 2
2 2 2 2 1 2
3 1 1 2 1 1
4 2 2 2 1 2
5 1 1 2 1 2
6 1 1 2 1 1
7 2 2 2 2 2
8 1 1 2 1 2
9 1 1 2 1 2
10 2 1 2 1 2
11 2 2 2 1 2
12 2 1 2 1 2
13 1 1 2 2 2
14 1 1 2 1 2
15 3 3 2 3 2
16 4 3 3 3 2
17 3 3 2 3 3
18 3 2 2 3 2
19 4 2 2 2 2
20 2 3 2 3 3
21 2 2 2 2 3
22 3 2 2 1 3
23 3 3 2 1 3
24 2 2 2 2 2
25 3 1 3 4 4
Edgar Acuna /ESMA 6835 Clasificación 59
26 2 2 3 1 2
27 3 2 2 4 2
28 3 2 2 3 3
29 2 2 2 3 1
30 3 2 4 3 3
31 3 1 3 1 3
32 1 2 2 1 2
33 3 3 2 4 3
34 2 3 2 4 3
35 3 3 3 4 3
36 2 1 2 3 3
37 4 4 4 4 4
38 2 1 2 3 3
39 4 1 4 4 4
40 3 3 2 2 3
41 2 2 2 1 2
42 4 2 2 2 2
43 3 3 2 3 3
44 2 3 2 2 2
45 4 3 1 2 3
> marca<-factor(sico[,1])
> marca
[1] I I I I I I I I I I I I I I I W W W W W W W W W W W W W W W W W W W W W W W W
WW
[42] W W W W
> vecino<-knn(sico1,sico1,marca,3,prob=T)
> vecino
[1] I I I I I I I I I I I I I I W W W W W W W W W I W I W W W W W I W W W W W W W W
I
[42] W W I W
> attributes(vecino)
$levels:
[1] "I" "W"
$class:
[1] "factor"
$prob:
[1] 0.6666667 0.7500000 1.0000000 0.7500000 1.0000000 1.0000000 0.6666667 1.0000000
[9] 1.0000000 0.9000000 0.7500000 0.9000000 1.0000000 1.0000000 0.7500000 0.8750000
[17] 0.8571429 0.7500000 1.0000000 1.0000000 0.5000000 0.6666667 1.0000000 0.6666667
[25] 1.0000000 0.6000000 0.8000000 1.0000000 0.6000000 1.0000000 0.6000000 0.7777778
[33] 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000
[41] 0.7500000 1.0000000 0.8571429 0.5000000 1.0000000
> vecino1<-knn(sico1,prueba,marca,3,prob=T)
> vecino1
[1] I
Levels:
[1] "I" "W"
> attributes(vecino1)
Edgar Acuna /ESMA 6835 Clasificación 60
$levels:
[1] "I" "W"
$class:
[1] "factor"
$prob:
[1] 0.6666667
Hay 6 sujetos mal clasificados de un total de 45, para un porcentaje de error del 13.33%, casi
similar a los resultados del análisis discriminante lineal. El sujeto con las caracteristicas que se
dan es clasificado como enfermo (I).
Edgar Acuna /ESMA 6835 Clasificación 61
# obs ≤ x
Fn ( x ) =
n
F ( x + h) − Fn ( x − h)
fˆ( x ) = n (8.1)
n
donde hes un valor positivo cercano a cero. Lo anterior es equivalente a la proporción de puntos
en el intervalo (x-h, x+h) dividido por h. La ecuación (8.1) puede ser escrita como:
1 n x − xi
fˆ( x ) = ∑
nh i =1
K(
h
)
0 si |z|>1
K(z)=
1/2 si |z|≤1
c) lim h(n) = 0
n→ ∞
Usualmente, pero no siempre, K(z)≥0 y simétrico, luego cualquier función de densidad simétrica
puede usarse como kernel.
Edgar Acuna /ESMA 6835 Clasificación 62
0 si |z|>1
K(z)=
1/2 si |z|≤1
En este caso cualquier punto en el intervalo (x-h, x+h) contribuye 1/2nh al estimado de f(x) en
el punto x, y cualquier punto fuera de ese intervalo no contribuye en nada.
En este caso el kernel representa una función peso más suave donde todos los puntos contribuyen
al estimado de f(x) en x.
3 z2
(1 − ) para |z|< 5
4 5 5
K(z)=
0 en otro caso
∫ ∫ ∫
MISE(h)= E ( fˆh ( x ) − f ( x )) 2 dx = E ( fˆh ( x ) − f ( x )) 2 dx + E ( fˆh ( x ) − Efˆ( x )) 2 dx
1 1
MISE(h)=
nh ∫K 2 ( z )dz + h 4 ∫( f " ( x )) 2 dx{∫z 2 K ( z )dz}2 + O (1 / nh + h 4 )
4
Los dos primeros terminos del lado derecho forman el AMISE, la expansión asimptótica del
MISE. Minimizando el AMISE en función de h (Parzen, 1962) se obtiene
∫K
2
( z )dz
h= [ ]1 / 5
n ∫( f " ( x )) dx{∫z 2 K ( z )dz}
2 2
2
∫
Aqui, la curvatura ( f " ( x )) dx también deber estimada. Notar que cuando la muestra es grande
es mas conveniente elegir h pequeño. La mayoría de las posibles elecciones para el parámetro
ancho de banda h basados en un conjunto de datos X de tamaño n dependen de esta estimación. A
continuación se listan algunas elecciones de h:
rango( X )
a) h=
2(1 + log 2 n)
c) h = 1.144σˆn − 1 / 5
d) El método de Sheather y Jones (1991) que propone estimar la curvatura usando también el
método del kernel, pero con un ancho de banda g distinto al que se usa para estimar la densidad.
Los estimadores de densidad de la libreria de Ripley usan este método.
Cao, Cuevas y Gonzalez (1994) hacen una comparación de varios metodos de elegir el ancho de
banda h y llegan a la conclusión de que sin considerar el "boostrapping", el método d es el de
mejor rendimiento.
En S-Plus, la función density es la que produce las estimaciones de la densidad por kernel,
aplicando luego la función plot se puede graficar la fucnión de densidad estimada. El menú
Graph de S-Plus contiene una gráfica que traza el histograma y la grafica de la función de
densidad estimada uno de los siguientes kernels: Gaussiano, rectangular, triangular y coseno. La
ventana de diálogo que aparece es la siguiente:
Edgar Acuna /ESMA 6835 Clasificación 65
0.05
0.04
density(exa1$V1, width = ha)$y
0.03
0.03
0.03
0.02
0.02
0.02
0.01
0.01
0.01
0.0
0.0
0.0
40 60 80 100 40 60 80 100 40 60 80 100
density(exa1$V1, width = ha)$x density(exa1$V1, width = hb)$x density(exa1$V1, width = hc)$x
0.025
0.04
0.025
density(exa1$V1, width = hd)$y
0.03
0.015
0.015
0.02
0.01
0.005
0.005
0.0
0.0
0.0
20 40 60 80 100 120 20 40 60 80 100 120 40 60 80 100
Se han usado los metodos a, b, c, d (width.SJ en la libreria MASS o hsj en la libreria sm) , e (hcv
en la libreria sm y bcv en la libreria MASS)
Se cuando h es pequeño hay muchos picos y que la grafica se suaviza a medida que aumenta el
valor de x. El valor h obtenido por el método de Seather-Jones parece ser el que produce el
mejor ajuste.
El método de kernels fue extendido a distribuciones multivariadas por Cacoullos (1966). En este
caso X 1, X2,… . Xn es una muestra de vectores aleatorios distribuidos con una densidad f(x) en un
espacio de dimensión d. El estimador de la función de densidad usando un kernel multivariado k
y con ancho de banda h será
1 n
x − Xi
fˆ(x) = d
nh
∑ K(
i =1 h
)
la función kernel K, definida para un vector x de dimensión d, debe satisfacer que
∫K (x)dx = 1
Rd
usualmente, pero no siempre, K será una función de densidad multivariada radialmente simétrica
y unimodal. Los kernels más usados son las versiones multivariadas de los definidos
anteriormente. Así
K(x)=
0 en otro caso
1 −1
c d (d + 2)(1 − x' x) si
2
K(x)=
0 en otro caso
K(x)=
0 en otro caso
densidad estimada
E2
E1
ejemplo 1 en S-Plus.
S-Plus de por sí no tiene una función que haga estimación de una función de densidad en dos
variables. Hemos usado la librería de programas en S-Plus que viene con el libro de Venables y
Ripley (1997). El siguiente programa hace la estimación bivariada por kernels guassianos usando
el meétod de Sheather y Jones para estimar h y luego una gráfica de la función de densidad
estimada.
Edgar Acuna /ESMA 6835 Clasificación 67
library("MASSdia")
Libraries MASS and nnet attached
1 n
(x − X i )' S − 1 ( x − X i )
fˆ(x) = d
nh | S |1/ 2
∑
i =1
K(
h2
)
donde S es una estimación de la matriz de covarianza. Esta forma es la que SAS usa para hacer
discriminante usando estimación por kernels. Posible elecciones para h son h=[4/n(d+2)]1/(d+4)
si se usa un kernel gaussiano y h=[8(d+4)(2 π )d /ncd]1/(d+4) si se usa un kernel Epanechnikov.
Kernels Productos.
1 n p
xi − xij
fˆ( x ) = p
nh
∑∏
j =1 i =1
K(
h
)
donde K es un kernel univariado. Un caso más general es considerar un h distinto para cada
variable.
Si las las variables predictoras son binarias 0-1, entonces Aitchison and Aitken (Biometrika,
1976) propusieron el siguiente kernel p-dimensional
n
1
fˆ(x) = p
nh
∑ K (x, x
j =1
j , h)
donde
Edgar Acuna /ESMA 6835 Clasificación 68
p − d 2j d2
K ( x, x j , h) = h (1 − h) j (8.2)
donde d 2j es la distancia euclideana al cuadrado entre x y xj , es decir el número de elementos
diferentes que tienen entre si, y 1/2≤h≤1. Titterington (Technometrics, 1980) estudió varias
maneras de elegir el ancho de banda h. En particular, si se tiene una sola variable Binomial
entonces K(x,y)=h si x=y y K(x,y)=1-h si x≠y y el método de "dejar uno afuera" produce la
siguiente valor óptimo de h
En S-Plus, ni en el libro de Venables y Ripley hay funciones que hacen análisis discriminante
usando estimación de densidad por kernels, en cambio SAS si hace análisis discriminante y
considera todos los kernels anteriormente mencionados, pero no los kernels productos.
Ejemplo 8. El siguiente es un programa en SAS para discriminación por kernels usando los datos
del ejemplo1. Se considera primero el kernel Gaussiano y luego el Epanechnikov.
Calculando h para el Kernel gaussiano resulta 32-1/5=.5 y 2.40*.05=1.20 pare el kernel
Epanechnikov.
prior prop;
title '**Analisis discriminante usando kernel Epanechnikov, con validacion cruzada **';
run;
32 Observations 31 DF Total
2 Variables 30 DF Within Classes
2 Classes 1 DF Between Classes
Prior
APROBA Frequency Weight Proportion Probability
2 -1 -1 2 2
D (X,Y) = (X-Y)' COV (X-Y) F(X|j) = n SUM exp( -.5 D (X,Y ) / R )
j i ji
f 8 0 8
100.00 0.00 100.00
p 0 24 24
0.00 100.00 100.00
Total 8 24 32
Percent 25.00 75.00 100.00
f p Total
2 -1 -1 2 2
D (X,Y) = (X-Y)' COV (X-Y) F(X|j) = n SUM exp( -.5 D (X,Y ) / R )
j i ji
16 p f * 0.6844 0.3156
19 p f * 0.6096 0.3904
27 f p * 0.4392 0.5608
28 f p * 0.4845 0.5155
* Misclassified observation
2 -1 -1 2 2
D (X,Y) = (X-Y)' COV (X-Y) F(X|j) = n SUM exp( -.5 D (X,Y ) / R )
j i ji
f 6 2 8
75.00 25.00 100.00
Edgar Acuna /ESMA 6835 Clasificación 71
p 2 22 24
8.33 91.67 100.00
Total 8 24 32
Percent 25.00 75.00 100.00
f p Total
Discriminant Analysis
32 Observations 31 DF Total
2 Variables 30 DF Within Classes
2 Classes 1 DF Between Classes
Prior
APROBA Frequency Weight Proportion Probability
2 -1 -1 2 2
D (X,Y) = (X-Y)' COV (X-Y) F(X|j) = n SUM exp( -.5 D (X,Y ) / R )
j j i ji
f 8 0 8
Edgar Acuna /ESMA 6835 Clasificación 72
p 0 24 24
0.00 100.00 100.00
Total 8 24 32
Percent 25.00 75.00 100.00
f p Total
2 -1 -1 2 2
D (X,Y) = (X-Y)' COV (X-Y) F(X|j) = n SUM exp( -.5 D (X,Y ) / R )
j j i ji
16 p f * 0.6481 0.3519
27 f p * 0.4519 0.5481
28 f p * 0.4840 0.5160
* Misclassified observation
2 -1 -1 2 2
D (X,Y) = (X-Y)' COV (X-Y) F(X|j) = n SUM exp( -.5 D (X,Y ) / R )
j j i ji
f 6 2 8
75.00 25.00 100.00
p 1 23 24
4.17 95.83 100.00
Total 7 25 32
Percent 21.88 78.13 100.00
f p Total
Discriminant Analysis
32 Observations 31 DF Total
2 Variables 30 DF Within Classes
2 Classes 1 DF Between Classes
Prior
APROBA Frequency Weight Proportion Probability
2 -1 -1 2 2
D (X,Y) = (X-Y)' COV (X-Y) F(X|j) = n SUM ( 1.0 - D (X,Y ) / R )
j j i ji
f 8 0 8
100.00 0.00 100.00
p 1 23 24
4.17 95.83 100.00
Total 9 23 32
Percent 28.13 71.88 100.00
f p Total
2 -1 -1 2 2
D (X,Y) = (X-Y)' COV (X-Y) F(X|j) = n SUM ( 1.0 - D (X,Y ) / R )
j j i ji
16 p f * 0.7298 0.2702
25 f p * 0.4494 0.5506
27 f p * 0.4579 0.5421
* Misclassified observation
2 -1 -1 2 2
D (X,Y) = (X-Y)' COV (X-Y) F(X|j) = n SUM ( 1.0 - D (X,Y ) / R )
j j i ji
f 6 2 8
75.00 25.00 100.00
p 1 23 24
4.17 95.83 100.00
Total 7 25 32
Percent 21.88 78.13 100.00
f p Total
El discriminante lineal produce un error del 6.25% usando validación cruzada-1. Mientras que
usando estimación de densidad por kernel, con anchos de bandas distintos para cada variable
se obtiene 9.38% de error usando kernels gaussinao y Epanechnikov y validación cruzada-1.
El error de clasificación es del 12.50% si se usa kernel gaussiano con igual ancho de banda
para cada variable.
Ejemplo 9. Efecto en el error de clasificación de usar kernels para variables continuas a pesar de
que ellas discretas.
Supongamos que en el ejemplo anterior no se sabe la nota del estudiante en el segundo examen
solamente se sabe si el estudiante pasó (saco 60 o mas) o fracaso (sacó menos de 60). Usando
kernel gaussiano con ancho de banda igual para ambas variables en cada grupo se obtienen de
acuerdo a SAS un error del 21.88% (7/32). Aitchison y Aitken (1976) propusieron usar kernel
productos para hacer análisis discriminante cuando el vector de variable predictoras contenga
variables discretas y continuas. Mas especificamente en nuestro caso
1 n x − xi y − yi
f ( x, y ) = ∑
n i =1
K(
h1
) B(
h2
)
donde K es un kernel continuo, tal como el gaussiano y B es un kernel Binomial, h1 y h2 son sus
respectivos anchos de bandas. La siguiente es una función kda en S-Plus que hace clasificación
por kernels productos para dos variables predictoras, una discreta y otra continua.
Edgar Acuna /ESMA 6835 Clasificación 76
h1 es el ancho de banda para el kernel gaussiano, existen varias alternativas a elegir, aqui se
eligió el método de Seather y Jones, que aparece en la librería MASS (aunque escalado por 4), en
la librería sm y en la libreria Ksmooth de Wand (ver la función dpik).
hbin<-function(x)
{
r2 <- mean(x)
r1 <- 1 - r2
a1 <- length(x) * (r1 - r2) - 1
a2 <- length(x) * (r2 - r1) - 1
k1 <- (r1^2 * a1 + r2^2 * a2) * length(x)
h <- max(0.5, - k1/(a1 * a2))
h
}
La función hbin calcula el ancho de banda por el método de validación cruzada 1, como fue
recomendado por Aitchison y Aitken y encontrado explicitamente por Titterigton.
Edgar Acuna /ESMA 6835 Clasificación 77
La siguiente linea de comandos calcula los anchos de banda para cada variable en cada grupo y el
análisis discriminante por kernel para los datos del ejemplo 1, los cuales estan guardados en el
conjunto de datos exatbin.
> hbin(exatbin[1:24,2])
[1] 0.8678451
> hbin(exatbin[25:32,2])
[1] 0.8888889
> hsj(exatbin[1:24,1])
[1] 5.983159
> hsj(exatbin[25:32,1])
[1] 11.64684
> exakda<-kda(exatbin[,1:2],exatbin[,1:2],clases)
> tablclasif(clases,exakda)
01
0 24 0
1 35
error rate= 9.38 %
>
El error por resubssitución es del 9.38%, menor que en el caso anterior.
rand<-sample(rep(1:10,length=32),32,replace=F)
predkda<-rep(0,32)
for (i in 1:10) {
cat("fold",i,"\n",sep=" ")
predkda[rand==i]<-
kda(exatbin[rand!=i,],exatbin[rand==i,],clases[rand!=i])
}
tablclasif(clases,predkda)
………………………
> tablclasif(clases, predkda)
0 1
0 22 2
1 3 5
error rate= 15.62 %
B<-20
sesgo<-rep(0,B)
while(B>0)
{
ind<-sample(1:32,32,replace=T)
exatbin2<-exatbin1[ind,]
bootkda1<-kda(exatbin2[,1:2],exatbin2[,1:2],exatbin2[,3])
aparente<-mean(bootkda1!=exatbin2[,3])
bootkda2<-kda(exatbin2[,1:2],exatbin1[,1:2],exatbin2[,3])
actual<-mean(bootkda2!=exatbin1[,3])
Edgar Acuna /ESMA 6835 Clasificación 78
sesgo[B]<-actual-aparente
B<-B-1
}
sesgo
bootsesgo<-mean(sesgo)*100
bootsesgo
booterror<-9.38+bootsesgo
> booterror
[1] 18.4425
>
a) Caundo hay normalidad de las variables predictoras en cada clase, el análisis discriminante
lineal (LDA) rinde mejopr que el análisis discriminante por kernel (KDA), pero este último
tiene un buen rendimiento cuando las clases no están bien separadas.
b) Cuando no hay normalidad y la muestra es razonabllemente grande (n>50) el KDA tiene un
buen rendimiento.
c) A diferencia de otros métodos de clasificación que rinde bien para cierto tipo de datos y mal
en otros casos, el KDA es bien homogeneo en su rendimiento.
d) La gran desventaja del KDA es el gran esfuerzo de computación requerido, especialmente si
se tiene un gran número de observaciones ya que cada observación contribuye al kernel. Se
recomienda un proceso de selección de variables ante de aplicar el KDA.
e) Otra desventaja es la “maldición de la dimensionalidad” que significa que el tamaño de
muestra debe aumentar exponencionalmente según la dimensión para que el estimado de la
función de densidad por kernel multidemsional tenga precisión. Por ejemplo para 5
dimensiones se requiere un tamaño de muestra de 768 (Silverman página 94).
Kernels adaptivos:
Usar un acho de banda fijo tiene sus problemas porque para estimar bien las colas de la
distribución hay que suavizar la parte central. Una solución es usar un ancho de banda distinto
por cada punto de la muestra. Silverman (1986) propone el siguiente procedimiento
a) Hallar un estimado piloto de la función de densidad.
b) Definir los factores locales λi de los anchos de bandas locales por
λi = { f ( xi ) / g}− α
donde g es la media geométrica de las f(xi), es decir log(g)=Σlog(f(xi)/n , y α es un parámetro de
sensitividad, ( 0≤α ≤1).
c) El kernel adaptivo se define por
1 n 1 x − xi
fˆ( x ) = ∑ d d K ( )
n i =1 h λi hλi
Mezclas Gaussianas: En este caso la dunción de densidad condicional por clase del vector de
variables predictoras es considerada como una combinación normal de distribuciones
multivariadas con distintos vector de medias pero con igula matriz µj de covarianza Σ Mas
especificamente,
M
f ( x / C j ) = (2πΣ) − 1 / 2 ∑ πi exp( − ( x − µ j )' Σ − 1 ( x − µ j ) / 2)
i =1
Existen muchos algoritmos para árboles de decisión y las diferencias entre ellos están en la
estrategia de podar los arboles, las reglas para dividir los árboles y el tratamiento de valores
perdidos. Entre los principales están:
El término árboles es por la gráfica, aunque los arboles son mostrados creciendo hacia la parte
final de la página. La raíz es el nodo superior, en cada nodo se hace una división hasta llegar a un
nodo terminal u hoja. Cada nodo no-terminal contiene una pregunta en la cual se basa la división
del nodo. Cada hoja contiene el nombre de la clase a la cual pertenece.
La diferencias principales entre los algortimos para construir arboles se hallan en la estrategia
para podar arboles y la regla para particionar los nodos.
En el caso de dos clases el conjunto de datos es dividido en hiperrectangulos donde los lados de
los rectangulos son paralelos a los eje coordenados
Edgar Acuna /ESMA 6835 Clasificación 81
donde algunas de las variables xi son discretas y otras son continuas. Entonces el conjunto Q debe
tenre las siguientes caracteristicas
a) cada división de los nodos depende del valor de una sola variable predictotra
b) Si la variable xk es continua entonces Q incluye todas las preguntas de la forma
{Es xk≤c}, donde c es cualquier número real.
c) Si la variable xk es categórica tomando valores en {b1,b2,… … bm} entonces Q incluye todas
las preguntas de la forma {es xk ∈ A} donde A es un subcojunto cualquiera de
{b1,b2,… … bm}
Por ejemplo si x2, x3 y x4 son variables predictoras continuas y x1 es categórica con valores 0, 1 y
2, entonces Q incluye preguntas de la siguiente forma:
Es x3≤4.5?
Es x4≤-1.4?
Es x1= 0 ó 1?
En CART, si una variable continua xi toma distintos valores xi1,xi2,… ..xiN entonces las preguntas
son de la forma Es xi ≤ci ? donde ci es un punto medio entre dos valores consecutivos de la
variable y si la variable xi es discreta tomando L valores distintos entonces se definen 2L-1 –1
particiones distintas del nodo.
Hay varios métodos de hacer esto, pero la ideal fundamental es que los nodos hijos sean más
puros que los nodos padres. La partición de un nodo t del árbol T se hace de acuerdo a un
criterio que es diseñado para producir nodos hijos que separen mejor las clases que los nodos
padres. Más precisamente si para cualquier nodo s , P(s)={# i≤N:Xi∈ s}/N y
i(s)=φ(p(1/s),p(2/s),… .p(J/s)) es un indice de la impureza del nodo s, donde J es el número de
clases y φes una función de impureza, la cual debe satisfacer ciertas propiedades, entonces la
siguiente es la regla para particionar el nodo t.
Formar el nodo hijo derecho tR y el nodo hijo izquierdo tL tal que
∆i(t)= i(t)-{P(tL)i(tL)+p(tR)i(tR)}
sea máximo.
CART el Coeficiente de Gini como criterio de impureza. El Coeficiente de Gini está definido
por
i(t)= ∑ ∑ p (i / t ) p( j / t )
i j
Edgar Acuna /ESMA 6835 Clasificación 82
CART también usa la regla twoing, especialmente cuando hay más de dos clases, en este caso
estando en el nodo t se elige la división de nodos s que maximiza
pL pR
[∑ | p( j / t L ) − p( j / t R ) |] 2
4
El siguiente es el procedimiento que usa S-Plus para dividir los nodos, el cual se basa en Clark y
Pregibon (1992)
Se considera que cada caso en la muestra es asignado a una hoja ( o nodo terminal) del árbol, asi
que en cada hoja se tiene un tamaño de muestra nik de una distribución multinomial pik. Luego,
la función de verosimilitud es proporcional a
#dehojas # declases
∏ ∏
i =1 k =1
pik
nik
Entonces una medida de Devianza esta dada por el negativo del doble del logaritmo de la función
de verosimilitud. Es decir
# dehojas #declases
D= − 2 ∑i =1
∑n
k =1
ik log( pik )
Donde pik puede ser estimado por pˆik = nik / ni . Considerar que el nodo s se divide en los nodos
R y L, entonces la reducción del la Devianza del árbol se define por
En CART se para cuando el máximo de la reducción total en impureza es menor que una cierta
cantidad, por decir un 1% de la impureza inicial.
Edgar Acuna /ESMA 6835 Clasificación 83
La función tree de Splus para cuando el número de observaciones en cada nodo terminal es menor
que 10 o hasta que la reducción en la devianza del nodo terminal sea menor del 1%. De la
devianza inicial.
Sin embargo en CART se recomienda que el árbol se debe dejar crecer lo más que se pueda luego
podarlo hacia arriba
Para cualquier árbol T y cualquier α≥0, una medida del mérito de T ( o medida de costo-
complejidad) es
Breiman, et. al. Recomiendan usar validación cruzada 10 para estimar el error de clasificación.
Ellos no recomiendan "boostrapping" porque han mostrado que el sesgo se reduce en menos del
40% del verdadero sesgo. Aunque, para el caso de muestras pequeñas el "boostrapping" podria
ser usado.
CART hace uso de “particiones sustitutas” que son partciones que tienen rendimiento similar a la
mejor partición para el repectivo nodo. La similaridad se determina por una medida de
asociación. El procedimiento es como sigue: se determina la mejor particion del nodo
basado en una variable digamos xk con los datos que se tiene disponible.Si cuando se desea
clasificar una observación del conjunto de entrenamiento o de prueba no hay el valor
correspondiente de la variable xk entonces se usa la “partición sustituta “y si no hubiera un valor
observado de la variable envuelta en la variable sustituta entonces seusa una segunda partición
sustituta y asi sucesivamente. Esto es algo asimilar a cuando en un modelo lineal se reemplaza el
valor perdido de una variable predictora por la regresión con la variable predictora
restante que esta m’as altamente correlacionada con ella.
La función tree de S-Plus permite hacer clasificación por árboles. Aunque aquí hemos usado la
librería treefix del libro de Venables y Ripley que corrige algunos defectos de la función original.
Ejemplo 12. En este ejemplo se aplica el método de árboles a los datos del ejemplo 1.
library(nnet)
> library(treefix, first=T)
> arbol<-tree(clases~E1+E2)
> summary(arbol)
Classification tree:
tree(formula = clases ~ E1 + E2)
Edgar Acuna /ESMA 6835 Clasificación 84
30 1.0000000 0.0000000
31 0.4285714 0.5714286
32 1.0000000 0.0000000
> predi<-apply(ajuste,1,which.is.max)
> predi
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
222222222 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 2 2 1 1 2
32
1
> c("F","P")[predi]
[1] "P" "P" "P" "P" "P" "P" "P" "P" "P" "P" "P" "P" "P" "P" "P" "P" "P" "P" "P" "P"
[21] "P" "P" "P" "P" "F" "F" "P" "P" "F" "F" "P" "F"
>
En este ejemplo en la etapa inicial todas las observaciones están en un grupo, entonces
n1,P=24, n1,F=8 y n1=32 y pˆ1, P =24/32=0.75 y pˆ1, F =8/32=0.25. Asi que la devianza D=-
2[24log(0.75)+8log(0.25)=35.99.
En la primera partición
P Your text
E1<63
p
F
f p
100
p p
p
p p p p
p p
p
p pp
80
p
p p
60
E2
p
p
p
f p
p
40
f
f f
f
p
f p
f
20
40 50 60 70 80 90 100
E1
Ejemplo 13. En el siguiente program se aplica clasificación por árboles a los datos del ejemplo 3.
Además se usa clasificación cruzada para mejor la estimación del error.
sico<-read.table("a:discdat.dat",header=T)
arbol<-tree(diag~x1+x1+x3+x4+x5,data=sico)
arbol
plot(arbol,type="u")
text(arbol)
title("Clasificacion usando arboles")
cvtr<-cv.tree(arbol,FUN=prune.tree, rand=1:45)
cvtr
best.tree<-prune.tree(arbol,best=3)
best.tree
plot(best.tree, type="u")
text(best.tree)
title("Clasificacion usando el mejor arbol")
ajus<-predict(best.tree)
ajus
pred<-apply(ajus,1,which.is.max)
pred
c("I","W")[pred]
summary(best.tree)
> sico<-read.table("a:discdat.dat",header=T)
> arbol<-tree(diag~x1+x1+x3+x4+x5,data=sico)
> arbol
node), split, n, deviance, yval, (yprob)
* denotes terminal node
Edgar Acuna /ESMA 6835 Clasificación 87
$dev:
[1] 54.50130 54.82147 61.34824 72.84285 70.35433
$k:
[1] -Inf 0.4308328 1.5518394 5.6012424
[5] 21.8604572
$method:
[1] "deviance"
attr(, "class"):
[1] "prune" "tree.sequence"
> best.tree<-prune.tree(arbol,best=3)
> best.tree
node), split, n, deviance, yval, (yprob)
* denotes terminal node
7 0.3333333 0.6666667
8 0.7857143 0.2142857
9 0.7857143 0.2142857
10 0.7857143 0.2142857
11 0.7857143 0.2142857
12 0.7857143 0.2142857
13 0.3333333 0.6666667
14 0.7857143 0.2142857
15 0.3333333 0.6666667
16 0.3333333 0.6666667
17 0.0000000 1.0000000
18 0.3333333 0.6666667
19 0.3333333 0.6666667
20 0.0000000 1.0000000
21 0.0000000 1.0000000
22 0.0000000 1.0000000
23 0.0000000 1.0000000
24 0.3333333 0.6666667
25 0.0000000 1.0000000
26 0.7857143 0.2142857
27 0.3333333 0.6666667
28 0.0000000 1.0000000
29 0.3333333 0.6666667
30 0.0000000 1.0000000
31 0.0000000 1.0000000
32 0.7857143 0.2142857
33 0.0000000 1.0000000
34 0.0000000 1.0000000
35 0.0000000 1.0000000
36 0.0000000 1.0000000
37 0.0000000 1.0000000
38 0.0000000 1.0000000
39 0.0000000 1.0000000
40 0.0000000 1.0000000
41 0.7857143 0.2142857
42 0.3333333 0.6666667
43 0.0000000 1.0000000
44 0.3333333 0.6666667
45 0.0000000 1.0000000
> pred<-apply(ajus,1,which.is.max)
> pred
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
211111211 1 1 1 2 1 2 2 2 2 2 2 2
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
2 2 2 2 1 2 2 2 2 2 1 2 2 2 2 2 2 2
40 41 42 43 44 45
2 1 2 2 2 2
> c("I","W")[pred]
[1] "W" "I" "I" "I" "I" "I" "W" "I" "I" "I" "I" "I" "W"
[14] "I" "W" "W" "W" "W" "W" "W" "W" "W" "W" "W" "W" "I"
[27] "W" "W" "W" "W" "W" "I" "W" "W" "W" "W" "W" "W" "W"
Edgar Acuna /ESMA 6835 Clasificación 89
Classification tree:
snip.tree(tree = arbol, nodes = c(4, 5))
Variables actually used in tree construction:
[1] "x5" "x4"
Number of terminal nodes: 3
Residual mean deviance: 0.7101 = 29.82 / 42
Misclassification error rate: 0.1556 = 7 / 45
Clasificacion usando el mejor arbol
x5<2.5
|
x4<1.5
W
I W
Notar que hay un error del clasificación del 15.5%, usando validación cruzada
Ventajas:
Desventajas:
El proceso de selección de variables es sesgado hacia las variables con mayor valores distintos.
La superficie de prediccion no es muy suave, ya que son planos.
Edgar Acuna /ESMA 6835 Clasificación 90
Las primeras ideas fueron introducidas por McCulloch y Pits (1943). Posteriormente, Rosenblatt
(1958, 1962) introdujo el concepto de “Perceptron” ( conjunto de neuronas) y lo trató de aplicar a
clasificación. Pero no fue hasta 1985, con los trabajos de Hinton, Rumellhart y Williams que
presentaron el algoritmo de “backpropagation” para el aprendizaje de una red neural, cuando
estas comenzaron a llamar la atención de la comunidad científica. En estadística los trabajos de
Ripley (1993) y Chen y Titterigton (1994) fueron pioneros en la incursión de los estadísticosa en
redesa neurales.
Los usos en estadística de las redes neurales artificiales, ANN por sus siglas en inglés (muchas
veces se elimina la palabra artificiales) incluyen:
a. Análisis Discriminante
b. Regresión
c. Análisis por conglomerados.
d. Estiamción de densidades
Hopfield Networks
Kohonen's Self-Organizing Maps
Adaptive Resonance Theory
Diagramas de redes
Las neuronas son representadas por circulos y cajas, mientras que las conecciones entre ellas son
representadas por flechas:
Los circulos representan variables observadas con el nombre adentro del circulo.
Las cajas representan valores calculados con una función de uno o más argumentos. El simbolo
dentro de la caja indica el tipo de función.
Las flechas indican que el punto de partida de la flecha es un argumento de la función calculada
en el punto final de la flecha. Cada flecha tiene usualmente un parametero correpondiente a ser
estimado.
Dos lineas paralelas indican que los valores en cada extremo son ajustado por minimos
cuadrados, máxima verosimiltud o algún otro criterio de estimación.
X Y
fj representa a la función de activación y wij son los pesos, que los estadísticos llamamos
parámetros, La red neural aprende los pesos de los datos que se han recolectado.
Edgar Acuna /ESMA 6835 Clasificación 92
Nombre Función
Lineal Act(x)=x
Logística Act(x)=(1+e-x)-1
Gaussiana Act(x)=e-x2/2
Threshold Act(x)=0 si x<0, 1 en otro caso
En las siguientes figuras se muestran perceptron que son usadas en regresión logística y análisis
discriminante respectivamente, este último también es llamado ADELINE (Adaptive Linear
Element, ver Widrow and Hoff (1960). En clasificación, se prefiere usar una variable binaria yj
para representar la clase j, y fj es una función “ threshold” o la función logística.
En regresión lineal fj (w)=w.
X1
W1
W2
X2 Y
W3
Variable Dependiente
Valor Predicho
X3
Variables Independientes
Edgar Acuna /ESMA 6835 Clasificación 93
X1
Y
X2
Variable Binaria
Valor Predicho
X3
Variables Independientes
Una red neural de dos niveles puede ser escrita en dos ecuaciones
z j = φh (α j + ∑w
i
ij xi )
y k = φo (α k + ∑w j
ik xi )
Aqui zj son las unidades del nivel escondido (“Hidden Layer”) , yk las unidades de salida, φo y φh
son funciones de activación. Casi siempre φh es la función logística, también conocida como la
función de activación sigmoidal, φo puede ser lineal, logística o “threshold”. Sustituyendo la
primera ecuación en la segunda se obtiene
y k = φo (α k + ∑w j
jk φh (α j + ∑w
i
ij xi ))
donde wij y αi representan los pesos, φh es una función de activación tipicamente logística y φo es
una función de activación usualmente lineal, logistica o "threshold".
Edgar Acuna /ESMA 6835 Clasificación 94
El MLP también es llamado red de alimentación hacia adelante (FFNN) o red de propagación
hacia atras.
Esto es equivalente a estimación en estadística. Los pesos w son elegidos de tal manera que
alguna medida de ajuste se minimize.
Para Regresión:
n J
E= ∑ ∑ ( yˆ
i =1 j =1
i
j − y ij ) 2
Para clasificación:
E= ∑ ∑ [y
i j
ij log yˆij + (1 − y ij ) log(1 − yˆij )]
Métodos de Minimización de E.
Sea w la matriz de pesos de la red neural entonces la gradiente de E(w) es un campo vectorial de
derivadas definido por
dE ( w) dE ( w)
∇ E ( w) = ( , ,......)
dw1 dw 2
Por la forma del modelo de una red neural la gradiente puede ser calculada usando la regla de la
cadena y a través del aloritmo de "Backpropagation".
Una aproximación lineal a E(w) en una vecindad de una matriz de pesos wo esta dada por
E (w) ≈E (w o ) + ∇ E ( w o )(w − w o )
También se puede usar una aproximación de segundo orden que involucra el uso de la matriz
Hessiana H-1= ∇∇ E de segundas derivadas.
E puede ser minimizada usando métodos de análisis numérico y modelos nolineales incluyendo:
Gradiente Descendente, métodos Quasi-Newton (recomendado si el número de pesos es menor de
1000), Método Gradiente Conjugado (recomendado si hay una gran cantidad de pesos a ser
estimados) y "Simulated Annealing", Algoritmos Genéticos.
Edgar Acuna /ESMA 6835 Clasificación 95
Regularización: En este caso se se añade una penalidad a E(w) y luego se minmiza. Más
especificamente,
Minw[E(w)+λφ(w)].
Aquí w es la matriz de pesos, E(w) es el error de predicción, λes la constante de regularización y
φes la función de penalidad del modelo.
El ejemplo más simple es la regularización conocido como “weight decay” (deterioro de pesos)
definido como
Minw[E(w)+λΣw2
Promediar: En este caso se eligen varios valores iniciales para el proceso iterativo de minimizar
E(w) y se promedian las predicciones obtenidas.
Añadir ruido. En este caso se añade un ruido (“noise”) a cada variable de entrada y luego se
ajusta la red neural. Se repite el proceso varias veces y luego se promedia.
a) Son buenos para hacer predicciones pero malos para ser entendidos.
b) Buenos para analizar conjuntos de datos de gran tamaño y de estructura compleja.
c) Pueden rendir mejor o peor que los métodos estadísticos dependiendo del tipo de problema.
d) Carecen de una buena teoría estadística para hacer inferencias, diagnósticos y selección de
modelos.
m
y =α + ∑ β φ (|| x −
j =1
j j c j ||)
donde cj son centros pre-especificados, α y βj son pesos a ser estimados, las φj son las funciones
bases usualmente se consideran las mismas para todo j y las mas usadas son la gaussiana
φ(r)=exp(-r2/2), la cuadrática φ(r)= r 2 + ar + b y la "thin plate spline" φ(r)=r2log(r). El modelo
es muy similar a mezclas gaussianas y a estimadores de densidad por kernel. Los centros son
elegidos usando análisis por conglomerados, knn, mezclas normales o minimos cuadrados
ortogonales y el número de componentes m es elegido de tal manera que no ocurra "underfit" o
"overfit" y usualmente se aplica validación cruzada.
> library(nnet)
> clasnum<-class.ind(clases)
> rednota<-nnet(examenes,clasnum,entropy=T,size=2,maxit=1000)
# weights: 12
initial value 45.542762
final value 35.989449
converged
> summary(rednota)
a 2-2-2 network with 12 weights
options were - entropy fitting
b->h1 i1->h1 i2->h1
-0.01 -3.59 -0.53
b->h2 i1->h2 i2->h2
-0.41 -0.42 -0.45
b->o1 h1->o1 h2->o1
-1.10 -1.46 0.17
b->o2 h1->o2 h2->o2
1.10 1.18 -0.62
> rednota$fit
f p
[1,] 0.2499974 0.750001
[2,] 0.2499974 0.750001
[3,] 0.2499974 0.750001
[4,] 0.2499974 0.750001
[5,] 0.2499974 0.750001
[6,] 0.2499974 0.750001
[7,] 0.2499974 0.750001
[8,] 0.2499974 0.750001
[9,] 0.2499974 0.750001
[10,] 0.2499974 0.750001
[11,] 0.2499974 0.750001
[12,] 0.2499974 0.750001
[13,] 0.2499974 0.750001
[14,] 0.2499974 0.750001
Edgar Acuna /ESMA 6835 Clasificación 97
> rednota$fit
f p
[1,] 0.000000e+000 1.00000000000
[2,] 0.000000e+000 1.00000000000
[3,] 0.000000e+000 1.00000000000
[4,] 0.000000e+000 1.00000000000
[5,] 0.000000e+000 1.00000000000
[6,] 0.000000e+000 1.00000000000
[7,] 0.000000e+000 1.00000000000
[8,] 0.000000e+000 1.00000000000
[9,] 0.000000e+000 1.00000000000
[10,] 0.000000e+000 1.00000000000
[11,] 0.000000e+000 1.00000000000
[12,] 0.000000e+000 1.00000000000
[13,] 0.000000e+000 1.00000000000
[14,] 0.000000e+000 1.00000000000
[15,] 0.000000e+000 1.00000000000
[16,] 0.000000e+000 1.00000000000
[17,] 0.000000e+000 1.00000000000
[18,] 0.000000e+000 1.00000000000
[19,] 0.000000e+000 1.00000000000
[20,] 0.000000e+000 1.00000000000
[21,] 9.146935e-006 1.00000000000
[22,] 0.000000e+000 1.00000000000
[23,] 0.000000e+000 1.00000000000
[24,] 0.000000e+000 1.00000000000
[25,] 1.000000e+000 0.00000000000
[26,] 1.000000e+000 0.00000000000
[27,] 9.999601e-001 0.00001783479
[28,] 9.999994e-001 0.00000000000
[29,] 1.000000e+000 0.00000000000
[30,] 1.000000e+000 0.00000000000
[31,] 1.000000e+000 0.00000000000
[32,] 1.000000e+000 0.00000000000
> predic<-apply(rednota$fit,1,which.is.max)
> c("F","P")[predic]
[1] "P" "P" "P" "P" "P" "P" "P" "P" "P" "P" "P" "P" "P" "P" "P" "P" "P" "P" "P" "P"
[21] "P" "P" "P" "P" "F" "F" "F" "F" "F" "F" "F" "F"
Ejemplo 16. Para los datos del ejemplo 3 el programa en S-Plus es como sigue:
sico<-read.table("a:discdat.dat",header=T)
targets<-class.ind(sico$diag)
red<-nnet(sico[,-1],targets,entropy=T,size=2,maxit=4000)
summary(red)
red$fit
pr<-apply(red$fit,1,which.is.max)
c("I","W")[pr]
Edgar Acuna /ESMA 6835 Clasificación 99
>library(nnet)
> sico<-read.table("a:discdat.dat",header=T)
> targets<-class.ind(sico$diag)
> red<-nnet(sico[,-1],targets,entropy=T,size=2,maxit=4000)
# weights: 18
initial value 63.946031
iter 10 value 34.827280
iter 20 value 25.418224
iter 30 value 21.030965
iter 40 value 19.235502
iter 50 value 19.213482
final value 19.213327
converged
> summary(red)
a 5-2-2 network with 18 weights
options were - entropy fitting
b->h1 i1->h1 i2->h1 i3->h1 i4->h1 i5->h1
-545.32 78.93 34.11 88.06 46.63 19.72
b->h2 i1->h2 i2->h2 i3->h2 i4->h2 i5->h2
307.72 -64.21 -175.49 95.56 -14.74 -79.88
b->o1 h1->o1 h2->o1
0.51 -3.81 53.18
b->o2 h1->o2 h2->o2
-0.51 3.81 -54.32
> red$fit
I W
1 0.62499058 0.3750222
2 0.62501740 0.3749954
3 1.00000000 0.0000000
4 0.62501740 0.3749954
5 1.00000000 0.0000000
6 1.00000000 0.0000000
7 0.62499058 0.3750222
8 1.00000000 0.0000000
9 1.00000000 0.0000000
10 1.00000000 0.0000000
11 0.62501740 0.3749954
12 1.00000000 0.0000000
13 1.00000000 0.0000000
14 1.00000000 0.0000000
15 0.03571374 0.9642853
16 0.03571374 0.9642853
17 0.03571374 0.9642853
18 0.03571374 0.9642853
19 0.03571374 0.9642853
20 0.03571374 0.9642853
21 0.03572561 0.9642734
22 0.03571374 0.9642853
Edgar Acuna /ESMA 6835 Clasificación 100
23 0.03571374 0.9642853
24 0.62499058 0.3750222
25 0.03571374 0.9642853
26 0.03571374 0.9642853
27 0.03571374 0.9642853
28 0.03571374 0.9642853
29 0.03571374 0.9642853
30 0.03571374 0.9642853
31 0.03571374 0.9642853
32 0.62501740 0.3749954
33 0.03571374 0.9642853
34 0.03571374 0.9642853
35 0.03571374 0.9642853
36 0.03571374 0.9642853
37 0.03571374 0.9642853
38 0.03571374 0.9642853
39 0.03571374 0.9642853
40 0.03571374 0.9642853
41 0.62501740 0.3749954
42 0.03571374 0.9642853
43 0.03571374 0.9642853
44 0.03571374 0.9642853
45 0.03571374 0.9642853
> pr<-apply(red$fit,1,which.is.max)
> c("I","W")[pr]
[1] "I" "I" "I" "I" "I" "I" "I" "I" "I" "I" "I" "I" "I" "I" "W" "W" "W" "W" "W" "W"
[21] "W" "W" "W" "I" "W" "W" "W" "W" "W" "W" "W" "I" "W" "W" "W" "W" "W" "W" "W"
"W"
[41] "I" "W" "W" "W" "W"
Hay 4 de 45 observaciones mal clasificadas para una tasa de error del 8.88%
Edgar Acuna /ESMA 6835 Clasificación 101
REFERENCIAS
1. Acuña, E and Ramirez, Nazario (1995) Neural Networks and Satistical Pattern recognition. A
proposal for DEPSCOR program. UPR-RUM. Puerto Rico.
2. Afifi, A.A and Clark, V. (1990) Computer-Aided Multivariate Analysis. Second edition,
Chapman and Hall, New York.
3. Aitchison, J. and Aitken, C.G.G., Multivariate binary discrimination by the kernel method,
Biometrika, 63, 413.420.
4. Breiman, L. Friedman, J.H., Olshen, R. y Stone, C.J. (1984) Classification and Regression
Trees. Wadsworth, Belmont, CA.
5. Cornfield, J. (1962). Joitn dependence of risk coronary heart disease on serum cholesterol
and systolic blood preassure. Fed Amer. Socs. Exper. Biol. Proc Suppl. 11, 58-61.
6. Efron, B. (1975). The efficiency of logistic regression compared to normal discrimant
analysis. Journal of the American Statistical Association.70, 892-898.
7. Enas, G.G and Choi, S.C. (1986). Choice of the smoothing parameter and efficiency of the k-
nearest neigbour classification. Comput. Math. Applic. 12A, 235-244.
8. Fisher, R.A. (1936). The use of multiple measurements in taxonomic problems. Annals of
Eugenics, 7, 179-188.
9. Fix, E. and Hodges, J.L. (1951) Discriminatory analysis, nonparametric estimation:
consistency properties. Reporrt No. 4, project, No. 21-49-004. UASF School of Aviation
Medicine, Texas.
10. Hand, D.J. (1981). Discrimination and classification. John Wiley, New York.
11. Hand, D.J. (1997). Construction ans Assessmnet of Classification Rules. John Wiley, New
York.
12. Hawkins, D.M. (1976). A test for multivariate normality and homocedasticy. Technometrics,
23, 105-110.
13. Hosner, D.W. Jr and Lemeshow, S. (1989). Applied logistic regression. New York, Wiley.
14. Lachenbruch, P.A. and Mickey, M.R. (1975) Discriminant Anaalysis, Hafner Press, New
York.
15. Marks, S. and Dunn, O.J. (1974). Discriminant functions when covariance matrices are
unequal. J. Amer. Statist. Assoc. 69, 555-559.
16. McLachlan, G.J. (1992) Discriminant Analysis and Statistical pattern recognition, John
Wiley, New York.
17. Michie, D. Spiegelhalter, D.J and Taylor, C.C. (1994) Machine Learning, Neural aand
Statistical classification.
18. Panel on Discriminant Analysis, Classification, and Clustering, Committee on Applied and
Theoretical Statistics, National research Council (1988). Discriminant Analysis and
Clustering. National Academic Press, Washington D.C.
19. Press, S.J. and Wilson, S. (1978), Choosing between logistic regression and discriminant
analysis. J. of Amer. Statist. Assoc.73, 699-705.
20. Ripley, B. (1996). Pattern Recognition and Neural Networks. Cambridge University Press.
21. Rosemblatt, M. (1956) Remarks on some nonparametric estimates of a density function. Ann
Math. Statist. 27, 832-837.
22. SAS Institute. (1990). SAS/STAT Users Guide. Fourth Edition. Cary, North Carolina.
23. Silverman, B.W (1986). Density Estimation for Statistics and Data Analysis. Chapman and
Hall. London
24. Venables, W.N. and Ripley B.D. (1994). Modern Applied Statistics with S-Plus. Springer-
Verlag, New York.
Edgar Acuna /ESMA 6835 Clasificación 103
25. Weiss, S.M. and Kulikowski, C.A. (1991) Computer Systems that learn: Classification and
Predition methods from Statistics, Neural nets, Machine learning and Expert systems.
Morgan Kaufman, San Mateo, CA.