0% encontró este documento útil (0 votos)
28 vistas28 páginas

Análisis Discriminante y Clasificación

Este documento presenta un resumen del análisis discriminante. Explica que este método clasifica objetos en dos o más grupos basándose en las relaciones entre variables que mejor discriminan entre los individuos. Describe cómo construir reglas de decisión para asignar nuevos objetos a uno de los grupos. Finalmente, ilustra cómo aplicar análisis discriminante para clasificar datos sobre patrimonio y deudas de personas en dos grupos de riesgo de impago.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
28 vistas28 páginas

Análisis Discriminante y Clasificación

Este documento presenta un resumen del análisis discriminante. Explica que este método clasifica objetos en dos o más grupos basándose en las relaciones entre variables que mejor discriminan entre los individuos. Describe cómo construir reglas de decisión para asignar nuevos objetos a uno de los grupos. Finalmente, ilustra cómo aplicar análisis discriminante para clasificar datos sobre patrimonio y deudas de personas en dos grupos de riesgo de impago.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

ANALISIS DISCRIMINANTE

Carlos Véliz C.

March 5, 2018
Introduction
Análisis discriminante
I Los objetos están clasificados en 2 o más grupos.
I Se trata de hallar relaciones entre las variables que mejor
discriminen a los individuos.
I Construir reglas de decisión que asignen a uno de los grupos a
los nuevos objetos.

I Condiciones:
Variables independientes numéricas Número de variables
menor o igual al número de objetos menos 2.
Número de funciones discriminantes es el mı́nimo entre el
número de variables y el número de grupos menos 1
I Las matrices de varianza covarianza correspondientes a los
grupos deben ser iguales.
I Las variables deben seguir una distribución normal
multivariantes.
Modelo discriminante lineal

PROBLEMA
Sean P1 y P2, 2 poblaciones donde se define una variable vectorial
X formada por variables numéricas
Se supone que las funciones de densidad de ambas funciones son
conocidas f 1 y f 2.
El problema es estudiar el problema de clasificar a un individuo en
una de estas poblaciones cuando se conoce x0.
Solución del problema
Se consideran los siguientes supuestos:
1. Las probabilidades a priori de que un individuo tomado al azar
provenga de cada población son: π1 y
π2
2. Observado x0 , la probabilidad a posteriori de que un elemento
pertenezca a la primera población es

f1 (x0 )π1
P(1|x0 ) = .
f1 (x0 )π1 + f2 (x0 )π2
y para la segunda población es

f2 (x0 )π2
P(2|x0 ) = .
f1 (x0 )π1 + f2 (x0 )π2
Si se clasifica a un elemento en el grupo 2 se obtiene que el
esperado del costo es

E (d2) = c(2|1)P(1|x0 ) + 0P(2|x0 ) = c(2|1)P(1|x0 )


Si se clasifica a un elemento en el grupo 1 se obtiene que el
esperado del costo es

E (d1) = 0P(1|x0 ) + c(1|2)P(2|x0 ) = c(1|2)P(2|x0 )


Se asignará al elemento en el grupo 2 si E (d2) < E (d1); es decir si

f2 (x0 )π2 f1 (x0 )π1


>
c(2|1) c(1|2)
Dejando fijas a la otras cantidades, se ubica en la población P2 si
I La priobabilidad a priori es más alta
I El costo de equivocarnos al clasificarlo
I El costo de equivocaranos al clasificarloen P2 es más bajo
Nota
1. Si los costos son iguales la decisión dependerá de solo las
probabilidades a posteriori

π2 f2 (x0 ) > π1 f1 (x0 )


2. Si las probabilidades a priori y los costos son iguales la
clasificación dependerá de

f2 (x0 ) > f1 (x0 )


Caso en que las poblaciones sean normales
Caso de que las poblaciones sean normales
La función de densidad para la población i es
1
fi (x) = exp[−1/2(x − µi )t Σ−1 (x − mui )]
(2π)k/2 |Σ|1/2
La manera óptima es clasificar en la población P2 si

π2 f2 (x) π1 f1 (x)
>
c(2|1) c(1|2)
Tomando logaritmo y reemplazando las funciones de densidad
resulta

c(1|2)π2
(x − µ1 )t Σ−1 (x − µ1 ) > (x − µ2 )t Σ−1 (x − µ2 ) − 2log ( )
c(2|1)π1
Expresando en términos de la distancia de Mahalanobis

Di = (x − µi )t Σ−1 (x − µi )
Si Σ = I σ 2 se tiene la distancia euclidea.
c(1|2)π2
Si c(2|1)π 1
= 1, ubicar al elemento en la población 2 si D2 < D1 .
Simplificando y escribiendo como función de x:

µ2 + µ 1 c(1|2)π2
(µ1 − µ2 )t Σ−1 x − (µ1 − µ2 )t Σ−1 ( ) ≥ log
2 c(2|1)π1
LLamando

