Anda1 PDF
Anda1 PDF
Anda1 PDF
ANÁLISIS DISCRIMINANTE
X1 X2 X3 X4 X5 ... Diagnóstico
x11 x12 x13 x14 x15 ... Benigno
x21 x22 x23 x24 x25 ... Benigno
... ... ... ... ... ... ...
... ... ... ... ... ... Maligno buen tratamiento
... ... ... ... ... ... Maligno buen tratamiento
... ... ... ... ... ... ...
... ... ... ... ... ... Maligno mal tratamiento
... ... ... ... ... ... Maligno mal tratamiento
xn1 xn2 xn3 xn4 xn5 ... Maligno mal tratamiento
X1 X2 X3 X4 X5 ... Asignación
x11 x12 x13 x14 x15 ... Grupo 1
x21 x22 x23 x24 x25 ... Grupo 1
... ... ... ... ... ... ...
xi1 xi2 xi3 xi4 xi5 ... Grupo k
... ... ... ... ... ... ...
xn1 xn2 xn3 xn4 xn5 ... Grupo q
• X = (xij )i=1,...,n;j=1,...,p
πk fk (x)
P (G = k|X = x) = Pq .
k=1 πk fk (x)
• Regla de Bayes: En el caso general, asignamos x al grupo K si
• Sea Ĝ(X) =
( “estimación de G dado X” y la función de perdida 0-1
0 si K = k (acertamos)
L(K, k) = .
1 si K 6= k (no acertamos)
La regla de Bayes minimiza la perdida 0-1 esperada E[L(Ĝ(X), G)]
La regla de Bayes se puede ver como la mejor posible para alcanzar la
menor tasa de mal-clasificación esperable (no necesariamente 0...).
y
Var(X1) Cov(X1, X2) ... Cov(X1, Xp)
Cov(X1, X2) Var(X2) ... Cov(X2, Xp)
Σ=
...
... ... ...
Cov(X1, Xp) Cov(X2, Xp) ... Var(Xp)
(Σ
b tiene las varianzas muestrales en la diagonal y las covarianzas fuera).
• Distancia de Mahalanobis:
p
d(x; µ, Σ) = (x − µ)0Σ−1(x − µ)
’Asignamos x al grupo 2’ si
π2f2(x) π1f1(x)
’asignar al grupo 2’ si >
c(2|1) c(1|2)
1 0
P
Σk = n
c
i∈I k
(x i − x k )(x i − x k ) y el estimador combinado (pooled)
k
de Σ es q
1 X
Σ
b= (nk − 1)Σck
n−q
k=1
X1 X2 X3 X4 X5 ... Diagnóstico
x11 x12 x13 x14 x15 ... Grupo 1
x21 x22 x23 x24 x25 ... Grupo 1
... ... ... ... ... ... ...
xi1 xi2 xi3 xi4 xi5 ... Grupo k
... ... ... ... ... ... ...
xn1 xn2 xn3 xn4 xn5 ... Grupo q
q q
1XX X nk
= (xij −xkj )(xij 0 −xkj 0 )+ (xkj −xj )(xkj 0 −xj 0 ) = Wjj 0 +Bjj 0
n n
k=1 i∈Ik k=1
• Usando matrices:
up
t(z) = (t1(z), ..., td(z)) para z = (z1, ..., zp)0 y tj (z) = u0j z
i) Se pueden usar W −1 B y los autovectores serı́an los mismos pero no los autovalores...
ii) A efectos de clasificación no siempre es óptimo tomar d en su valor máximo...
• Ejemplo (pequeño para echar cuentas...): Tenemos la muestra
patrón:
X1 X2 Tipo fallo
1 1 1
2 1 1
1 2 1
-1 0 2
0 -1 2
√ √ √
0 1
t(z) = u z = ( 2/2, 2/2) = 2/2,
0
√ √
t(G1) = 4 2/3 y t(G2) = − 2/2
• Como
√ √ 2
kt(G1) − t(z)k = (5 2/6) < (− 2) = kt(G2) − t(z)k2,
2 2
\
Σ k (α) = (1 − α)Σk + αΣ para α ∈ [0, 1]
c b
Validación y selección de modelos
• Tabla de clasificación: “fuera diagonal” ⇔ “mal clasificados”:
Predic.
Real 1 2 ... q
1 ♣
2 ♣
...
q ♣
Predic.
+ −
Real Positivos VP FN P
Negativos FP VN N
VP VP VN VN
“Sensibilidad” = V P +F N = P y “Especificidad” = V N +F P = N
• Sea Ĝ(X) = “estimación de G dado X” y la función de perdida 0-1
(
0 si K = k (acertamos)
L(K, k) = .
1 si K 6= k (no acertamos)
Err = E[ErrX ]
Código:
X <- matrix(rnorm(m*n),ncol=m)
G <- X[,m]>=0
ajuste <- lda(G~X[,1:(m-1)])
table(predict(ajuste)$class,G)
• Con muestras patrón X aleatorias n = 100 y p = m − 1 obtenemos:
Con m = 4:
0 1
0 28 24 <- Lo esperable (mala clasificación)...
1 22 26
Con m = 60 (sobreajuste):
0 1
0 42 4 <- Mejoramos...
1 4 50
30
30
●
25
25
25
●
●
20
20
20
●
●
● ●●
● ●
15
15
15
● ●
●
y
● ●
●
10
10
10
● ● ●
● ●
●
●
● ●
5
5
●
●
●
●
0
0
●
−5
−5
−5
−4 −2 0 2 4 −4 −2 0 2 4 −3 −2 −1 0 1 2 3 4
x x x
30
30
30
●
25
25
25
●
20
20
20
● ●
15
15
15
●
●
y
y
●
●
10
10
10
● ●
●
● ●
● ●
● ●
● ● ● ●
5
5
● ●
● ●
● ●
0
0
● ●
●
−5
−5
−5
−4 −2 0 2 −2 −1 0 1 2 3 4 −2 0 2 4
El sesgo está siempre presente aunque aumentemos n. Un n grande permite usar modelos más
complejos con p mayores. Desgraciadamente, muchos problemas actuales tienen p grande y n pequeño...
• Selección de modelos: Varios modelos (con distintas variables o grado
de complejidad) y queremos elegir el más interesante.
Métodos “paso a paso” de selección de variables
Penalizar por el número de parámetros efectivos libres en el modelo
(AIC, BIC,...)
Técnicas de validación cruzada
1 2 3 4 ... K
Train Train Train Test ... Train
• Leave-one-out: n
1X b
LOO = L(G−i(xi), gi)
n i=1
donde G b −i(xi) es la clase predicha para xi cuando la regla se ha obtenido
al eliminar la fila i-esima de X .
• Paquete: library(class)
• Parámetro m:
m grande ⇒ “menos flexible (mayor sesgo) y menor variabilidad”
m pequeño ⇒ “más flexible (menor sesgo) y mayor variabilidad”
• Árboles de clasificación (CART-classification and regression trees):
• Paquete: library(rpart)
• Support Vector Machines (SVM):
Si tenemos clases separables linealmente buscamos el hiperplano que
separa las clases con el mayor “margen” posible:
• Paquete: library(e1071)
• ¿Qué pasa si las clases no son separables linealmente?
Se transforman los datos a un espacio de dimensión mayor donde sı́
son separables: xi ∈ Rp 7→ Φ(xi) ∈ Rr con r ≥ p
Ejemplo: G1 = “dentro bola B((2, 3)0, 1)” y G2 = “fuera bola”
4.5
●● ●● ● ● ● ●
●
● ●● ●● ● ● ●● ● ●
●
● ●● ● ● ● ●
●
● ● ●● ● ● ● ●●●● ● ●
● ● ● ● ● ●
● ● ● ●● ●● ●
●● ●●
●
●
● ● ●●● ●●● ●
● ● ●● ● ●● ● ● ●● ● ● ● ● ●
● ● ● ●
●
● ●●
●
●● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ●
●● ●● ● ●● ● ● ● ● ● ●● ● ●
●
● ● ● ● ● ● ● ● ● ● ●
● ●● ●● ●● ●
4.0
● ●
●● ●●● ●
●
●● ●● ● ● ● ● ●
●
●● ●● ● ● ● ●
● ●
● ● ● ● ● ●● ●
● ● ●●
● ● ● ●● ●● ● ● ● ● ●● ● ●
● ● ● ● ● ● ●
●● ●
● ● ● ● ● ● ●●● ● ● ●● ● ● ● ●● ● ●
● ● ● ●
●● ● ● ● ●●●● ●● ●●● ●
●
● ● ● ● ●● ● ● ● ●● ●
● ● ● ● ● ●● ●
● ● ● ● ● ●●● ● ● ● ● ●● ● ● ● ● ● ●
● ●
● ● ●● ● ● ●● ● ● ● ●●●●
3.5
●● ●●
●
●● ●●● ●● ● ●
● ● ● ● ●
● ●● ● ● ● ● ● ●
●● ● ● ●● ● ● ●
●
● ●● ● ● ● ● ●
● ● ● ● ●●●● ● ●● ● ● ● ● ● ● ● ● ●●
● ● ●
● ●● ● ● ● ● ● ● ● ●
●
●● ● ●● ● ● ● ● ●
●●● ● ● ● ● ● ● ●● ● ● ● ● ● ● ●● ● ●● ●● ● ● ● ● ● ● ●
● ● ● ●
●● ● ●● ● ●● ● ●
● ●● ●
●●
●●● ● ●●●
●●● ● ● ●● ●
3.0 ● ●
● ● ● ●
● ●
● ● ●
●●●●
● ● ●
●●● ●●
●● ● ●
●
●● ●● ●
●● ●
●●
●●
●● ● ●
● ● ● ● ●●
● ●
● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ●● ● ● ●
●● ● ● ● ●●● ● ●●● ● ● ●●● ●
● ● ●
● ● ●●
● ●●
● ● ●●● ●● ● ●
● ● ● ● ● ● ● ● ● ● ●
●
● ●● ● ●
● ● ● ● ● ●● ●● ● ● ●
● ● ● ● ● ● ●
●●● ●● ●● ●●
●
●
●● ●●
● ● ●● ● ● ●
●
2.5
● ● ●● ● ●● ●
●●●● ● ● ●
● ● ● ● ● ● ● ● ● ●● ● ● ● ●● ● ● ● ●
●● ● ●● ●
●
● ●
● ● ●● ● ●●●●● ●●
● ● ● ● ●●● ●●● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ●● ● ●●
● ●● ● ● ● ● ● ●● ● ● ●● ● ●● ● ●
● ●● ●
●
● ● ●●
●
●● ●● ●● ● ● ●● ● ● ● ● ● ● ● ●
● ● ● ●
●● ● ● ●● ● ● ● ● ●● ●
● ●
● ●
● ● ● ● ● ● ● ● ●● ●●● ●● ●● ● ●● ● ● ● ●
● ● ● ●
2.0
● ● ● ●
●● ● ● ●● ● ● ● ●●
● ● ● ● ● ● ● ●
● ●
● ● ●● ● ● ● ● ●●
●● ●● ● ● ●
● ●●
● ● ●
● ●
● ● ●
●
●
●● ●●● ●● ● ● ● ●
● ● ● ●●
● ●
● ● ● ●
● ●
●
●●●●● ● ● ● ●● ● ●● ● ● ● ●● ● ● ● ●●
● ●● ●● ●●
● ● ● ● ● ● ● ●● ● ●
● ● ● ● ● ●● ● ● ● ● ●
● ●●●● ●●● ● ● ●● ● ● ● ● ● ● ●
1.5
●●● ● ●● ● ● ●
G1 y G2 no separables linealmente con {x1, x2} y sı́ con {x1, x2, x21, x22}
“Nucleos” (kernel trick) para trabajar a nivel computacional