Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > SAS Base
SAS Base Forum d'entraide sur SAS base : étape data, procédures non statistiques, procédures non graphiques, SQL
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 22/03/2011, 20h10   #1
Invité de passage
 
Homme
Inscription : mars 2011
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations forums :
Inscription : mars 2011
Messages : 7
Points : 1
Points : 1
Par défaut Différences de moyennes -- obtenir des p dans des tables croisées?

Bonjour,

J'aimerais trouver un moyen pour afficher dans une même table:

1- les statistiques de plusieurs variables dépendantes, ventilées selon différentes variables catégorielles.
2- la valeur de p pour le test de différence de moyennes (anova/t) pour chaque croisement (chaque ventilation ou paire de variables).

Comme j'ai de nombreux groupes de données, ce serait très long (et difficile à automatiser) de faire séparéement ces deux étapes séparément et d'aggréger dans une seule et même table les résultats produits.

Pour l'instant, ce que j'ai trouvé qui se rapproche le plus est un proc tabulate avec intervales de confiance. Je peux donc identifier les moyennes qui diffèrent à p<0.05, mais je n'ai pas la valeur précise de ce p.

Je donne ma solution simplifiée... en réalité j'ai beaucoup plus de variables VAR et CLASS:

Code :
1
2
3
4
5
6
7
PROC TABULATE DATA = LIBRARY.DAT;
  BY groupe;
  CLASS sex age_tercile ;
  VAR score1 score2 score3 ;
  TABLE  groupe, sex age_ter , 
         (score1 score2 score3) * (N MEAN LCLM UCLM STD);
run;
Merci beaucoup à quiconque pourra m'éclairer!
dd999 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2011, 10h06   #2
Membre Expert
 
Homme
Biostatisticien
Inscription : juin 2009
Messages : 1 143
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Irlande

Informations professionnelles :
Activité : Biostatisticien
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : juin 2009
Messages : 1 143
Points : 1 760
Points : 1 760
Bonjour dd999 et bienvenu sur le forum,

Je me lance pour tenter de répondre à tes deux problèmes:

