Professional Documents
Culture Documents
2023-11-10
Analiza Dyskryminacyjna
Analiza funkcji dyskryminacyjnej stosowana jest do rozstrzygania, które zmienne pozwalają w najlepszy sposób wyróżniać (dyskryminować) dwie
lub więcej wyłaniających się grup. Podstawową ideą analizy dyskryminacyjnej jest rozstrzyganie, czy między grupami istnieje różnica ze względu
na średnią pewnej zmiennej, a następnie wykorzystywanie tej zmiennej do określenia przynależności do grupy przy możliwie minimalnych błędach
klasyfikacji.
library(tidyverse)
library(candisc)
library(MASS)
head(Pima.tr)
## Call:
## lda(type ~ ., data = Pima.tr)
##
## Prior probabilities of groups:
## No Yes
## 0.66 0.34
##
## Group means:
## npreg glu bp skin bmi ped
## No -0.1940824 -0.3430657 -0.1493558 -0.1714733 -0.2015848 -0.1473844
## Yes 0.3767482 0.6659511 0.2899260 0.3328599 0.3913117 0.2860991
## age
## No -0.2619624
## Yes 0.5085152
##
## Coefficients of linear discriminants:
## LD1
## npreg 0.267616869
## glu 0.761015439
## bp -0.020807765
## skin -0.009751829
## bmi 0.303379229
## ped 0.384971260
## age 0.345040414
Prior probabilities of groups - prawdopodobieństwa występowania poszczególnych stanów zmiennej zależnej type . No występowało
w 66% przypadków, a Yes w 34%.
Group means - średnie grupowe (wyniki nie pokazują prawdziwych średnich ponieważ dokonaliśmy standaryzacji). Na ich podstawie możemy
stwierdzić, czy średnie ze względu na jakąś zmienną niezależną istotnie różnią się między podgrupami Yes i No . Im większa różnica, tym lepiej
dana zmienna niezależna dyskryminuje. w przypadku powyższych danych, najlepiej różnicuje zmienna glu .
Coefficients of linear discriminants - współczynniki wagowe w kombinacji liniowej. Na ich podstawie także można stwierdzić, który
czynnik najlepiej dyskryminuje (ponownie jest to glu ze współczynnikiem w wysokości 0.76).
gdzie m jest to liczba zmiennych niezależnych, natomiast k jest to liczba poziomów, jakie przyjmuje zmienna zależna.
W naszym przypadku m = 7, a k = 2 (No oraz Yes ). Czyli otrzymujemy jedną zmienną dyskryminującą na podstawie powyższego wzoru.
Predykcja
Predykcję przeprowadzimy na zbiorze testowym Pima.te . Na początek standaryzujemy zmienne.
sum(pred$class==Pima.te$type)/length(pred$class)*100
## [1] 79.21687
## obs
## pred No Yes
## No 196 42
## Yes 27 67
Rysunek diagnostyczny
plot(model)
Na osi X mamy wartości zmiennej dyskryminacyjnej LD1 . Zauważamy, że dla mniejszych wartości częściej mamy No , a dla większych Yes (po
wartościach zmiennej dyskryminacyjnej możemy określić stan zmiennej zależnej).
##
## Canonical Discriminant Analysis for type:
##
## CanRsq Eigenvalue Difference Percent Cumulative
## 1 0.34346 0.52313 100 100
##
## Test of H0: The canonical correlations in the
## current row and all that follow are zero
##
## LR test stat approx F numDF denDF Pr(> F)
## 1 0.65654 14.349 7 192 5.919e-15 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
CanRsq to kwadrat korelacji kanonicznej pomiędzy naszymi zmiennymi kanonicznymi, w tym przypadku jego wartość nie jest duża. Pierwiastek z
tego wyniku to korelacja kanoniczna.
Difference Percent - porównanie modelu pustego z naszym (w tym wypadku dostajemy, że nasz model będzie lepszy od pustego o 100%).
Test of HO - 0.65654 wartość lambdy wilka dla całego modelu, ponieważ zawierał on jedną zmienną dyskryminacyjną. Jeżeli wartość
współczynnika jest bliska 1 to oznacza słabą moc dyskryminacyjną (odwrotnie dla wyniku bliskiego 0). W naszym przypadku mamy słabą moc
dyskryminacyjną.
Na podstawie p-value odrzucamy hipotezę, że kanoniczne korelacje są równe 0 (zatem zmienna dyskryminacyjna istotnie różnicuje przypadki).
Choć moc dyskryminacyjna nie jest duża, to zmienna dyskryminacyjna istotnie różnicuje przypadki.
summary(clda)
##
## Canonical Discriminant Analysis for type:
##
## CanRsq Eigenvalue Difference Percent Cumulative
## 1 0.34346 0.52313 100 100
##
## Class means:
##
## [1] -0.51652 1.00266
##
## std coefficients:
## [1] 0.2582457 0.6696407 -0.0204013 -0.0094919 0.2918393 0.3776758 0.3219235
clda$coeffs.raw
## Can1
## [1,] 0.267616869
## [2,] 0.761015439
## [3,] -0.020807765
## [4,] -0.009751829
## [5,] 0.303379229
## [6,] 0.384971260
## [7,] 0.345040414
clda$structure
## Can1
## [1,] 0.4625642
## [2,] 0.8176419
## [3,] 0.3559655
## [4,] 0.4086790
## [5,] 0.4804450
## [6,] 0.3512670
## [7,] 0.6243452
Dla zmiennej Age wartość korelacji nie jest taka sama jak wartość wagi. Dzieje się tak, ponieważ korelacje nie uwzględniają innych zmiennych,
natomiast wagi uwzględniają wszystkie.
Jeżeli mamy podać najbardziej lub najmniej ważną zmienną dyskryminacyjną to robimy to na podstawie wag. Dla nas najważniejsza będzie
zmienna glu .
Rysunek diagnostyczny:
plot(clda)
Ponownie możemy wnioskować, że No występuje dla mniejszych wartości zmiennej dyskryminującej.