Ejemplo: datos Iris Jorge de la Vega Góngora (ITAM) Estadística Aplicada III 13/05/22 73 / 82 Datos Iris Los datos consisten en mediciones de 𝑝 = 4 variables (longitud del sépalo, ancho del sépalo, longitud del pétalo, ancho del pétalo) tomadas de 𝑛𝑘 = 50 flores muestreadas alaetoriamente de 𝑔 = 3 especies (setosa, versicolor, virginica). El objetivo es crear una función discriminante que mejor clasifique una nueva flor en una de las tres especies. Jorge de la Vega Góngora (ITAM) Estadística Aplicada III 13/05/22 74 / 82 Datos Iris I head(iris); p <- 4; g <- 3 1 2 3 4 5 6 Sepal.Length Sepal.Width Petal.Length Petal.Width Species 5.1 3.5 1.4 0.2 setosa 4.9 3.0 1.4 0.2 setosa 4.7 3.2 1.3 0.2 setosa 4.6 3.1 1.5 0.2 setosa 5.0 3.6 1.4 0.2 setosa 5.4 3.9 1.7 0.4 setosa Calculamos las medias muestrales de cada población: x̄1 , x̄2 , x̄3 especies <- unique(iris$Species) xbari <- list(NULL) for(i in especies)xbari[[match(i,especies)]] <- colMeans(iris[iris$Species==i,1:p]) xbari [[1]] Sepal.Length 5.006 Sepal.Width Petal.Length 3.428 1.462 Petal.Width 0.246 [[2]] Sepal.Length 5.936 Sepal.Width Petal.Length 2.770 4.260 Petal.Width 1.326 [[3]] Sepal.Length 6.588 Sepal.Width Petal.Length 2.974 5.552 Petal.Width 2.026 Jorge de la Vega Góngora (ITAM) Estadística Aplicada III 13/05/22 75 / 82 Datos Iris II Calculamos la matriz combinada S𝑝 Sp <- matrix(0,p,p) nx <- rep(50,g) #tamaños de muestra por población for(j in 1:g){ x <- iris[iris$Species==especies[j],1:p] Sp <- Sp + cov(x)*(nx[j]-1) } Sp <- Sp/(sum(nx)-g); round(Sp, 4) Sepal.Length Sepal.Width Petal.Length Petal.Width Sepal.Length Sepal.Width Petal.Length Petal.Width 0.2650 0.0927 0.1675 0.0384 0.0927 0.1154 0.0552 0.0327 0.1675 0.0552 0.1852 0.0427 0.0384 0.0327 0.0427 0.0419 Ajustamos un modelo discriminante lineal con la función lda del paquete MASS: Jorge de la Vega Góngora (ITAM) Estadística Aplicada III 13/05/22 76 / 82 Datos Iris III library(MASS) Attaching package: 'MASS' The following object is masked from 'package:DAAG': hills lda1 <- lda(Species ~ . , data = iris, prior=rep(1/3,3)) lda1 Call: lda(Species ~ ., data = iris, prior = rep(1/3, 3)) Prior probabilities of groups: setosa versicolor virginica 0.3333333 0.3333333 0.3333333 Group means: Sepal.Length Sepal.Width Petal.Length Petal.Width setosa 5.006 3.428 1.462 0.246 versicolor 5.936 2.770 4.260 1.326 virginica 6.588 2.974 5.552 2.026 Coefficients of linear discriminants: LD1 LD2 Sepal.Length 0.8293776 -0.02410215 Sepal.Width 1.5344731 -2.16452123 Petal.Length -2.2012117 0.93192121 Petal.Width -2.8104603 -2.83918785 Proportion of trace: LD1 LD2 0.9912 0.0088 Jorge de la Vega Góngora (ITAM) Estadística Aplicada III 13/05/22 77 / 82 Datos Iris I Noten que los coeficientes de los discriminantes lineales corresponden a la matriz A = [a1 a2 ]. También vemos que el primer discriminante es el que más contribuye a la separación de las medias y el segundo discriminante prácticamente no contribuye a la separación. Calculamos los scores ŷ = A′ (x − x̄𝑖 ) para todas las observaciones: mu_k <- lda1$means mu <- colMeans(mu_k) #media global scores <- scale(iris[,1:p], center = mu, scale=F) %*% lda1$scaling scores2 <- predict(lda1)$x #otra manera de calcular los scores #comparamos los scores: sum(scores-scores2)^2 [1] 3.258077e-26 A continuación se grafican los scores en las direcciones de los dos discriminantes. plot(scores, xlab="LD1", ylab="LD2", col=as.numeric(iris$Species), pch = as.numeric(iris$Species), main= "Datos iris") legend("top", legend = especies, pch = 1:3, col = 1:3) Jorge de la Vega Góngora (ITAM) Estadística Aplicada III 13/05/22 78 / 82 Datos Iris II Datos iris 0 −2 −1 LD2 1 2 setosa versicolor virginica −5 0 5 10 LD1 En términos de gráficas, podemos encontrar explícitamente las regiones 𝑅𝑖 una vez que tenemos las fronteras de las regiones, utilizando el paquete klaR. library(klaR) especies <- factor(rep(c("S","V","I"),rep(50,3))) partimat(x = scores[,2:1], grouping = especies, method = "lda") Jorge de la Vega Góngora (ITAM) Estadística Aplicada III 13/05/22 79 / 82 Datos Iris III Partition Plot app. error rate: 0.02 V 2 I I V V V 1 I I I I V I I I V V V V V V VV V V V VV V V S V SS S S SSS S SS S S S S SS SSSS S S S SS S S S S S S SSS SS S S S S SS S S S V V VV VV V VV I I VV I VV V V I III I V V V VV V I V I I V I I V I I I I V II I I V I V I I I I I I I II I I 0 I −2 −1 LD2 I I I I S S S I I S −5 0 5 LD1 Podemos graficar todos los pares de variables y marcar las regiones: par(mfrow = c(2,3)) partimat(x = iris[,-5], grouping = especies, method = "lda") Jorge de la Vega Góngora (ITAM) Estadística Aplicada III 13/05/22 80 / 82 Datos Iris IV 1 1.5 3 4 5 4.0 3.5 Sepal.Width 2.5 S 6 V 1 2 3 6 S 2.0 2.5 Petal.Width I I V V VV V I VV I VVVV I V I VVV I VVVV I I I V VVV V I I V V I V V V I I I VV V V V V I I I I I I I I I I I I I I I I I I I 1.0 1.5 5 6 2.0 Petal.Width app. error rate: 0.04 I I I I I I I I I II II I I I I III I I I I II I II I II VV I II III II I V V II I VVV VV VV V V I VV VVVV V VV V V V V V V V VV V VV V V V V I V 0.5 5 I 4 4.0 3.5 3.0 2.5 Sepal.Width app. error rate: 0.033 S SSS S S SS SS S SSS S S S SS SSS S 4 Petal.Length S S S 2.0 7.5 7.0 6.5 6.0 Sepal.Length 5.5 5.0 4.5 S I I I I I I I I I V V I I V I I VV V I I I I I VV V I I I V V I I I I I V V IV I I I I V V I I VVV I I V V IV I V V I V V I I V VV V I V V V I VVVV V V V V V I 1.0 I I I V II V I I VV V I I I II V VV I III V VV V V IIVII I II I I V V VV V V I I V V V V V V II I I I I VV V IV II V V V I I V V V I VI I V V V V V V V V I Petal.Length app. error rate: 0.04 I I 0.5 S S S S S S S SS S S S S S S S S S S SS SS S S SS S S SS SS S 2.0 2 Sepal.Width S SS S S S S SS SSSS SSS S SS SSS S SS S S S 3.0 7.5 7.0 6.5 6.0 Sepal.Length 5.5 5.0 4.0 Petal.Length 3.5 SS S S SSS S S S S S S SS S S S S S S S SS S SS S S S S S S S 3 3.0 S app. error rate: 0.047 S II I 2 2.5 I I I I I II I V VI I I V I I V V V I III VV V II I I VV I II V VV III I I VV I I V V VI I V V I IV V VI V V V I V V VV I V VV VV I V VV V V V V VV V I 1 2.0 app. error rate: 0.033 4.5 6.5 6.0 4.5 5.0 5.5 Sepal.Length 7.0 7.5 Partition Plot app. error rate: 0.2 I I I I I I I I I I I I V V I I V I I I V IV I I VV V I I I IV IV I V V I I I I V I I V IV I I VVV I V I V VI V V I V VV I I S I V VVV S S V V I VV VVVV S S V S S S S V SS S V SSS SS V V S SSSSS VI SS S SS S S SS S S S SS S S 2.5 S S SSS SS S SS S SSS S S S SS SS SS S 0.5 1.0 1.5 2.0 2.5 Petal.Width Podemos también ver las regiones cuadráticas: par(mfrow = c(2,3)) partimat(x = iris[,-5], grouping = especies, method = "qda") Jorge de la Vega Góngora (ITAM) Estadística Aplicada III 13/05/22 81 / 82 Datos Iris V 1 1.5 Jorge de la Vega Góngora (ITAM) 3 4 5 4.0 3.5 Sepal.Width 2.5 S 6 V 1 2 3 2.0 S 6 S S S S 2.5 I I I I I I I I I I I I I I I I I 1.0 1.5 5 6 I I I 2.0 Petal.Width Estadística Aplicada III app. error rate: 0.02 I I I I I I I I I II II I I II II I I I I II I I I I III II VV I II II I I V V II I VVV V VV VV I VV V VV VV V VV V V V V V V VVVV VV V V V V I V 0.5 5 I V V VV V I VV I VVVV I V I VVV I VVVV I I I V VVV V I I V V I V V V I I I VV V V V V I 4 S SSS S S SS SS S SSS S S S SS SSS S 2.5 I Sepal.Width I I I I I I 3.0 I I I I 3.5 4.0 I 4 Petal.Length app. error rate: 0.047 2.0 7.5 7.0 6.5 6.0 Sepal.Length 5.5 5.0 4.5 Petal.Width I I I V II V I I VV V I I I II V VV I III V VV V V IIVII I II I I V V VV V V I I V V V V V V II I I I I VV V IV II V V V I I V V V I VI I V V V V V V V V I Petal.Length app. error rate: 0.033 I I I I I I I I I V V I V I VV V I I VV V I I I V V I I I I V V IV I I V V I VVV I I V V IV I V V I S V V I SS V VV V I V V V I S VVVV S S V S SS V SSSS V SSS S V SS V I SSS S SS S S S 1.0 S S S S S S S SS S S S S S S S S S S SS SS S S SS S S SS SS S 2.0 2 Sepal.Width 0.5 3.0 7.5 7.0 6.5 6.0 Sepal.Length 5.5 5.0 4.0 Petal.Length 3.5 SS S S SSS S S S S S S SS S S S S S S S SS S SS S S S S S S S 3 3.0 S app. error rate: 0.047 S II I 2 2.5 I I I I I II I V VI I I V I I V V V I III VV V II I I VV I II V VV III I I VV I I V V VI I V V I IV V VI V V V I V V VV I V VV VV I V VV V V V V VV V I 1 2.0 app. error rate: 0.04 4.5 6.5 6.0 4.5 5.0 5.5 Sepal.Length 7.0 7.5 Partition Plot app. error rate: 0.2 I I I I I I I I I I I I V V I I V I I I V IV I I VV V I I I IV IV I V V I I I I V I I V IV I I VVV I V I V VI V V I V VV I I S I V VVV S S V V I VV VVVV S S V S S S S V SS S V SSS SS V V S SSSSS VI SS S SS S S SS S S S SS S S 2.5 S S SSS SS S SS S SS SS S S S SSS SS S 0.5 1.0 1.5 2.0 2.5 Petal.Width 13/05/22 82 / 82