Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > SAS STAT
SAS STAT Forum d'entraide sur les fonctionnalités liées à la statistique sur SAS : statistique descriptive, test, régression, classification
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/07/2011, 09h31   #1
Membre habitué
 
Homme Julien
Ingénieur d'études / Biostatisticien
Inscription : décembre 2009
Messages : 304
Détails du profil
Informations personnelles :
Nom : Homme Julien
Localisation : France

Informations professionnelles :
Activité : Ingénieur d'études / Biostatisticien
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : décembre 2009
Messages : 304
Points : 101
Points : 101
Par défaut Question math par rapport à la procédure varclus

Bonjour, j'essai de retrouver à la main les résultats que j'ai obtenu avec la procédure varclus (option CENTROID) mais comment calcul-t'on ça:

Citation:
assigning each variable to the rotated component with which it has the higher squared correlation
En résumé je cherche depuis plusieurs jours la formule qui permet de calculer le R square de corrélation entre une variable explicative et une composante principale...

Merci d'avance pour votre intérêt à mon problème et votre aide.
joyeux_lapin13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2011, 09h49   #2
Expert Confirmé
 
Avatar de olivier.decourt
 
Homme Olivier Decourt
Formateur en informatique
Inscription : avril 2008
Messages : 1 467
Détails du profil
Informations personnelles :
Nom : Homme Olivier Decourt
Âge : 34
Localisation : France

Informations professionnelles :
Activité : Formateur en informatique
Secteur : Conseil

Informations forums :
Inscription : avril 2008
Messages : 1 467
Points : 2 823
Points : 2 823
Si mes souvenirs sont bons, une corrélation en ACP est matérialisée par les coordonnées factorielles, peut-être à un facteur mulitplicatif (racine carrée de la valeur propre ?) près. Si effectivement r(X,F)=racine(lambdaF)*xF avec lambdaF la valeur propre de l'axe F, xF la coordonnée factorielle de X sur F, alors ta corrélation au carré sera la valeur propre multipliée par la coordonnée au carré.
A vérifier avec la doc des procs PRINCOMP ou FACTOR, ou un tutoriel d'ACP bien formulatoire sur le Net.
Bon courage.
Olivier
olivier.decourt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2011, 10h07   #3
Membre habitué
 
Homme Julien
Ingénieur d'études / Biostatisticien
Inscription : décembre 2009
Messages : 304
Détails du profil
Informations personnelles :
Nom : Homme Julien
Localisation : France

Informations professionnelles :
Activité : Ingénieur d'études / Biostatisticien
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : décembre 2009
Messages : 304
Points : 101
Points : 101
Merci Olivier, en effet si c'est bien la formule alors je comprends mieux ce qu'il se passe pour une variable avec un coordonnée plus forte sur une composante et qui finalement est envoyé dans l'autre groupe alors qu'elle avait une coordonnée légérement plus faible sur celle là.
joyeux_lapin13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2011, 18h34   #4
Expert Confirmé
 
Avatar de olivier.decourt
 
Homme Olivier Decourt
Formateur en informatique
Inscription : avril 2008
Messages : 1 467
Détails du profil
Informations personnelles :
Nom : Homme Olivier Decourt
Âge : 34
Localisation : France

Informations professionnelles :
Activité : Formateur en informatique
Secteur : Conseil

Informations forums :
Inscription : avril 2008
Messages : 1 467
Points : 2 823
Points : 2 823
C'est a priori bien la formule et tu peux le vérifier avec ce petit exemple : la variable R calculée dans la table est bien égale aux corrélations de la proc CORR. Donc effectivement, ce n'est pas qu'une question de coordonnées factorielles mais aussi de valeurs propres des facteurs.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
ODS OUTPUT eigenVectors = work.vecteurs
		   eigenValues  = work.lambda ;
PROC PRINCOMP DATA=sashelp.shoes 
			   OUT=work.acp ;
  VAR inventory sales stores returns ;
RUN ;
PROC CORR DATA=work.acp ;
  VAR inventory sales stores returns ;
  WITH prin1 ;
RUN ;
DATA correlations ;
   SET work.vecteurs ;
   IF _N_=1 THEN SET work.lambda (OBS=1) ;
   r = prin1 * SQRT(eigenvalue) ;
RUN ;
olivier.decourt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2011, 13h50   #5
Membre habitué
 
Homme Julien
Ingénieur d'études / Biostatisticien
Inscription : décembre 2009
Messages : 304
Détails du profil
Informations personnelles :
Nom : Homme Julien
Localisation : France

