Re: PLS

From: Daniel Chessel (chessel@biomserv.univ-lyon1.fr)
Date: Tue Jan 27 1998 - 14:33:11 MET


Federico Spinazzi pose une question qui permet de rappeler ce qu'est la régression PLS.

Quand on fait une régression multiple, il faut veiller de manière dramatique au nombre de variables. Avec n=17, comme c'est la cas ici, on ne peut sérieusement dépasser 2 dans le meilleur des cas.
Or on a 24 explicatives. Ici, c'est anormal parce que on met des variables et des rapports. Il suffit de mettre des variables seules et travailler en log pour voir intervenir les rapports (log(x/y)=log(x)-log(y)).
Mais il se peut qu'une sonde ou une analyse donnent plusieurs paramètres souvent redondants sans qu'on puisse a priori faire une sélection.

On passe alors à la régression sur composantes en remplaçant les explicatives par les coordonnées de l'ACP du tableau X. C'est en général suffisant. Mais on n'est jamais sur que les premiers axes de l'ACP définissent la meilleure régression faite avec des combinaisons de variables à forte variance (sous contrainte de poids). On passe alors à la régression PLS de première génération avec LinearReg : Initialize pour définir les paramètres, LinearReg : PLS -> Randomization Test pour définir le nombre de composantes significatives à garder puis LinearReg : MLR -> Modelling pour calculer le modèle et LinearReg : MLR -> New Data pour extrapoler. Ceci marche bien sur les données de Frederico Spinazzi.

Il arrive qu'on ait plusieurs variables à expliquer (même en grand nombre) dans un tableau Y avec un tableau X contenant peu d'explicatives (comme dans une bonne régression). Si on cherche un modèle simultané des Y par une combinaison des X on fera une ACPVI (Projectors : PCA on Instrumental Variables).

Il arrive enfin qu'on ait plusieurs expliquées dans Y et des explicatives en surnombre dans X, l'objectif étant le même. PLSgen2 : Initialize et suivant permet de traiter ce problème. Il est réservé à ce cas et il doit manquer un test pour empécher l'exécution quand il n'y a qu'une seule variable à expliquer. Il n'y a donc aucune raison d'utiliser PLSgen2 avec une seule variable à expliquer. Dans la littérature en chimiométrie (prévisions des activités des molécules par leurs paramètres de structure, 99% des cas sont des PLS1). Cela correspond aux observations de Frederico Spinazzi.

Cordialement

>I'm trying to make a PLS regressionon the following data:
>
>indipendent variables
>4.06 4.51 4.6 1.5 74.04 20.86 16.09 13.91 30.83
>15.83 0.77 0.51 4.21 5.06 35.99 41.62 41.4 47.46
>0.12 0.12 5.47 9.92 1.09 0.3
...
>6.68 7.52 7.8 2.8 86.99 35.5 11.15 12.68 44.83
>17.8 0.4 0.34 2.31 2.24 92 107.95 94.98 111.11
>0.03 0.02 5.78 6.59 3.38 1.25
>
>The variables are:
>pH2 pH3 N2 N3 C org 2 C org 3 C/N2 C/N3 CSC2
>CSC3 K2 K3 Mg2 Mg3 Ca2 Ca3 GSB2 GSB3
>Mg/Ca2 Mg/Ca3 Mg/K2 Mg/K3 N/Mg2 N/Mg3
>
>Dependent variable would be:
>
>Trasparence of vegetation cover %
>
>7.500
>22.940
...
>24.830
>30.000
>7.670
>
>I linked these two table but when I ask to LineaReg to perform its
>PLS->Modelling option with 1 or 2 components it says "Non positive
>Variance".
>
>Ehm, what does it mean?
>
>If I use PlsGen2, instead, with 1 or 2 component, it gives me the message
>"Unhandled exception: c0000005
>At address: 00407af2"
>
>What I'm doing wrongly ?
>
>(Some time ago I noticed that PlsGen2 crashed on the same data on which
>LineaReg|PLS->Modelling didn't. Next I loose the data so it was impossible
>to report this fact that, to me, seemed a bug).

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:49 MET