IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SAS STAT Discussion :

Question math par rapport à la procédure varclus


Sujet :

SAS STAT

  1. #1
    Membre habitué
    Homme Profil pro
    Ingénieur d'études / Biostatisticien
    Inscrit en
    Décembre 2009
    Messages
    354
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Décembre 2009
    Messages : 354
    Points : 194
    Points
    194
    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:

    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.

  2. #2
    Expert confirmé
    Avatar de olivier.decourt
    Homme Profil pro
    Formateur R/SAS/statistiques
    Inscrit en
    Avril 2008
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Formateur R/SAS/statistiques
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 064
    Points : 4 478
    Points
    4 478
    Par défaut
    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
    Bon courage.
    Olivier

  3. #3
    Membre habitué
    Homme Profil pro
    Ingénieur d'études / Biostatisticien
    Inscrit en
    Décembre 2009
    Messages
    354
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Décembre 2009
    Messages : 354
    Points : 194
    Points
    194
    Par défaut
    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à.

  4. #4
    Expert confirmé
    Avatar de olivier.decourt
    Homme Profil pro
    Formateur R/SAS/statistiques
    Inscrit en
    Avril 2008
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Formateur R/SAS/statistiques
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 064
    Points : 4 478
    Points
    4 478
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 ;
    Bon courage.
    Olivier

  5. #5
    Membre habitué
    Homme Profil pro
    Ingénieur d'études / Biostatisticien
    Inscrit en
    Décembre 2009
    Messages
    354
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Décembre 2009
    Messages : 354
    Points : 194
    Points
    194
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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:
    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:
    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'?

  6. #6
    Membre habitué
    Homme Profil pro
    Ingénieur d'études / Biostatisticien
    Inscrit en
    Décembre 2009
    Messages
    354
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Décembre 2009
    Messages : 354
    Points : 194
    Points
    194
    Par défaut
    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 ?

Discussions similaires

  1. [PHP 5.2] [POO] Impact de la POO par rapport au procédural
    Par YoyoS dans le forum Langage
    Réponses: 4
    Dernier message: 16/03/2009, 03h05
  2. [Configuration] question par rapport aux chemins
    Par Death83 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 16
    Dernier message: 11/12/2006, 10h24
  3. Réponses: 7
    Dernier message: 11/09/2006, 14h23
  4. [XHTML] XHTML: plusieur question par rapport au html
    Par pierrot10 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 30/08/2006, 08h50
  5. [MATH] Point par rapport à une droite
    Par teska dans le forum Mathématiques
    Réponses: 6
    Dernier message: 14/05/2003, 16h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo