Analyses_discriminantes

From: Daniel Chessel (chessel@biomserv.univ-lyon1.fr)
Date: Tue Jun 30 1998 - 09:49:05 MET DST


Bonjour,

Le débat entre Federico Spinazzi et Luis Tito demande les précisions qui
suivent.

1) Une partie de la question est associée à l'EXPRESSION des codes
canoniques. Un code canonique, ou variable canonique ou canonical variate
ou canonical discrimminant function (...) est une combinaison linéaire des
variables observées ayant deux caractéristiques
        a) elle subit une contrainte
        b) elle assure un optimum
Sous cette contrainte et pour cet optimum, elle existe et peut s'exprimer
de plusieurs façons.

Elle peut s'écrire à partir des données brutes

u(i) = a1*x1(i) +a2*x2(i) + ... + ap*xp(i) + r

soit sous forme de vecteurs

(1) u = a1*x1 +a2*x2 + ... + ap*xp + r*1n
(1n est le vecteur à n composantes toutes égales à 1)

On peut l'écrire comme fonction des variables centrées
si x est une variable y = x - m(x)*1n est la variable centrée
La même variable u s'écrit

(2) u = b1*y1 +b2*y2 + ... + bp*yp
(il n'y a plus de terme constant, une combinaison de variable centrées est
centrée)

On peut l'écrire comme fonction des variables normalisées
si x est une variable z = (x - m(x)*1n)/et(x) est la variable normalisée
La même variable u s'écrit

(3) u = c1*y1 +c2*y2 + ... + cp*yp

Les écarts-types peuvent être calculés avec la variance en (1/n) et la
variance en (1/n-1).
La même variable u s'écrit
(4) u = c'1*y1 +c'2*y2 + ... + c'p*yp

Ceci explique la première chose

Quand on démarre l'analyse sur le .cpta on aura la forme (2) et quand on la
démarre sur le .cnta on aura la forme (3) POUR LA MEME VARIABLE CANONIQUE.

exemple
b1 = -0.1079 (.difa en partant sur .cpta)
la moyenne de la variable 1 est 133.97 et sa variance (en 1/n) est 23.759

on attend
c1 = b1*et1 avec et1 calculé en 1/n
donc c'1 = -0.1079*sqrt(23.759) = -0.5259
On retrouve la valeur -0.5261 avec trois chiffres exacts
Sur la suivante b1= 0.0387
c1 = 0.0387*sqrt(23.759)=0.1886 et on retrouve 0.1884 avec 3 chiffres exacts

Noter que fondamentalement toute transformation bijective des données
centrées donne les mêmes codes canoniques. Faire la discrimination sur deux
variables centrées x1 et x2 donc sur le couple (x1, x2) donne le même
résultat que sur le couple (3*x1, -2*x2) ou le couple (x1/et1, x2/et2) ou
le couple (x1+x2, 3*x1-6*x2) ou les coordonnées de l'ACP de (x1, x2) ou les
coordonnées normalisée ou etc... En particulier, les codes sont
indépendants des unités. Il vaut mieux partir du .cnta pour avois des
coefficients (.difa) directement comparable entre eux. L'existence du code
et son expression sont deux choses différentes. En particulier si on
utilise (x1, x2, x1+x2) le code existe toujours et n'a pas changé mais on
ne peut plus l'exprimer de manière unique et il n'y a plus de .difa.

2) une partie de la question est associée à la DEFINITION des codes canoniques.
En effet, deux problèmes différents ont la même solution.
a) - contrainte : variance totale = 1
   - optimum : variance inter-classe maximum

b) - contrainte : variance intra-classe = 1
   - optimum : variance inter-classe maximum

Dans ADE-4 on a la solution a) et dans Manly la solution b)
Les deux ont la même signification

exemple
dans ADE-4 le premier code a une variance de 1 (en 1/n) et une variance
inter maximum de 0.2983 (première valeur propre)
dans Manly le premier code a une variance intra de 1 et une variance inter
maximum de 0.437 (première valeur propre)

Or intra+inter=totale

donc si on part du code de Manly, il a une variance totale de 1 + 0.437 et
une inter de 0.437, donc un rapport inter/totale de 0.437/(1+0.437) = 0.304
ENNUI : on a 0.304 au lieu de 0.2983

si on part du code ADE-4;, il a une intra de 1-0.2983 et une inter de
0.2983 donc un rapport intra/inter de 0.2983/(1-0.2983) = 0.425
ENNUI : on a 0.425 au lieu de 0.437 attendu