W = Σ−1 (µ2 − µ1 )
Entonces la frontera de las regiones para P1 y P2 queda como

µ2 + µ1 c(1|2)π2
W tx = W t( ) − log
2 c(2|1)π1
Regla
1. Calcular W t x (es una combinación lineal)
2. Si lo calculado en 1 es mayor que el segundo, clasificar al
elemento en P2.
3. Si c(1|2)π2 = c(2|1)π1 , clasificar al elemento en P2 si
µ1 + µ2
W tx > W t( )
2
Interpretación.
Para muestras usar
Las medias muestrales y la varianza
n1 − 1 n2 − 1
S= S1 + S2
(n1 − 1) + (n2 − 1) (n1 − 1) + (n2 − 1)
Caso en que las varianzas no son iguales
Para el caso en que las matrices en que las varianzas sean
diferentes, las regiones de clasificación quedan determinadas por

R1 : −(1/2)x t (Σ−1 −1 t −1 t −1
1 − Σ2 )x + (µ1 Σ1 − µ2 Σ2 )x − k ≥

c(1|2)π2
log
c(2|1)π1
donde

|Σ1 |
k = (1/2)ln( ) + (1/2)(µt1 Σ−1 t −1
1 µ 1 − µ2 Σ 2 µ 2 )
|Σ2 |
Las funciones cuadráticas ue definen las regiones se llaman
funciones cuadráticas.
Esto se extiende al caso muestral.
Aproximación de Fisher
Fisher llegó al último resultado
µ2 + µ1
W tx = W t( )
2
usando argumentos diferentes.
La idea de Fisher fue transformar las observaciones multivariadas
originales observaciones univariadas de tal manera que las
observaciones derivadas de las poblaciones en las transformaciones
estuvieran bien separadas
El criterio fue el siguiente:
Hallar la combinación y de los xi de tal manera que

|ȳ1 − ȳ2 |
sy
La combinación lineal que maximiza la expresión anterior es
y = at x = (x̄1 − x̄2 )t S −1 x
donde S es la matriz que estima a la varianza común.
El mayor valor que se obtiene es D 2 = (x̄1 − x̄2 )t S −1 (x̄1 − x̄2 ).
default= c(1,1,1,1,1,1,1,1, 0,0,0,0,0,0,0,0)

patrimonio =c(1.3, 3.7, 5,5.9, 7.1, 4,7.9, 5.1, 5.2, 9.8, 9


deudas =c(4.1, 6.9, 3,6.5, 5.4, 2.7, 7.6, 3.8, 1,4.2, 4.8,
datos=[Link](default, patrimonio, deudas)

plot(patrimonio, deudas, col = factor(default) )


deudas

1 2 3 4 5 6 7
library(MASS)
model1=lda(default~., datos)
model1

## Call:
## lda(default ~ ., data = datos)
##
## Prior probabilities of groups:
## 0 1
## 0.5 0.5
##
## Group means:
## patrimonio deudas
## 0 9.1125 3
## 1 5.0000 5
##
## Coefficients of linear discriminants:
## LD1
## patrimonio -0.4271742
## deudas 0.3885765

plot(model1)
0.0 0.4 0.8 1.2 0.0 0.4 0.8 1.2

−3
−2
−1
0

group 0
1
2
predicc=predict(model1)
predicc

## $class
## [1] 1 1 1 1 1 1 1 1 0 0 0 0 1 0 0 0
## Levels: 0 1
##
## $posterior
## 0 1
## 1 0.001780391 0.998219609
## 2 0.001518883 0.998481117
## 3 0.224243053 0.775756947
## 4 0.023820733 0.976179267
## 5 0.208976195 0.791023805
## 6 0.116279566 0.883720434
## 7 0.067149155 0.932850845
## 8 0.127799106 0.872200894
## 9 0.720029693 0.279970307
## 10 0.941197342 0.058802658
## 11 0.908081986 0.091918014
## 12 0.999338571 0.000661429
## 13 0.119190309 0.880809691
## 14 0.990383542 0.009616458
## 15 0.986327111 0.013672889
## 16 0.995684476 0.004315524
##
## $x
## LD1
## 1 2.4977792
## 2 2.5605754
## 3 0.4898004
## 4 1.4653615
## 5 0.5253183
## 6 0.8004017
## 7 1.0384473
## 8 0.7579442
## 9 -0.3727875
## 10 -1.0943439
## 11 -0.9039154
## 12 -2.8889956
## 13 0.7893424
## 14 -1.8290396
## 15 -1.6885281
## 16 -2.1473604

Tabla = table(predicc$class, datos$default)


Tabla

##
## 0 1
## 0 7 0
## 1 1 8

sum(diag(Tabla))/sum(Tabla)

## [1] 0.9375
#data1 = [Link]([Link](), header=T)
data(iris)
head(iris)

## [Link] [Link] [Link] [Link] Species


## 1 5.1 3.5 1.4 0.2 setosa
## 2 4.9 3.0 1.4 0.2 setosa
## 3 4.7 3.2 1.3 0.2 setosa
## 4 4.6 3.1 1.5 0.2 setosa
## 5 5.0 3.6 1.4 0.2 setosa
## 6 5.4 3.9 1.7 0.4 setosa

#Submuestra
indicesmues=sample(1:nrow(iris), 105)
[Link]= iris[indicesmues,]
[Link]=iris[-indicesmues,]
#Carga de libreria

require(MASS)
#Ejecucion de analisis
[Link]=lda(Species~., data=[Link])
[Link]

## Call:
## lda(Species ~ ., data = [Link])
##
## Prior probabilities of groups:
## setosa versicolor virginica
## 0.3047619 0.3904762 0.3047619
##
## Group means:
## [Link] [Link] [Link] [Link]
## setosa 5.056250 3.490625 1.484375 0.250000
## versicolor 5.909756 2.748780 4.253659 1.319512
## virginica 6.512500 2.990625 5.518750 2.006250
##
## Coefficients of linear discriminants:
## LD1 LD2
## [Link] 0.580847 0.2464666
## [Link] 1.915636 -2.5279234
## [Link] -2.138565 0.5384193
## [Link] -2.731471 -2.4013107
##
## Proportion of trace:
## LD1 LD2
## 0.9875 0.0125

plot([Link])
5

versicolor
versicolor
versicolor versicolor
virginicaversicolorversicolor versicolor
versicolor
versicolor versicolor versicolor
versicolor
versicolor
versicolor
versicolor setosa
virginica virginica virginica versicolor
virginica versicolorversicolor
versicolor
versicolor
setosa
setosa
setosa
setosa
versicolor setosa
setosa
virginica
virginica versicolor
versicolor
versicolor setosa
setosa
LD2

virginicavirginica versicolor versicolor


versicolor
versicolor
versicolor setosa
setosasetosa
virginica versicolor
versicolor
versicolor setosa
setosa
0

virginica
virginica versicolor versicolor
versicolor setosa
setosa
virginicavirginica versicolor
versicolor setosa setosa
setosa setosa
virginica virginicavirginica versicolor setosa
setosa
setosa
virginica virginica
virginica virginica
virginica versicolor setosa
setosa
setosa
setosa
virginicavirginica
virginica
virginica
versicolor setosa
setosa
setosa
virginica setosa
virginica
virginica
virginicavirginica
virginica setosa
−5
#prediccion. Posterior y class
pp=predict([Link])

table(pp$class, [Link]$Species)

##
## setosa versicolor virginica
## setosa 32 0 0
## versicolor 0 40 1
## virginica 0 1 31

[Link].p = predict([Link], newdata=[Link], interval

#Colores
color <- rep("green",nrow([Link]))
color[[Link]$Species=="setosa"]<-"red"
color[[Link]$Species=="virginica"]<-"blue"

#Graficos de las 2 primeras componentes del AD lineal


plot([Link], dimen=2, col =color, abbrev=3)
5

vrs
vrs
vrs vrs
vrg vrs vrs vrs
vrs vrs
vrs vrs vrs
vrsvrs vrs vrs stssts
vrg vrs vrg
vrs vrsvrs vrs sts sts
sts
sts
vrg vrg vrg
vrg vrs vrs
vrs sts stssts
LD2

vrg vrg vrsvrsvrs sts sts


sts
vrg
vrgvrg vrsvrs vrs vrs
vrs vrs stssts
0

vrg vrg vrsvrs


vrs vrs sts stssts stsstssts
vrgvrg vrg vrg vrs sts sts
sts
vrg vrg vrg
vrg vrs sts
sts
sts sts
vrgvrg vrg vrg vrs sts sts
vrg sts
sts
vrg vrg
vrgvrg vrg
sts
−5
#Matriz de confusion
Tabla = table([Link].p$class, [Link]$Species)
Tabla

##
## setosa versicolor virginica
## setosa 18 0 0
## versicolor 0 8 0
## virginica 0 1 18

#Correctamente clasificados en %
100 * sum(diag(Tabla)) / sum(Tabla)

## [1] 97.77778

# predicci??n. Se asignan valores nuevos a cada variable


nuevo <- [Link]([Link]=5, [Link]=3, [Link]=1.5, Pet
prediccion <- predict([Link],newdata=nuevo, interval='confidenc
# Nos devuelve a la que ha asignado la predicci??n
prediccion$class

## [1] setosa
## Levels: setosa versicolor virginica
# Probabilidad de pertenencia a cada clase:
prediccion$posterior

## setosa versicolor virginica


## 1 1 3.157012e-16 4.809813e-34

También podría gustarte