1/ de quelles statistiques parles tu? Je crois comprendre que ton problème est un problème de reporting (de présentation de tes statistiques dans le tableau de sortie). Donc tout dépend de la façon dont tu veux présenter tes données (si on ne le sait pas, on ne pourra pas t'aider). Il existe deux procédures standard pour le reporting, proc tabulate comme tu l'as repéré, et proc report, avec une préférence personnelle pour report. C'est d'ailleurs généralement la procédure la plus utilisée, cependant l'utilisation de l'une ou de l'autre peut se justifier suivant la sortie voulue. Tu trouveras des sujets sur les deux procédures sur le forum en cherchant un peu.

2/ Avant de se lancer sur du sas, es tu au point sur ton approche méthodologique? S'agit-il de données appariées? Y-a-t-il besoin d'ajustement pour comparaison multiple (deux à deux, à un groupe référence..)

Dernière question question, quel est l'impact de ta variable de groupe (dans le statement by) sur les deux points au dessus?

Vu que tu as deux problèmes distincts, ce serait peut être mieux de lancer deux sujets différents afin qu'on ne se mélange pas les pinceaux.

Bon courage,

Manoutz
Manoutz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2011, 18h29   #3
Responsable SAS
 
Inscription : septembre 2006
Messages : 1 961
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 1 961
Points : 4 672
Points : 4 672
Bonjour,
Si c'est la p-value que tu veux calculer, je ne suis pas sûr qu'elle puisse se calculer dans une PROC TABULATE.
Il me semble que la proc tabulate est plus une table de synthèse de statistique classique qu'une table donnant des statistiques plus élaborées comme des tests statistiques. Tests reposant d'ailleurs sur des hypothèses statistiques qu'il convient de vérifier et qui sont adaptées aux procédures utilisées.
__________________
Les balises code
FAQ SAS
Rubrique SAS

Si vous souhaitez contribuer à la rubrique SAS, contactez-moi ou tout autre membre de l'équipe BI par MP.
fafabzh6 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2011, 05h19   #4
Invité de passage
 
Homme
Inscription : mars 2011
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations forums :
Inscription : mars 2011
Messages : 7
Points : 1
Points : 1
Bonjour et merci pour la réponse rapide!

Le p que je désire inscrire à même les tables proviendrait d'un test-T lorsque la variable CAT est binaire, et d'une ANOVA lorsque la variable a plus de 2 catégories.

Je ne crois pas non plus que proc tabulate me permette de faire cela... L'idée serait d'avoir quelque chose comme ça... Le p apparaît sur la rangée de la dernière catégorie, même si en réalité il ne concerne pas davantage une catégorie qu'une autre.
Code :
1
2
3
4
5
6
7
8
9
10
 
            VAR1         |       VAR2
       N    MOY   p      |  N   MOY   p
CAT1                     |
  a    50   24.2         |  50  20.1
  b    49   23.8  0.89   |  49  29.4 .01   <-- test-t
CAT2                     |
  a    50   25.1         |  50  25.5
  b    49   23.8         |  49  24.4
  c    49   22.1  0.03   |  49  25.2 .91   <-- anova
(Ça irait mieux avec une police courrier, mais bon)

Les aspects méthodologiques sont certainement pris en compte. Mais merci de vous en soucier... Nous n'en sommes qu'à une phase d'exploration et j'essaie de voir ce qui est possible vs ce qui ne l'est pas, afin d'orienter mon travail. Je n'ai pas l'habitude de travailler avec autant de jeux de données (non, ce ne sont pas des données appariées), et c'est aussi un exercice d'apprentissage que tout cela! Pour les besoins de l'exercice, vous pouvez faire comme si tous les postulats sont respectés.

Si je devais faire le tout en 2 étapes, je pourrais générer les anovas d'abord, placer les outputs dans une table temporaire pour ensuite récupérer les p de cette table et les ajouter aux tableaux générés par tabulate ou report... Mais ce n'est pas une mince affaire, je me trompe?

Merci encore!
dd999 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2011, 08h36   #5
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
Citation:
Envoyé par dd999 Voir le message
Si je devais faire le tout en 2 étapes, je pourrais générer les anovas d'abord, placer les outputs dans une table temporaire pour ensuite récupérer les p de cette table et les ajouter aux tableaux générés par tabulate ou report... Mais ce n'est pas une mince affaire, je me trompe?
Bonjour.
Pas une mince affaire, c'est certain, mais probablement une des façons de faire les plus simples. Tu peux utiliser ODS OUTPUT pour récupérer tes statistiques et tes p-values dans des tables temporaires. Les mixer ensuite avec une étape DATA ou du SQL en une seule table.
Et pour la mise en page que tu proposes, je penche plutôt pour une proc REPORT que pour TABULATE : ce sera moins galère à mes yeux pour n'afficher le p qu'à certaines lignes. Enfin c'est une affaire de goûts, TABULATE pourra aussi te permettre d'y arriver.
Bon courage.
Olivier
olivier.decourt est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 24/03/2011, 11h19   #6
Membre Expert
 
Homme
Biostatisticien
Inscription : juin 2009
Messages : 1 143
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Irlande

Informations professionnelles :
Activité : Biostatisticien
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : juin 2009
Messages : 1 143
Points : 1 760
Points : 1 760
OK pour la méthodo, si je comprends bien, tu veux tester globalement l'égalité des moyennes (et non une moyenne donnée par rapport à une autre ). Je soulignais juste cet aspect car j'ai parfois été des situations ou des partenaires se plaignaient à la fin de l'étude que les résultats ne répondent exactement à la question (malgré mes conseils de mise en garde au début de l'étude)..

Sinon je pense qu'on est d'accord sur l'approche: 1, rassembler les données (provenant d'une proc mixed par exemple) dans une table, et 2 passer au reporting (et la dessus, je partage l'opinion d'Olivier pour la report)
Manoutz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/03/2011, 23h37   #7
Invité de passage
 
Homme
Inscription : mars 2011
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations forums :
Inscription : mars 2011
Messages : 7
Points : 1
Points : 1
Merci pour vos réponses, ça m'éclaire!

J'en profite pour dire que je suis content d'avoir trouvé ce forum tout en français!

Au plaisir
dd999 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h36.


 
 
 
 
Partenaires

Hébergement Web