Czy wartości skalowania w liniowej analizie dyskryminacyjnej (LDA) można wykorzystać do wykreślenia zmiennych objaśniających na liniowych dyskryminatorach?

11

Korzystając z dwójki wartości uzyskanych w wyniku analizy głównego składnika, możliwe jest zbadanie zmiennych objaśniających, które składają się na każdy podstawowy składnik. Czy jest to również możliwe w przypadku liniowej analizy dyskryminacyjnej?

Podane przykłady wykorzystują Dane to „Dane Iris Edgara Andersona” ( http://en.wikipedia.org/wiki/Iris_flower_data_set ). Oto dane tęczówki :

  id  SLength   SWidth  PLength   PWidth species 

   1      5.1      3.5      1.4       .2 setosa 
   2      4.9      3.0      1.4       .2 setosa 
   3      4.7      3.2      1.3       .2 setosa 
   4      4.6      3.1      1.5       .2 setosa 
   5      5.0      3.6      1.4       .2 setosa 
   6      5.4      3.9      1.7       .4 setosa 
   7      4.6      3.4      1.4       .3 setosa 
   8      5.0      3.4      1.5       .2 setosa 
   9      4.4      2.9      1.4       .2 setosa 
  10      4.9      3.1      1.5       .1 setosa 
  11      5.4      3.7      1.5       .2 setosa 
  12      4.8      3.4      1.6       .2 setosa 
  13      4.8      3.0      1.4       .1 setosa 
  14      4.3      3.0      1.1       .1 setosa 
  15      5.8      4.0      1.2       .2 setosa 
  16      5.7      4.4      1.5       .4 setosa 
  17      5.4      3.9      1.3       .4 setosa 
  18      5.1      3.5      1.4       .3 setosa 
  19      5.7      3.8      1.7       .3 setosa 
  20      5.1      3.8      1.5       .3 setosa 
  21      5.4      3.4      1.7       .2 setosa 
  22      5.1      3.7      1.5       .4 setosa 
  23      4.6      3.6      1.0       .2 setosa 
  24      5.1      3.3      1.7       .5 setosa 
  25      4.8      3.4      1.9       .2 setosa 
  26      5.0      3.0      1.6       .2 setosa 
  27      5.0      3.4      1.6       .4 setosa 
  28      5.2      3.5      1.5       .2 setosa 
  29      5.2      3.4      1.4       .2 setosa 
  30      4.7      3.2      1.6       .2 setosa 
  31      4.8      3.1      1.6       .2 setosa 
  32      5.4      3.4      1.5       .4 setosa 
  33      5.2      4.1      1.5       .1 setosa 
  34      5.5      4.2      1.4       .2 setosa 
  35      4.9      3.1      1.5       .2 setosa 
  36      5.0      3.2      1.2       .2 setosa 
  37      5.5      3.5      1.3       .2 setosa 
  38      4.9      3.6      1.4       .1 setosa 
  39      4.4      3.0      1.3       .2 setosa 
  40      5.1      3.4      1.5       .2 setosa 
  41      5.0      3.5      1.3       .3 setosa 
  42      4.5      2.3      1.3       .3 setosa 
  43      4.4      3.2      1.3       .2 setosa 
  44      5.0      3.5      1.6       .6 setosa 
  45      5.1      3.8      1.9       .4 setosa 
  46      4.8      3.0      1.4       .3 setosa 
  47      5.1      3.8      1.6       .2 setosa 
  48      4.6      3.2      1.4       .2 setosa 
  49      5.3      3.7      1.5       .2 setosa 
  50      5.0      3.3      1.4       .2 setosa 
  51      7.0      3.2      4.7      1.4 versicolor 
  52      6.4      3.2      4.5      1.5 versicolor 
  53      6.9      3.1      4.9      1.5 versicolor 
  54      5.5      2.3      4.0      1.3 versicolor 
  55      6.5      2.8      4.6      1.5 versicolor 
  56      5.7      2.8      4.5      1.3 versicolor 
  57      6.3      3.3      4.7      1.6 versicolor 
  58      4.9      2.4      3.3      1.0 versicolor 
  59      6.6      2.9      4.6      1.3 versicolor 
  60      5.2      2.7      3.9      1.4 versicolor 
  61      5.0      2.0      3.5      1.0 versicolor 
  62      5.9      3.0      4.2      1.5 versicolor 
  63      6.0      2.2      4.0      1.0 versicolor 
  64      6.1      2.9      4.7      1.4 versicolor 
  65      5.6      2.9      3.6      1.3 versicolor 
  66      6.7      3.1      4.4      1.4 versicolor 
  67      5.6      3.0      4.5      1.5 versicolor 
  68      5.8      2.7      4.1      1.0 versicolor 
  69      6.2      2.2      4.5      1.5 versicolor 
  70      5.6      2.5      3.9      1.1 versicolor 
  71      5.9      3.2      4.8      1.8 versicolor 
  72      6.1      2.8      4.0      1.3 versicolor 
  73      6.3      2.5      4.9      1.5 versicolor 
  74      6.1      2.8      4.7      1.2 versicolor 
  75      6.4      2.9      4.3      1.3 versicolor 
  76      6.6      3.0      4.4      1.4 versicolor 
  77      6.8      2.8      4.8      1.4 versicolor 
  78      6.7      3.0      5.0      1.7 versicolor 
  79      6.0      2.9      4.5      1.5 versicolor 
  80      5.7      2.6      3.5      1.0 versicolor 
  81      5.5      2.4      3.8      1.1 versicolor 
  82      5.5      2.4      3.7      1.0 versicolor 
  83      5.8      2.7      3.9      1.2 versicolor 
  84      6.0      2.7      5.1      1.6 versicolor 
  85      5.4      3.0      4.5      1.5 versicolor 
  86      6.0      3.4      4.5      1.6 versicolor 
  87      6.7      3.1      4.7      1.5 versicolor 
  88      6.3      2.3      4.4      1.3 versicolor 
  89      5.6      3.0      4.1      1.3 versicolor 
  90      5.5      2.5      4.0      1.3 versicolor 
  91      5.5      2.6      4.4      1.2 versicolor 
  92      6.1      3.0      4.6      1.4 versicolor 
  93      5.8      2.6      4.0      1.2 versicolor 
  94      5.0      2.3      3.3      1.0 versicolor 
  95      5.6      2.7      4.2      1.3 versicolor 
  96      5.7      3.0      4.2      1.2 versicolor 
  97      5.7      2.9      4.2      1.3 versicolor 
  98      6.2      2.9      4.3      1.3 versicolor 
  99      5.1      2.5      3.0      1.1 versicolor 
 100      5.7      2.8      4.1      1.3 versicolor 
 101      6.3      3.3      6.0      2.5 virginica 
 102      5.8      2.7      5.1      1.9 virginica 
 103      7.1      3.0      5.9      2.1 virginica 
 104      6.3      2.9      5.6      1.8 virginica 
 105      6.5      3.0      5.8      2.2 virginica 
 106      7.6      3.0      6.6      2.1 virginica 
 107      4.9      2.5      4.5      1.7 virginica 
 108      7.3      2.9      6.3      1.8 virginica 
 109      6.7      2.5      5.8      1.8 virginica 
 110      7.2      3.6      6.1      2.5 virginica 
 111      6.5      3.2      5.1      2.0 virginica 
 112      6.4      2.7      5.3      1.9 virginica 
 113      6.8      3.0      5.5      2.1 virginica 
 114      5.7      2.5      5.0      2.0 virginica 
 115      5.8      2.8      5.1      2.4 virginica 
 116      6.4      3.2      5.3      2.3 virginica 
 117      6.5      3.0      5.5      1.8 virginica 
 118      7.7      3.8      6.7      2.2 virginica 
 119      7.7      2.6      6.9      2.3 virginica 
 120      6.0      2.2      5.0      1.5 virginica 
 121      6.9      3.2      5.7      2.3 virginica 
 122      5.6      2.8      4.9      2.0 virginica 
 123      7.7      2.8      6.7      2.0 virginica 
 124      6.3      2.7      4.9      1.8 virginica 
 125      6.7      3.3      5.7      2.1 virginica 
 126      7.2      3.2      6.0      1.8 virginica 
 127      6.2      2.8      4.8      1.8 virginica 
 128      6.1      3.0      4.9      1.8 virginica 
 129      6.4      2.8      5.6      2.1 virginica 
 130      7.2      3.0      5.8      1.6 virginica 
 131      7.4      2.8      6.1      1.9 virginica 
 132      7.9      3.8      6.4      2.0 virginica 
 133      6.4      2.8      5.6      2.2 virginica 
 134      6.3      2.8      5.1      1.5 virginica 
 135      6.1      2.6      5.6      1.4 virginica 
 136      7.7      3.0      6.1      2.3 virginica 
 137      6.3      3.4      5.6      2.4 virginica 
 138      6.4      3.1      5.5      1.8 virginica 
 139      6.0      3.0      4.8      1.8 virginica 
 140      6.9      3.1      5.4      2.1 virginica 
 141      6.7      3.1      5.6      2.4 virginica 
 142      6.9      3.1      5.1      2.3 virginica 
 143      5.8      2.7      5.1      1.9 virginica 
 144      6.8      3.2      5.9      2.3 virginica 
 145      6.7      3.3      5.7      2.5 virginica 
 146      6.7      3.0      5.2      2.3 virginica 
 147      6.3      2.5      5.0      1.9 virginica 
 148      6.5      3.0      5.2      2.0 virginica 
 149      6.2      3.4      5.4      2.3 virginica 
 150      5.9      3.0      5.1      1.8 virginica

Przykład biplotu PCA z wykorzystaniem zestawu danych tęczówki w R (kod poniżej):

wprowadź opis zdjęcia tutaj

Ta liczba wskazuje, że długość i szerokość płatka są ważne przy ustalaniu wyniku PC1 i przy rozróżnianiu grup gatunków. setosa ma mniejsze płatki i szersze działki.

Najwyraźniej podobne wnioski można wyciągnąć z wykreślenia wyników liniowej analizy dyskryminacyjnej, chociaż nie jestem pewien, co przedstawia wykres LDA, stąd pytanie. Oś to dwa pierwsze liniowe czynniki dyskryminujące (LD1 99% i LD2 1% śladu). Współrzędne czerwonych wektorów to „Współczynniki liniowych czynników dyskryminujących” również określane jako „skalowanie” (lda.fit $ scaling: matryca, która przekształca obserwacje w funkcje dyskryminacyjne, znormalizowana tak, że w grupach macierz kowariancji jest sferyczna). „skalowanie” oblicza się jako diag(1/f1, , p)i f1 is sqrt(diag(var(x - group.means[g, ]))). Dane mogą być rzutowane na dyskryminatory liniowe (za pomocą predykcji.lda) (kod poniżej, jak pokazano https://stackoverflow.com/a/17240647/742447). Dane i zmienne predykcyjne są wykreślane razem, dzięki czemu gatunki są zdefiniowane przez wzrost, w którym można zobaczyć zmienne predykcyjne (jak ma to miejsce w przypadku zwykłych dwupłatów PCA i powyższego dwupłatu PCA):

Przykład biplot LDA z wykorzystaniem zestawu danych tęczówki w R

Z tego wykresu, szerokość osobna, szerokość płatka i długość płatka przyczyniają się do poziomu podobnego do LD1. Zgodnie z oczekiwaniami, setosa wydaje się mniejszym płatkom i szerszym płatkom.

Nie ma wbudowanego sposobu na wykreślanie takich dwupłatków od LDA w R i kilka dyskusji na temat tego w Internecie, co sprawia, że ​​uważam na to podejście.

Czy ten wykres LDA (patrz kod poniżej) zapewnia statystycznie poprawną interpretację wyników skalowania zmiennych predyktorów?

Kod dla PCA:

require(grid)

  iris.pca <- prcomp(iris[,-5])
  PC <- iris.pca
  x="PC1"
  y="PC2"
  PCdata <- data.frame(obsnames=iris[,5], PC$x)

  datapc <- data.frame(varnames=rownames(PC$rotation), PC$rotation)
  mult <- min(
    (max(PCdata[,y]) - min(PCdata[,y])/(max(datapc[,y])-min(datapc[,y]))),
    (max(PCdata[,x]) - min(PCdata[,x])/(max(datapc[,x])-min(datapc[,x])))
  )
  datapc <- transform(datapc,
                      v1 = 1.6 * mult * (get(x)),
                      v2 = 1.6 * mult * (get(y))
  )

  datapc$length <- with(datapc, sqrt(v1^2+v2^2))
  datapc <- datapc[order(-datapc$length),]

  p <- qplot(data=data.frame(iris.pca$x),
             main="PCA",
             x=PC1,
             y=PC2,
             shape=iris$Species)
  #p <- p + stat_ellipse(aes(group=iris$Species))
  p <- p + geom_hline(aes(0), size=.2) + geom_vline(aes(0), size=.2)
  p <- p + geom_text(data=datapc, 
                     aes(x=v1, y=v2,
                         label=varnames,
                         shape=NULL,
                         linetype=NULL,
                         alpha=length), 
                     size = 3, vjust=0.5,
                     hjust=0, color="red")
  p <- p + geom_segment(data=datapc, 
                        aes(x=0, y=0, xend=v1,
                            yend=v2, shape=NULL, 
                            linetype=NULL,
                            alpha=length),
                        arrow=arrow(length=unit(0.2,"cm")),
                        alpha=0.5, color="red")
  p <- p + coord_flip()


  print(p)

Kod dla LDA

#Perform LDA analysis
iris.lda <- lda(as.factor(Species)~.,
                 data=iris)

#Project data on linear discriminants
iris.lda.values <- predict(iris.lda, iris[,-5])

#Extract scaling for each predictor and
data.lda <- data.frame(varnames=rownames(coef(iris.lda)), coef(iris.lda))

#coef(iris.lda) is equivalent to iris.lda$scaling

data.lda$length <- with(data.lda, sqrt(LD1^2+LD2^2))
scale.para <- 0.75

#Plot the results
p <- qplot(data=data.frame(iris.lda.values$x),
           main="LDA",
           x=LD1,
           y=LD2,
           shape=iris$Species)#+stat_ellipse()
p <- p + geom_hline(aes(0), size=.2) + geom_vline(aes(0), size=.2)
p <- p + theme(legend.position="none")
p <- p + geom_text(data=data.lda,
                   aes(x=LD1*scale.para, y=LD2*scale.para,
                       label=varnames, 
                       shape=NULL, linetype=NULL,
                       alpha=length),
                   size = 3, vjust=0.5,
                   hjust=0, color="red")
p <- p + geom_segment(data=data.lda,
                      aes(x=0, y=0,
                          xend=LD1*scale.para, yend=LD2*scale.para,
                          shape=NULL, linetype=NULL,
                          alpha=length),
                      arrow=arrow(length=unit(0.2,"cm")),
                      color="red")
p <- p + coord_flip()

print(p)

Wyniki LDA są następujące

lda(as.factor(Species) ~ ., data = iris)

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
Etienne Low-Décarie
źródło
Nie mogę śledzić twojego kodu (nie jestem użytkownikiem R i wolałbym widzieć rzeczywiste dane i wartości wyników zamiast niewyjaśnionych zdjęć i niewyjaśnionego kodu), przepraszam. Co knują twoje działki? Jakie są współrzędne wektorów czerwonych - wagi regresyjne utajonych lub zmiennych? Do czego wykreśliłeś także dane? Co to jest discriminant predictor variable scaling scores? - termin ten nie wydaje mi się powszechny i ​​dziwny.
ttnphns
@ttnphns: dziękuję za sugestie ulepszeń pytań, które są teraz odzwierciedlone w pytaniu.
Etienne Low-Décarie
Nadal nie wiem co jest predictor variable scaling scores. Może „wyniki dyskryminujące”? W każdym razie dodałem odpowiedź, która może Cię zainteresować.
ttnphns

Odpowiedzi:

7

Analiza głównych składników i wyniki liniowej analizy dyskryminacyjnej ; dane tęczówki .

Nie będę rysował biplotów, ponieważ biploty można rysować z różnymi normalizacjami, a zatem mogą wyglądać inaczej. Ponieważ nie jestem Rużytkownikiem, mam trudności ze śledzeniem, w jaki sposób stworzyłeś swoje działki, aby je powtórzyć. Zamiast tego zrobię PCA i LDA i pokażę wyniki w sposób podobny do tego (możesz chcieć przeczytać). Obie analizy wykonane w SPSS.

Podstawowe elementy z danych tęczówki :

The analysis will be based on covariances (not correlations) between the 4 variables.

Eigenvalues (component variances) and the proportion of overall variance explained
PC1   4.228241706    .924618723 
PC2    .242670748    .053066483 
PC3    .078209500    .017102610 
PC4    .023835093    .005212184 
# @Etienne's comment: 
# Eigenvalues are obtained in R by
# (princomp(iris[,-5])$sdev)^2 or (prcomp(iris[,-5])$sdev)^2.
# Proportion of variance explained is obtained in R by
# summary(princomp(iris[,-5])) or summary(prcomp(iris[,-5]))

Eigenvectors (cosines of rotation of variables into components)
              PC1           PC2           PC3           PC4
SLength   .3613865918   .6565887713  -.5820298513   .3154871929 
SWidth   -.0845225141   .7301614348   .5979108301  -.3197231037 
PLength   .8566706060  -.1733726628   .0762360758  -.4798389870 
PWidth    .3582891972  -.0754810199   .5458314320   .7536574253    
# @Etienne's comment: 
# This is obtained in R by
# prcomp(iris[,-5])$rotation or princomp(iris[,-5])$loadings

Loadings (eigenvectors normalized to respective eigenvalues;
loadings are the covariances between variables and standardized components)
              PC1           PC2           PC3           PC4
SLength    .743108002    .323446284   -.162770244    .048706863 
SWidth    -.173801015    .359689372    .167211512   -.049360829 
PLength   1.761545107   -.085406187    .021320152   -.074080509 
PWidth     .736738926   -.037183175    .152647008    .116354292    
# @Etienne's comment: 
# Loadings can be obtained in R with
# t(t(princomp(iris[,-5])$loadings) * princomp(iris[,-5])$sdev) or
# t(t(prcomp(iris[,-5])$rotation) * prcomp(iris[,-5])$sdev)

Standardized (rescaled) loadings
(loadings divided by st. deviations of the respective variables)
              PC1           PC2           PC3           PC4
SLength    .897401762     .390604412   -.196566721    .058820016
SWidth    -.398748472     .825228709    .383630296   -.113247642
PLength    .997873942    -.048380599    .012077365   -.041964868
PWidth     .966547516   -.048781602    .200261695    .152648309  

Raw component scores (Centered 4-variable data multiplied by eigenvectors)
     PC1           PC2           PC3           PC4
-2.684125626    .319397247   -.027914828    .002262437 
-2.714141687   -.177001225   -.210464272    .099026550 
-2.888990569   -.144949426    .017900256    .019968390 
-2.745342856   -.318298979    .031559374   -.075575817 
-2.728716537    .326754513    .090079241   -.061258593 
-2.280859633    .741330449    .168677658   -.024200858 
-2.820537751   -.089461385    .257892158   -.048143106 
-2.626144973    .163384960   -.021879318   -.045297871 
-2.886382732   -.578311754    .020759570   -.026744736 
-2.672755798   -.113774246   -.197632725   -.056295401 
... etc.
# @Etienne's comment: 
# This is obtained in R with
# prcomp(iris[,-5])$x or princomp(iris[,-5])$scores.
# Can also be eigenvector normalized for plotting

Standardized (to unit variances) component scores, when multiplied
by loadings return original centered variables.

Należy podkreślić, że to ładunki, a nie wektory własne, za pomocą których zazwyczaj interpretujemy główne składniki (lub czynniki w analizie czynnikowej) - jeśli potrzebujemy interpretować. Obciążenia są regresyjnymi współczynnikami modelowania zmiennych według standardowych składników . Jednocześnie, ponieważ komponenty nie są ze sobą powiązane, są one kowariancjami między takimi komponentami a zmiennymi. Znormalizowane (przeskalowane) ładunki, takie jak korelacje, nie mogą przekraczać 1 i są bardziej przydatne do interpretacji, ponieważ efekt nierównych wariancji zmiennych jest usuwany.

To ładunki, a nie wektory własne, są zwykle wyświetlane obok siebie na biplocie z ocenami składowymi; te ostatnie są często wyświetlane w standaryzowanej kolumnie.


Wyróżniki liniowe z danymi tęczówki :

There is 3 classes and 4 variables: min(3-1,4)=2 discriminants can be extracted.
Only the extraction (no classification of data points) will be done.

Eigenvalues and canonical correlations
(Canonical correlation squared is SSbetween/SStotal of ANOVA by that discriminant)
Dis1    32.19192920     .98482089 
Dis2      .28539104     .47119702
# @Etienne's comment:
# In R eigenvalues are expected from
# lda(as.factor(Species)~.,data=iris)$svd, but this produces
#   Dis1       Dis2
# 48.642644  4.579983
# @ttnphns' comment:
# The difference might be due to different computational approach
# (e.g. me used eigendecomposition and R used svd?) and is of no importance.
# Canonical correlations though should be the same.

Eigenvectors (here, column-normalized to SS=1: cosines of rotation of variables into discriminants)
              Dis1          Dis2
SLength  -.2087418215   .0065319640 
SWidth   -.3862036868   .5866105531 
PLength   .5540117156  -.2525615400 
PWidth    .7073503964   .7694530921

Unstandardized discriminant coefficients (proportionally related to eigenvectors)
              Dis1          Dis2
SLength   -.829377642    .024102149 
SWidth   -1.534473068   2.164521235 
PLength   2.201211656   -.931921210 
PWidth    2.810460309   2.839187853
# @Etienne's comment:
# This is obtained in R with
# lda(as.factor(Species)~.,data=iris)$scaling
# which is described as being standardized discriminant coefficients in the function definition.

Standardized discriminant coefficients
              Dis1          Dis2
SLength  -.4269548486   .0124075316 
SWidth   -.5212416758   .7352613085 
PLength   .9472572487  -.4010378190 
PWidth    .5751607719   .5810398645

Pooled within-groups correlations between variables and discriminants
              Dis1          Dis2
SLength   .2225959415   .3108117231 
SWidth   -.1190115149   .8636809224 
PLength   .7060653811   .1677013843 
PWidth    .6331779262   .7372420588 

Discriminant scores (Centered 4-variable data multiplied by unstandardized coefficients)
     Dis1           Dis2
-8.061799783    .300420621 
-7.128687721   -.786660426 
-7.489827971   -.265384488 
-6.813200569   -.670631068 
-8.132309326    .514462530 
-7.701946744   1.461720967 
-7.212617624    .355836209 
-7.605293546   -.011633838 
-6.560551593  -1.015163624 
-7.343059893   -.947319209
... etc.
# @Etienne's comment:
# This is obtained in R with
# predict(lda(as.factor(Species)~.,data=iris), iris[,-5])$x

Informacje na temat obliczeń przy ekstrakcji dyskryminatorów w LDA można znaleźć tutaj . Dyskryminatory interpretujemy zwykle na podstawie współczynników dyskryminacji lub znormalizowanych współczynników dyskryminacji (te ostatnie są bardziej przydatne, ponieważ usuwa się różnicę wariancji zmiennych). To jest jak w PCA. Ale zauważ: współczynniki są tutaj regresyjnymi współczynnikami modelowania dyskryminatorów według zmiennych , a nie odwrotnie, jak to było w PCA. Ponieważ zmienne nie są nieskorelowane, współczynników nie można postrzegać jako kowariancji między zmiennymi a dyskryminatorami.

Mamy jednak inną macierz, która może służyć jako alternatywne źródło interpretacji dyskryminatorów - pogrupowane korelacje wewnątrzgrupowe między dyskryminatorami a zmiennymi. Ponieważ dyskryminatory są nieskorelowane, podobnie jak komputery PC, matryca ta jest w pewnym sensie analogiczna do znormalizowanych ładunków PCA.

Podsumowując, podczas gdy w PCA mamy jedyną macierz - ładunki - które pomagają interpretować utajenia, w LDA mamy do tego dwie alternatywne macierze. Jeśli chcesz wykreślić (biplot lub cokolwiek), musisz zdecydować, czy wykreślić współczynniki czy korelacje.

I oczywiście nie trzeba przypominać, że w PCA danych tęczówki komponenty nie „wiedzą”, że istnieją 3 klasy; nie można oczekiwać, że będą dyskryminować klasy. Osoby dyskryminujące „wiedzą”, że istnieją klasy i ich naturalną pracą jest dyskryminacja.

ttnphns
źródło
Mogę więc wykreślić, po arbitralnym skalowaniu, albo „Standaryzowane współczynniki dyskryminacyjne”, albo „Połączone korelacje wewnątrzgrupowe między zmiennymi a dyskryminatorami” na tej samej osi, co „Wyniki dyskryminacyjne”, aby interpretować wyniki na dwa różne sposoby? W swoim pytaniu nakreśliłem „Niestandardowe współczynniki dyskryminacyjne” na tej samej osi, co „Wyniki dyskryminacyjne”.
Etienne Low-Décarie
1
@Etienne Dodałem szczegóły, o które prosiłeś na dole tej odpowiedzi stats.stackexchange.com/a/48859/3277 . Dziękuję za Twoją hojność.
ttnphns
1
@TLJ, powinno być: między zmiennymi a znormalizowanymi komponentami. Wstawiłem słowo. Zobacz proszę tutaj : Loadings are the coefficients to predict...jak tutaj : [Footnote: The components' values...]. Obciążenia są współczynnikami do obliczania zmiennych ze składników znormalizowanych i ortogonalnych, na podstawie tego, jakie obciążenia są kowariancjami między nimi a tymi.
ttnphns
1
@TLJ, „these and these” = zmienne i komponenty. Powiedziałeś, że obliczyłeś wyniki surowych składników. Standaryzuj każdy składnik do wariancji = 1. Oblicz kowariancje między zmiennymi a składnikami. To byłyby ładunki. Obciążenie „znormalizowane” lub „przeskalowane” to obciążenie podzielone przez ul. odchylenie odpowiedniej zmiennej.
ttnphns
1
Ładowanie do kwadratu to udział wariancji zmiennej uwzględniany przez komponent.
ttnphns
4

Rozumiem, że można wykonać biploty liniowych analiz dyskryminacyjnych, jest on faktycznie zaimplementowany w pakietach R ggbiplot i ggord, a inna funkcja do wykonania jest opublikowana w tym wątku StackOverflow .

Również książka „Biploty w praktyce” M. Greenacre zawiera jeden rozdział (rozdział 11, patrz pdf ), a na rycinie 11.5 pokazuje dwójkę liniowej analizy dyskryminacyjnej zestawu danych tęczówki: wprowadź opis zdjęcia tutaj

Tom Wenseleers
źródło
W rzeczywistości cała książka jest dostępna bezpłatnie online (jeden pdf na rozdział) tutaj multivariatestatistics.org/biplots.html .
ameba
Aha, nawet niepotrzebne strony internetowe są potrzebne, dzięki za to!
Tom Wenseleers,
2

Wiem, że zapytano o to ponad rok temu, i ttnphns udzielił doskonałej i dogłębnej odpowiedzi, ale pomyślałem, że dodam kilka komentarzy dla tych (takich jak ja), którzy są zainteresowani PCA i LDA za ich przydatność w ekologii nauki, ale mają ograniczone zaplecze statystyczne (nie statystyki).

Komputery PCA w PCA to liniowe kombinacje oryginalnych zmiennych, które sekwencyjnie maksymalnie wyjaśniają całkowitą wariancję w wielowymiarowym zbiorze danych. Będziesz miał tyle komputerów, ile wykonujesz oryginalne zmienne. Procent wariancji, którą wyjaśniają komputery PC, jest podany przez wartości własne zastosowanej macierzy podobieństwa, a współczynnik dla każdej oryginalnej zmiennej na każdym nowym komputerze jest podany przez wektory własne. PCA nie ma żadnych założeń dotyczących grup. PCA bardzo dobrze sprawdza się, gdy widzisz, jak wiele zmiennych zmienia wartość w twoich danych (na przykład w biplocie). Interpretacja PCA zależy w dużej mierze od biplota.

LDA różni się z bardzo ważnego powodu - tworzy nowe zmienne (LD) poprzez maksymalizację wariancji między grupami. Są to nadal liniowe kombinacje oryginalnych zmiennych, ale zamiast wyjaśniać jak najwięcej wariancji dla każdej sekwencyjnej LD, zamiast tego są rysowane w celu maksymalizacji RÓŻNICY między grupami wzdłuż tej nowej zmiennej. Zamiast matrycy podobieństwa LDA (i MANOVA) stosują macierz porównawczą sumy kwadratów i produktów krzyżowych między grupami i między nimi. Wektory własne tej macierzy - współczynniki, którymi pierwotnie dotyczył PO - opisują, w jakim stopniu oryginalne zmienne przyczyniają się do tworzenia nowych LD.

Z tych powodów wektory własne z PCA dadzą ci lepszy pomysł, jak zmienna zmienia wartość w twojej chmurze danych i jak ważna jest całkowita wariancja w twoim zestawie danych, niż LDA. Jednak LDA, szczególnie w połączeniu z MANOVA, da ci statystyczny test różnicy w wielowymiarowych centrroidach twoich grup oraz oszacowanie błędu w alokacji punktów do ich odpowiednich grup (w sensie wielkości efektu wielowymiarowego). W LDA, nawet jeśli zmienna zmienia się liniowo (i znacząco) między grupami, jej współczynnik na LD może nie wskazywać na „skalę” tego efektu i zależy całkowicie od innych zmiennych uwzględnionych w analizie.

Mam nadzieję, że to było jasne. Dziękuję za Twój czas. Zobacz zdjęcie poniżej ...

Komputery osobiste i LD są zbudowane inaczej, a współczynniki dla LD mogą nie dać ci zrozumienia, jak oryginalne zmienne różnią się w twoim zestawie danych

Danno
źródło
To wszystko jest poprawne i daje +1 ode mnie, ale nie jestem pewien, w jaki sposób twoja odpowiedź odnosi się do pierwotnego pytania, które bardzo konkretnie dotyczyło tego, jak narysować dwupłat LDA.
ameba
Przypuszczam, że masz rację - odpowiedziałem na to głównie: „Korzystając z dwójki wartości uzyskanych w wyniku analizy głównego składnika, możliwe jest zbadanie zmiennych objaśniających, które składają się na każdy podstawowy składnik. Czy jest to również możliwe w przypadku liniowej analizy dyskryminacyjnej? „ - i odpowiedź brzmi, tak, ale znaczenie jest bardzo różne, jak opisano powyżej ... Dziękuję za komentarz i +1!
danno