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 :

P-value non arrondie dans proc freq


Sujet :

SAS STAT

  1. #1
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 23
    Points : 18
    Points
    18
    Par défaut P-value non arrondie dans proc freq
    Bonjour,
    J'ai une question simple je pense (mais je ne trouve pas la réponse) :
    Je voudrais savoir comment on obtient une p-value (chisq ou exact) non arrondie dans une proc freq. Je ne veux pas avoir des résultats comme : <.0001
    Merci d'avance.
    Marion

  2. #2
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 23
    Points : 18
    Points
    18
    Par défaut
    Bonjour, j'ai trouvé pour le chi² avec la macro suivante, mais je n'arrive pas à l'adapter pour un fisher exact test... Quelqu'un pourrait m'aider ?

    macro FREQUENCE


    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    %macro frequence (fichier,listeg,var,sortie);  
     
    	/******************** FREQUENCE DE DATASET ************************ 
    	* fichier 	: nom de la table à traiter			* 
    	* listeg	: liste des variables				* 
    	*  var		: variable à analyser 				*
    	*  sortie 	: nom du fichier.rtf en sortie output		* 
     	 ******************************************************************/ 
     
    	/* récupération du nombre de variables */ 
    	%global nbvar; 
    	data fichier; 
    		set &fichier; 
    		array v{*} &listeg; 
    		call symput ("nbvar",dim(v)); 
    	run; 
     
    	/* on va créer une proc freq pour chaque variable */ 
    	%do i=1 %to &nbvar; 
     
    		/* récupération du nom de la variable à traiter */ 
    		%global nomvar; 
    		data fichier; 
    			set fichier; 
    			array lv{*} &listeg; 
    			call symput("nomvar",vname(lv{&i})); 
    		run; 
     
    * frequence=tableau en liste des effectifs; 
    * outpct=recuperation des frequences dans la table frequence; 
    * test=recupere les tests du khi deux et le test de mantel haenszel; 
     
    		proc freq data=fichier noprint ; 
    			tables &nomvar*&var / chisq out=frequence(where=(&nomvar ne . and &var ne .)) outpct; 
    		output out=test pchi ; 
     
    		data tableau; 
    			merge frequence test; 
    		    eff=put(pct_col,numx6.1) || " ("|| left(put(count,5.) || ") "); 
     			rename &nomvar=Modalite;
    			Variable="&nomvar";
    			%let def=across "&var"; 
    			format p_pchi numx6.4; 
     			 run;
     
    /*Je colle tous les résultats pour obtenir un unique fichier &sortie*/
    		data sortie;  
    		%if &i=1 %then set tableau
    		%else set sortie tableau;;	  
    		run;  
     
    /*J'efface le fichier test et j'en crée un nouveau contenant des données manquantes afin d'avoir des données manquantes pour les khi² incalculables*/
                    proc delete data=test;
                    run; 
     
                    Data test;
                    P_pchi=.;
                    run;
    %END; 
    ods rtf body=&sortie;
     
    proc report data=sortie nowd headline headskip; 
    column variable modalite &var, eff p_pchi; 
    define modalite/group; 
    define variable/group;
    define &var/&def; 
    define eff/ '%col (Freq)'; 
    * recuperation de la p_value du Khi Deux; 
    define p_pchi/'P X2'; 
    break after variable/skip; 
    run; 
    ods rtf close;
    %mend frequence;
     
    /**********************************************************************************************/

  3. #3
    Membre expérimenté
    Homme Profil pro
    Développeur en SAS/ Statisticien
    Inscrit en
    Janvier 2013
    Messages
    483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur en SAS/ Statisticien
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 483
    Points : 1 552
    Points
    1 552
    Par défaut
    Bonjour,
    J’ ai adapté ta macro pour quelle affiche la valeur « fisher exact test ».
    Les variables à analyser doivent être numériques. Tu peux l’essayer :
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
     
    %macro frequence (fichier,listeg,var,sortie);  
    /******************** FREQUENCE DE DATASET ************************
    * fichier : nom de la table à traiter *
    * listeg : liste des variables *
    * var : variable à analyser *
    * sortie : nom du fichier.rtf en sortie output *
    ******************************************************************/
     
    /* récupération du nombre de variables */
    %global nbvar;
    data fichier;
    set &fichier;
    array v{*} &listeg;
    call symputx("nbvar", dim(v));	 
    run;	 
     
    /* on va créer une proc freq pour chaque variable */
    %do i=1 %to &nbvar;
     
    /* récupération du nom de la variable à traiter */
    %global nomvar;
    data fichier;
    set fichier;
    array lv{*} &listeg;
    call symputx("nomvar", vname(lv{&i}));
    run;	   
     
    * frequence=tableau en liste des effectifs;
    * outpct=recuperation des frequences dans la table frequence;
    * test=recupere les tests du khi deux et le test de mantel haenszel;
     
    proc freq data=fichier noprint ;
    tables &nomvar*&var / FISHER out=frequence(where=(&nomvar ne . and &var ne .)) outpct;
    output out=test FISHER ;
    run;
     
    data tableau;
    merge frequence test;
    eff=put(pct_col, numx6.1) || " ("|| left(put(count, 5.) || ") ") ;
    rename &nomvar=Modalite;
    Variable="&nomvar";
    %let def=across "&var";
    format XP2_FISH numx6.4;
    run;
     
    /*Je colle tous les résultats pour obtenir un unique fichier &sortie*/
    data sortie;
    %if &i=1 %then set tableau
    %else set sortie tableau;;
    run;
     
    /*J'efface le fichier test et j'en crée un nouveau contenant des données manquantes afin d'avoir des données manquantes pour les khi² incalculables*/
    proc delete data=test;
    run;
     
    Data test;
    XP2_FISH=.;
    run;
    %END;
     
    ods rtf body=&sortie;
    proc report data=sortie nowd headline headskip;
    column variable modalite &var, eff XP2_FISH;
    define modalite/group;
    define variable/group;
    define &var/&def;
    define eff/ '%col (Freq)';
    * recuperation de la p_value du Khi Deux;
    define XP2_FISH/'XP2_FISH';
    break after variable/skip;
    run;
    ods rtf close;
    %mend frequence;
    Bon Courage
    Ward

  4. #4
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 23
    Points : 18
    Points
    18
    Par défaut
    Ca marche! Merci beaucoup!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Proc Freq: colpct dans un out=matable
    Par debdev dans le forum SAS STAT
    Réponses: 2
    Dernier message: 28/09/2010, 13h57
  2. Réponses: 17
    Dernier message: 22/09/2010, 14h44
  3. Validation : {value} non remplacé dans le message
    Par 84mickael dans le forum Hibernate
    Réponses: 1
    Dernier message: 02/12/2009, 23h12
  4. frequences cumulées dans une table après une proc freq
    Par Sasophile dans le forum SAS STAT
    Réponses: 2
    Dernier message: 24/06/2009, 16h48
  5. [Reporting] ordre des colonnes dans une sortie de proc freq
    Par PhYx dans le forum ODS et reporting
    Réponses: 2
    Dernier message: 22/07/2008, 18h04

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