Informations professionnelles :
Activité : Ingénieur d'études / Biostatisticien
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : décembre 2009
Messages : 304
Points : 101
Points : 101
Je reviens à la charge vis à vis de mon problème, le mieux c'est que je fournisse un exemple et les résultats en commentant ce que j'arrive à retrouver (c'est à dire pas grand chose) et ce que je n'arrive pas à retrouver (c'est à dire presque tout...).

Merci pour ta formule Olivier, elle m'a permis de comprendre une partie de ce qui se passe, j'ai d'ailleurs trouver ce document qui aurait pu être ma solution: http://jms.insee.fr/files/documents/...ELEIN-ACTE.PDF mais en fait non...

Donc je prends la matrice suivante:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
V_best V_alea V_parabol V_complement1 V_complement2
0.897	8.1472	3.1101	1.9593	9.2858
2.0949	9.0579	4.1008	2.5472	10.7572
3.0307	1.2699	4.7876	3.1386	11.7537
4.0135	9.1338	7.0677	4.1493	9.3804
5.0515	6.3236	6.0858	5.2575	10.5678
6.0261	0.9754	4.9309	9.35	1.1299
6.9059	2.785	4.0449	10.1966	2.5688
7.9838	5.4688	3.0101	11.2511	3.4694
8.9854	9.5751	5.9495	9.616	4.0119
9.9468	9.6489	6.8729	10.4733	5.3371
11.1682	1.5761	1.0898	16.8407	11.0759
11.9124	9.7059	1.9868	17.2543	9.054
12.9516	9.5717	2.9853	18.8143	10.5308
13.9288	4.8538	10.008	19.2435	11.7792
14.8826	8.0028	8.9052	20.9293	9.934
15.9808	1.4189	8.0411	11.3517	16.1622
16.9726	4.2176	2.0826	9.8308	17.7943
18.153	9.1574	1.0536	10.5853	18.3112
18.9751	7.9221	9.0649	11.5497	19.5285
19.8936	9.5949	10.0826	9.9172	20.1656
Et j'y applique la procédure VARCLUS suivante (syntaxe):

Code :
1
2
3
4
5
6
7
8
9
 
PROC VARCLUS DATA = TABLE OUTTREE = TREE;
VAR V_best V_alea V_parabol V_complement1 V_complement2;
RUN;
 
PROC TREE DATA = TREE HORIZONTAL;
HEIGHT _propor_;
ID _label_;
RUN;
Donc je fais la 1ere ACP sur le jeu de 5 variables et j'arrive à retrouver comme SAS vp1 = 2.072475 et vp2 = 1.0727 qui sont supérieurs à 1 et donc je fais un premier split.

Là je cherche parmi mes 5 variables celles qui sont plus corrélées à la composante C1 (soit celle associé à vp1) ou à la composante C2 (associé à vp2).

Le document que j'ai lié semble indiquer qu'il faut dans un premier temps calculer les 'Standardized Scoring Coefficients', et à partir de ces coefficients appliquer la formule du R de la page 11 qui prend également en compte la valeur propre de la composante considérée (là c'était la formule que m'a donné Olivier finalement).

Une fois que j'ai pour chaque variable ce R, je fais le carré de R (d'où le Rsquare) et là j'ai les valeurs suivantes que SAS me renvoit:
Citation:
Cluster N° Variable OwnCluster
1 V_parabol 0.1970
1 V_complement1 0.4143
1 V_complement2 0.5121
1 V_best 0.9116
2 V_alea 1.0000
Et en effet, si je met au carré les valeurs contenues dans la table 'Cluster Structure', je retrouve celle de la table ci-dessus.

Donc finalement la seule chose qu'il me manquerait se serait le calcul des coefficients 'Standardized Scoring Coefficients' que SAS me renvoit:
Citation:
Cluster 1 2
V_parabol 0.21811 0.00000
V_alea 0.00000 1.00000
V_complement1 0.31629 0.00000
V_complement2 0.35165 0.00000
V_best 0.46919 0.00000
et sur lesquels je n'arrive pas à mettre la main, même si ironiquement j'ai voulu retrouver les résultats de mon lien pour la formule qui allie donc les parts d'inerties et les coefficients de cette table et j'ai pas exactement trouvé les mêmes choses que l'auteur à 10^-2 prés.

Quelqu'un saurait où je peux trouver la formule des 'Standardized Scoring Coefficients'?
joyeux_lapin13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2011, 15h18   #6
Membre habitué
 
Homme Julien
Ingénieur d'études / Biostatisticien
Inscription : décembre 2009
Messages : 304
Détails du profil
Informations personnelles :
Nom : Homme Julien
Localisation : France

Informations professionnelles :
Activité : Ingénieur d'études / Biostatisticien
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : décembre 2009
Messages : 304
Points : 101
Points : 101
Bonjour, je me permet de up mon topic car j'ai pu avancer un peu grâce à cette page: http://support.sas.com/kb/22/554.html et donc il semblerait que pour pouvoir calculer ce qui me manque il faut juste que j'inverse la matrice de corrélation et que je la multiplie par la "pattern matrix".

Aussi au risque de passer pour l'ignare du coin, c'est quoi une "pattern matrix"? eventuellement j'ai souvenir d'avoir repris les calculs pour les "pattern covariate" lorsque j'avais refait les calculs de la proc LOGISTIC, mais je pense pas que ce soit lié...

Quelqu'un qui saurait me filer un p'tit coup d'main ?
joyeux_lapin13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h04.


 
 
 
 
Partenaires

Hébergement Web