Dans le cas suivant 0.035/(1+0.035) = 0.0338
0.035/(1-0.035)=0.0363
ENNUI : même approximation numérique

Vérification

Faire MatAlg: Diagonal Inner product C=X'DY sur Skull.cpta et la
pondération unitaire (option 1) pour retrouver la matrice T p. 52 et p.113

3563.8933 -222.8133 -615.1600 426.7333
-222.8133 3635.1733 1046.2800 346.4667
-615.1600 1046.2800 4309.2603 -16.4000
426.7333 346.4667 -16.4000 1533.3334

Faire MatAlg: Diagonal Inner product C=X'DY sur Skull.whta (après
Discrimin: Within Analysis/Run pour avoir la matrice centrée par classe) et
la pondération unitaire (option 1) pour retrouver la matrice W p. 52 et
p.112

3061.0667 5.3333 11.4667 291.3000
  5.3333 3405.2666 754.0000 412.5333
 11.4667 754.0000 3505.9666 164.3333
291.3000 412.5333 164.3333 1472.1333

Faire MatAlg: Generalized inverse C=V*L-*V' pour inverser W

3.332e-04 7.627e-06 4.626e-07 -6.811e-05
7.627e-06 3.180e-04 -6.451e-05 -8.343e-05
4.626e-07 -6.451e-05 2.998e-04 -1.548e-05
-6.811e-05 -8.343e-05 -1.548e-05 7.179e-04

Faire MatAlg: Matrix addition C = A+B or C = A-B pour calculer B=T-W

502.8267 -228.1467 -626.6266 135.4333
-228.1467 229.9067 292.2800 -66.0667
-626.6266 292.2800 803.2937 -180.7333
135.4333 -66.0667 -180.7333 61.2001

résultat identique p.113

Faire MatAlg: Matrix multiplication C = A*B pour calculer W-1*B

  0.1563 -0.0696 -0.1938 0.0404
 -0.0396 0.0580 0.0514 -0.0134
 -0.1750 0.0737 0.2245 -0.0508
  0.0917 -0.0556 -0.1239 0.0430

Faire MatAlg: Largest eigenvalue pour avoir la plus grande valeur propre de
cette matrice non symétrique :

--- Number of rows: 4, columns: 4
--- Computation accuracy: 1e-05
Number of iterations: 6
Largest eigenvalue: 0.4251
The corresponding eigenvector is:
-0.59489
0.17391
0.68153
-0.38908

On obtient 0.425 attendu. Donc (snif, snif, snif, c'est normal avec Luis)
la qualité numérique des résultats de Manly n'est pas fameuse. Cela vient
de l'aspect pédagogique (magistral) du bouqin, la diagonalisation de la
matrice non symétrique avec un W-1 en 10-5 n'est pas favorable et les
programmes fonctionnent avec des diagonalisations de matrices symétriques
associée à une décomposition de Choleski (pour les amateurs). La
présentation par Manly d'une fonction discriminante non centrée (p. 114 les
moyennes par classe sont toutes négatives) est en outre peu conforme aux
usages et interdit d'achever la comparaison. Les questions de F. Spinazzi
recouvraient donc plusieurs sortes de difficultés théoriques, pratiques et
numériques. Il y a plusieurs centaines de références bibliographiques sur
l'analyse discriminante et plusieurs ouvrages qui lui sont entièrement
consacrés.

Pour les détails des relations entre les valeurs propres rk2 (carré de
corrélation canonique des diagonalisations du type B-1*T comme dans ADE-4)
et les valeurs propres lk (diagonalisation du type B-1*W comme dans Manly)
avec les relations lk=rk2/(1-rk2) ou inversement rk2 = lk/(1+lk), voir
Tomassone, R., Danzard, M., Daudin, J.J. & Masson, J.P. (1988)
Discrimination et classement. Masson, Paris. 1-173. (p. 157, avec les liens
entre les tests de Wilks, Pillai, Hotelling et Roy).

Désolé d'avoir été long, mais la question était sévère
Cordialement

