Чи можуть значення масштабування в лінійному дискримінантному аналізі (LDA) використовуватися для побудови пояснювальних змінних лінійних дискримінантів?


11

Використовуючи біплот значень, отриманих за допомогою аналізу основних компонентів, можна досліджувати пояснювальні змінні, що складають кожен компонент принципу. Чи можливо це також за допомогою лінійного дискримінаційного аналізу?

Наведені приклади використання даних "Дані Іриса Едгара Андерсона" ( http://en.wikipedia.org/wiki/Iris_flower_data_set ). Ось дані райдужки :

  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

Приклад біклоту PCA з використанням набору даних райдужки в R (код нижче):

введіть тут опис зображення

Цей показник вказує на те, що довжина пелюстки та ширина пелюстки є важливими при визначенні шкали PC1 та розрізненні між групами видів. сетоза має менші пелюстки і більш широкі чашелистки.

Мабуть, подібні висновки можна зробити з побудови результатів лінійного дискримінаційного аналізу, хоча я не впевнений, що представляє сюжет LDA, звідси і питання. Вісь є двома першими лінійними дискримінантами (LD1 99% та LD2 1% сліду). Координати червоних векторів - це "Коефіцієнти лінійних дискримінантів", також описані як "масштабування" (lda.fit $ масштабування: матриця, яка перетворює спостереження в дискримінантні функції, нормалізована таким чином, що в межах групи матриця коваріації є сферичною). "масштабування" обчислюється як diag(1/f1, , p)і f1 is sqrt(diag(var(x - group.means[g, ]))). Дані можуть бути спроектовані на лінійних дискримінантів (за допомогою predict.lda) (код нижче, як показано https://stackoverflow.com/a/17240647/742447). Дані та змінні прогнозованих показників побудовані разом так, що види визначаються збільшенням змін, які можна побачити змінними предиктора (як це робиться для звичайних біплотів PCA та вищезгаданих біплотів PCA):

Приклад LDA біплот з використанням набору даних райдужної оболонки в R

З цього сюжету ширина пелюсток, ширина пелюсток і довжина пелюстки сприяють рівню, подібному до рівня LD1. Як і очікувалося, сетоза виявляється до менших пелюсток і ширших чашелистков.

Не існує вбудованого способу побудови таких біплотів від LDA в R та кількох обговорень цього Інтернету, що змушує мене насторожено ставитися до цього підходу.

Чи надає цей графік LDA (див. Код нижче) статистично достовірну інтерпретацію шкал змінних прогнозів?

Код для 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)

Код для 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)

Результати LDA такі

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

Я не можу слідувати за вашим кодом (я не користувач R, і я вважаю за краще бачити фактичні значення даних та результатів, а не незрозумілі фотографії та незрозумілий код), вибачте. Які твої сюжети діляться? Які координати червоних векторів - регресійні ваги латентів або змінних? Для чого ви побудували також описи даних? Що таке discriminant predictor variable scaling scores? - термін здається мені не звичайним і дивним.
ttnphns

@ttnphns: дякую, що запропонували вдосконалити запитання, які тепер відображені у питанні.
Етьєн Низький Декарі

Я досі не знаю, що таке predictor variable scaling scores. Може бути, "дискримінантні бали"? У будь-якому випадку я додав відповідь, яка може вас зацікавити.
ttnphns

Відповіді:


7

Аналіз основних компонентів та вихід лінійного дискримінаційного аналізу ; Дані райдужки .

Я не буду малювати біплоти, оскільки біплоти можуть малюватися з різними нормалізаціями і тому можуть виглядати по-різному. Оскільки я не Rкористувач, у мене виникають труднощі відстежити, як ви створили свої сюжети, і повторити їх. Замість цього я буду робити PCA і LDA і показати результати, в манері , подібної цієї (ви можете прочитати). Обидва аналізи зроблені в SPSS.

Основні компоненти з даних райдужної оболонки ока :

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.

Важливо підкреслити, що це навантаження, а не власні вектори, за допомогою яких ми зазвичай інтерпретуємо основні компоненти (або фактори в факторному аналізі) - якщо нам потрібно інтерпретувати. Навантаження - це коефіцієнти регресії моделювання змінних за стандартизованими компонентами . У той же час, оскільки компоненти не взаємопов'язані, вони є коваріаціями між такими компонентами та змінними. Стандартизовані (масштабовані) навантаження, як кореляції, не можуть перевищувати 1, і вони зручніші для інтерпретації, оскільки ефект нерівних змін змінних знімається.

Саме навантаження, а не власні вектори, як правило, відображаються на біплоті поряд з компонентними балами; останні часто відображаються нормалізованими стовпцями.


Лінійні дискримінанти з даних райдужної оболонки ока :

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

Про підрахунки вилучення дискримінантів у LDA дивіться тут . Ми інтерпретуємо дискримінантів зазвичай коефіцієнтами дискримінанта або стандартизованими коефіцієнтами дискримінантності (останні зручніші, оскільки диференційована дисперсія змінних знімається). Це як у PCA. Але зауважте: коефіцієнти тут є регресійними коефіцієнтами моделювання дискримінантів за змінними , а не навпаки, як це було у PCA. Оскільки змінні не пов'язані між собою, коефіцієнти не можна розглядати як коваріації між змінними та дискримінантами.

Але натомість у нас є інша матриця, яка може слугувати альтернативним джерелом інтерпретації дискримінантів - об'єднана кореляція в межах групи між дискримінантами та змінними. Оскільки дискримінанти є некорельованими, як і ПК, ця матриця є в певному сенсі аналогічною стандартизованому навантаженню PCA.

Загалом, хоча у PCA ми маємо єдину матрицю - навантаження - для інтерпретації запізнень, у LDA у нас є дві альтернативні матриці. Якщо вам потрібно побудувати графік (біплот або інше), ви повинні вирішити, чи будувати коефіцієнти чи кореляції.

І, звичайно, непотрібно нагадувати, що в даних PCA ірисів компоненти не "знають", що є 3 класи; від них не можна очікувати дискримінації класів. Дискримінанти "знають", що існують заняття, і їх природна робота полягає в тому, щоб дискримінувати.


Тож я можу побудувати після довільного масштабування або "Стандартизовані коефіцієнти дискримінанта", або "Об'єднані в межах груп кореляції між змінними та дискримінантами" на тій же осі, що і "Дискримінантні оцінки", щоб інтерпретувати результати двома різними способами? У своєму питанні я побудував «Нестандартні коефіцієнти дискримінантності» на тій же осі, що і «Дискримінантні бали».
Етьєн Лоу-Декарі

1
@Etienne Я додав деталі, про які ви просили, в нижній частині цієї відповіді stats.stackexchange.com/a/48859/3277 . Дякую за вашу щедрість.
ttnphns

1
@TLJ, має бути: між змінними та стандартизованими компонентами. Я вставив слово. Дивіться , будь ласка , тут : Loadings are the coefficients to predict...як і тут : [Footnote: The components' values...]. Навантаження - це коефіцієнти для обчислення змінних зі стандартизованих та ортогональних компонентів, в силу яких навантажень є коваріації між цими та тими.
ttnphns

1
@TLJ, "ці та ті" = змінні та компоненти. Ви сказали, що підрахували бали сировинних компонентів. Стандартизуйте кожен компонент до дисперсії = 1. Обчисліть коваріації між змінними та компонентами. Це були б навантаження. "Стандартизоване" або "масштабоване" завантаження - це навантаження, поділене на вул. відхилення відповідної змінної.
ttnphns

1
Завантаження квадрата - це частка дисперсії змінної, що враховується компонентом.
ttnphns

4

Я розумію, що біплоти лінійних дискримінантних аналізів можуть бути зроблені, це реально реалізовано в R пакетах ggbiplot і ggord, а інша функція для цього розміщена в цій потоці StackOverflow .

Також книга "Біплоти на практиці" М. Грінакре є на ній одну главу (глава 11, див. Pdf ), а на малюнку 11.5 показано біплот лінійного дискримінантного аналізу набору даних райдужної оболонки: введіть тут опис зображення


Насправді вся книга є у вільному доступі в Інтернеті (один pdf на главу) тут multivariatetestatistics.org/biplots.html .
амеба

Ага, не потрібні навіть хитрі веб-сайти, спасибі за це!
Tom Wenseleers

2

Я знаю, що це було задано більше року тому, і ttnphns дав чудову і глибоку відповідь, але я подумав, що я додам пару коментарів для тих (як я), які цікавляться PCA та LDA за їх корисність в екологічному відношенні наук, але мають обмежений статистичний досвід (не статистики).

ПК у PCA - це лінійні комбінації оригінальних змінних, які послідовно максимально пояснюють загальну дисперсію в багатовимірному наборі даних. У вас буде стільки ПК, скільки у вас оригінальних змінних. Відсоток дисперсії, яку пояснюють ПК, задається власними значеннями використовуваної матриці подібності, а коефіцієнт для кожної вихідної змінної на кожному новому ПК задається власними векторами. PCA не має припущень щодо груп. PCA дуже добре бачити, як багато змінних змінюються у ваших даних (наприклад, у біплоті). Інтерпретація PCA значною мірою покладається на біплот.

LDA відрізняється дуже важливою причиною - вона створює нові змінні (LD) за рахунок максимального розходження між групами. Це все ще лінійні комбінації оригінальних змінних, але замість того, щоб пояснювати якомога більше дисперсій з кожним послідовним LD, натомість вони малюються для максимізації РІЗНОМИНИ між групами уздовж цієї нової змінної. Замість матриці подібності, LDA (та MANOVA) використовують матрицю порівняння між і в межах групи сумою квадратів та перехресних добутків. Власні вектори цієї матриці - коефіцієнти, якими спочатку займався ОП - описують, наскільки оригінальні змінні сприяють формуванню нових ЛД.

З цих причин власні вектори з PCA дадуть вам краще уявлення про те, як змінна змінює значення у вашій хмарі даних та наскільки важливо сумарне відхилення у вашому наборі даних, ніж LDA. Однак LDA, особливо в поєднанні з MANOVA, дасть вам статистичний тест на різницю багатоваріантних центроїдів ваших груп та оцінку помилок у розподілі балів за їхніми відповідними групами (у певному значенні, розмір багатоваріантного ефекту). У LDA, навіть якщо змінна змінюється лінійно (і суттєво) по групах, її коефіцієнт на LD може не вказувати на "масштаб" цього ефекту і повністю залежить від інших змінних, що входять до аналізу.

Я сподіваюся, що це було зрозуміло. Дякую за ваш час. Дивіться малюнок нижче ...

ПК та ЛД побудовані по-різному, і коефіцієнти для ЛД можуть не дати тобі відчуття того, як оригінальні змінні змінюються у вашому наборі даних


Це все правильно, і +1 від мене, але я не впевнений, як ваша відповідь відповідає на оригінальне запитання, яке було конкретно про те, як намалювати біплот LDA.
амеба

Я маю на увазі, що ви праві - я відповідав на це, здебільшого "Використовуючи біплот значень, отриманих за допомогою аналізу основних компонентів, можна досліджувати пояснювальні змінні, що складають кожен компонент принципу. Це також можливо за допомогою лінійного дискримінантного аналізу? " - і відповідь, так, але сенс дуже різний, як описано вище ... Дякую за коментар та +1!
данно
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.