>Federico Spinazzi a répondu à un message sur le forum Geostats où il est
>question d'analyse discriminante et d'ADE. Comme je sais qu'il est sur ce
>forum, j'ai pensé que ma question, préparée d'abord pour geostats, avait plus
>sa place ici.
>
>
>Dear Colleagues,
>
>I read the answer given by federico Spinazzi to Dr. Palapa on the geostats
>forum (see below).
>
>He mentioned the ADE software as a tool for discriminant analysis. As I am
>interested in using this method, I went through the example given in the ADE
>documentation for the "Discrimin" module, option "Discriminant alysis/Run"
>
>Data are from Manly, 1994 ("Multivariate statistical methods"), chapter 8.
>
>If you follow the ADE documentation, you must run
>the module "PCA:correlation matrix PCA" to standardize the data prior to using
>the discriminant analysis module. It is an overall standardization, and not by
>groups as suggested by Dr. Palapa.
>
>Yet the results differ from those of Manly.
>
>In page 113 in Manly (1994) the canonical
>discriminant functions are :
>
>Z1 = -0.0107X1 +0.0040X2 +0.0119X3 -0.0068X4
>Z2 = +0.0031X1 +0.0168X2 -0.0046X3 -0.0022X4
>Z3 = -0.0068X1 +0.0010X2 +0.0000X3 +0.0247X4
>Z4 = +0.0126 -0.0001X2 + 0.0112X3 +0.0054X4
>
>The results given by ADE using the ---.cnta file (containing the centered and
>normed table) as input file for the discriminant analysis, are (---.difa file):
>
> 0.5261 0.1884 -0.4563 0.7372
> -0.1553 1.0320 0.1221 -0.0021
> -0.6627 -0.3643 -0.0798 0.7216
> 0.2257 -0.2466 0.9505 0.2172
>
>
>If you use the "PCA: covariance matrix pca" option instead, then you get a
>centered table (by column). And the results given by ADE using the ---.cpta
>file (containing the centered table) as input file for the discriminant
>analysis,
>are (---.difa file) :
>
> -0.1079 0.0387 0.0936 0.1512
> 0.0316 0.2096 -0.0248 -0.0004
> 0.1236 -0.0680 0.0149 0.1346
> -0.0706 -0.0771 -0.2973 0.0679
>
>The value given for the first eigenvalue also differ :
>
>Manly 1st=0.437, 2nd=0.035, 3rd=0.015, 4th=0.002
>Ade standardized : 0.2983 0.0375 0.0155 0.0020
>Ade centered : 0.2983 0.0375 0.0155 0.0020
>
>
>I may be wrong somewhere. Yet I don't understand where. Can anyone help ?
>
>
>Many thanks
>
>
>L. Tito de Morais
>tito@bouake.orstom.ci
>
>
>******** Original messages from geostats *************
>
>>On Sat, 20 Jun 1998, Palapa wrote:
>>
>>> If I want to discriminate between two groups ( A and B). Each group has
>>> two variable X and Y ( those variables has different unit ).Between A
>>> and B has different mean value of X and Y. If I standardize the
>>> variables, each group will contain zero mean of variable X and Y. So
>>> the difference matrix A and B is Zero.
>>> "Do we have to standardize the variables before applying
>>> discriminant analysis ?"
>>>
>>> =palapa=
>>>
>>As far as I know (AFAIK): Malahanobis distance, used in the
>>classification/discrimination algorithm, take care of standardization.
>>Moreover, why standardize by group ? If you do such a thing, you can only
>>guess that the two correlation matrix will differ, else you'll get not
>>any difference between the two groups, but discriminant analysis won't
>>help in such case.
>>
>>Recall that the assumption here is that the two covariance/correlation
>>matrixes (spelled right ?) are equal, else you should use quadratic
>>discriminant analysis or, to get better results, regularized discriminant
>>analysis.
>>
>>To summarize: don't standardize.
>>
>>A quite good and free software (MAC and Win95/NT) for Linear Discriminat
>>Analysis and much more (no cross-validation):
>>
>>point to
>>
>>http://pbil.univ-lyon1.fr/
>>
>>and go to
>>http://pbil.univ-lyon1.fr/ADE-4/ADE-4.html
>>
>>
>>hope that help
>>
>>federico spinazzi
>>federico@syspr03.disat.unimi.it

Daniel Chessel
----------------------------------------------------------------
Universite Lyon 1 - Bat 401C - 69622 Villeurbanne CEDEX - France
Tel : 04 72 44 82 77 Fax : 04 72 43 11 41
----------------------------------------------------------------



This archive was generated by hypermail 2b30 : Sat Feb 10 2001 - 10:21:58 MET