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 04/02/2012, 23h08   #1
Invité de passage
 
Homme
Stat
Inscription : février 2012
Messages : 6
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Stat
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : février 2012
Messages : 6
Points : 0
Points : 0
Par défaut Proc NLMIXED - Différences 2 à 2

Bonjour à tous,

Je dois reprogrammer avec la NLMIXED une régression binomiale négative, et j'ai un peu de mal pour récupérer les différences 2 à 2 pour ma variable group (qui a 3 modalités).
Ci-dessous le code avec la GENMOD :

Code :
1
2
3
4
5
6
7
proc genmod DATA=work.dess1;
     class GROUP prevad ;
     model aval = GROUP prevad  / dist=negbin type1 type3;
	 estimate '1 2' GROUP 1 -1 / exp;
	 estimate '1 3' GROUP 1 0 -1 / exp;
	 estimate '2 3' GROUP 0 1 -1 / exp;
run;
Mais avec la NLMIXED l'instruction ESTIMATE n'a pas l'air de fonctionner de la même manière...
Merci pour toute aide éventuelle !
Crichton est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2012, 11h22   #2
Expert Confirmé
 
Avatar de olivier.decourt
 
Homme Olivier Decourt
Formateur en informatique
Inscription : avril 2008
Messages : 1 472
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 472
Points : 2 835
Points : 2 835
Bonjour.
Tu dois obligatoirement passer par NLMIXED ? Parce que sinon la proc GLIMMIX fait ça très bien, avec un ESTIMATE tout classique et même, plus court :
Code :
1
2
3
4
5
proc GLIMMIX DATA=work.dess1;
     class GROUP prevad ;
     model aval = GROUP prevad  / dist=negbin type1 type3;
	LSMEANS GROUP / DIFF  ;
run;
L'instruction ESTIMATE avec son option EXP existe aussi, avec la même syntaxe que dans GENMOD. L'avantage de LSMEANS ... DIFF c'est qu'elle te calcule toutes les différences 2 à 2 (avec des ajustements de multiplicité éventuellement) ; si tu veux les exponentielles, tu fais de l'ODS OUTPUT pour mettre le résultat dans une table SAS, et une étape DATA pour les exponentielles.
Bon courage.
Olivier
olivier.decourt est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 05/02/2012, 13h27   #3
Invité de passage
 
Homme
Stat
Inscription : février 2012
Messages : 6
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Stat
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : février 2012
Messages : 6
Points : 0
Points : 0
Merci pour ta réponse.
Je ne dispose pas de la GLIMMIX sur ma version de SAS, sinon effectivement ça me simplifierait grandement la vie.
Du coup je n'ai pas le choix je dois passer par la NLMIXED (Pour résumer nous sommes sous SAS 9.1.3 avec la GLIMMIX seulement en expérimentale, et je dois programmer une regression ZINB, ce qui se ferait très simplement en 9.2 avec la GENMOD ou la GLIMMIX, ou alors avec la proc COUNTREG, malheureusement je n'ai aucun de ces outils à disposition).

Citation:
Envoyé par olivier.decourt Voir le message
Bonjour.
Tu dois obligatoirement passer par NLMIXED ? Parce que sinon la proc GLIMMIX fait ça très bien, avec un ESTIMATE tout classique et même, plus court :
Code :
1
2
3
4
5
proc GLIMMIX DATA=work.dess1;
     class GROUP prevad ;
     model aval = GROUP prevad  / dist=negbin type1 type3;
	LSMEANS GROUP / DIFF  ;
run;
L'instruction ESTIMATE avec son option EXP existe aussi, avec la même syntaxe que dans GENMOD. L'avantage de LSMEANS ... DIFF c'est qu'elle te calcule toutes les différences 2 à 2 (avec des ajustements de multiplicité éventuellement) ; si tu veux les exponentielles, tu fais de l'ODS OUTPUT pour mettre le résultat dans une table SAS, et une étape DATA pour les exponentielles.
Bon courage.
Olivier
Crichton est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2012, 13h44   #4
Membre Expert
 
Homme
Biostatisticien
Inscription : juin 2009
Messages : 1 164
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Irlande

Informations professionnelles :
Activité : Biostatisticien
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : juin 2009
Messages : 1 164
Points : 1 791
Points : 1 791
J'etais sur le point de te conseiller la macro glimmix, mais la regression binomiale negative ne peut etre modelisee par cette macro.

http://www2.sas.com/proceedings/sugi26/p247-26.pdf

te donne la solution pour le modeliser via la NLMIXED.

Tu peux utliser le contrast statement dans la NLMIXED pour la comparaison de tes groupes. Je rejoins cependant les conseils d'Olivier concernant l'ajustement lie a la comparaison multiple.
Manoutz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2012, 13h49   #5
Invité de passage
 
Homme
Stat
Inscription : février 2012
Messages : 6
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Stat
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : février 2012
Messages : 6
Points : 0
Points : 0
Citation:
Envoyé par Manoutz Voir le message
J'etais sur le point de te conseiller la macro glimmix, mais la regression binomiale negative ne peut etre modelisee par cette macro.

http://www2.sas.com/proceedings/sugi26/p247-26.pdf

te donne la solution pour le modeliser via la NLMIXED.

Je rejoins les conseils d'Olivier concernant l'ajustement liee a la comparaison multiple.
Merci Manoutz. Désolé, je me suis peut-être mal fait comprendre, ce n'est pas la modélisation de la ZINB via la NLMIXED qui me pose problème, mais comment obtenir via la NLMIXED les comparaisons 2 à 2 pour ma variable 'group' qui contient 3 modalités.
Crichton est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2012, 13h52   #6
Membre Expert
 
Homme
Biostatisticien
Inscription : juin 2009
Messages : 1 164
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Irlande

Informations professionnelles :
Activité : Biostatisticien
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : juin 2009
Messages : 1 164
Points : 1 791
Points : 1 791
Prevois tu un ajustement?

Si ce n'est pas le cas, tu peux utiliser le contrast, a priori. Je ne l'ai jamais utilise sur un cas concret (tout comme l'estimate). D'ailleurs, par curiosite, en quoi est il different de celui de la proc genmod?
Manoutz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2012, 15h26   #7
Invité de passage
 
Homme
Stat
Inscription : février 2012
Messages : 6
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Stat
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : février 2012
Messages : 6
Points : 0
Points : 0
Citation:
Envoyé par Manoutz Voir le message
Prevois tu un ajustement?

Si ce n'est pas le cas, tu peux utiliser le contrast, a priori. Je ne l'ai jamais utilise sur un cas concret (tout comme l'estimate). D'ailleurs, par curiosite, en quoi est il different de celui de la proc genmod?
Oui, ajustement sur une autre variable.
Je ne sais pas exactement en quoi il est différent de celui de la GENMOD, en tout cas une syntaxe similaire à celle utilisée pour la GENMOD ne donne rien, j'ai l'impression que pour la NLMIXED il faut un peu plus écrire "à la main" ce que l'on veut mais je patauge un peu là, j'ai du mal à chercher des exemples correspondant à ce que je souhaite en furetant sur le net.
Crichton est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2012, 18h36   #8
Membre Expert
 
Homme
Biostatisticien
Inscription : juin 2009
Messages : 1 164
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Irlande

Informations professionnelles :
Activité : Biostatisticien
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : juin 2009
Messages : 1 164
Points : 1 791
Points : 1 791
Je ne connais pas ton design. Mais il est possible que tu fasses une erreur en omettant de prendre en compte le fait que tu fasses plus d'une comparaison. Je te laisse te renseigner concernant l'ajustement du test lie au fait que tu aies plus de deux groupes de traitement.

Au fond, ce n'est qu'un aspect du probleme, et tout est dans la reponse d'Olivier qui vise dans le mille encore une fois. Je ne suis pas un grand utilisateur de la genmod ou de la nlmixed, mais je ne suis pas sur de voir plus-value liee a l'utilisation de nlmixed pour repondre a ton probleme.

Pourquoi "dois"-tu passer par la NLMIXED? La Glimmix est disponible sous 9.1, en version beta certes, mais elle est dispo. Elle semble bien repondre a ton probleme. J'ai le souvenir de l'avoir utilisee sous cette version si on remonte a mes annees estudiantines. Quel probleme rencontres tu quand tu utilises glimmix sous la 9.1?
Manoutz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2012, 18h55   #9
Invité de passage
 
Homme
Stat
Inscription : février 2012
Messages : 6
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Stat
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : février 2012
Messages : 6
Points : 0
Points : 0
Citation:
Envoyé par Manoutz Voir le message
Je ne connais pas ton design. Mais il est possible que tu fasses une erreur en omettant de prendre en compte le fait que tu fasses plus d'une comparaison. Je te laisse te renseigner concernant l'ajustement du test lie au fait que tu aies plus de deux groupes de traitement.

Au fond, ce n'est qu'un aspect du probleme, et tout est dans la reponse d'Olivier qui vise dans le mille encore une fois. Je ne suis pas un grand utilisateur de la genmod ou de la nlmixed, mais je ne suis pas sur de voir plus-value liee a l'utilisation de nlmixed pour repondre a ton probleme.

Pourquoi "dois"-tu passer par la NLMIXED? La Glimmix est disponible sous 9.1, en version beta certes, mais elle est dispo. Elle semble bien repondre a ton probleme. J'ai le souvenir de l'avoir utilisee sous cette version si on remonte a mes annees estudiantines. Quel probleme rencontres tu quand tu utilises glimmix sous la 9.1?
La plus-value apportée par l'utilisation de la NLMIXED est nulle, je te rassure.
C'est juste que dans le cadre de mon boulot, je ne dois pas, à mon grand regret, produire de résultats "officiels" avec une version beta (en l'occurence la GLIMMIX ici). Sinon je ne vous embêterais pas avec ce problème.
Crichton est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2012, 20h55   #10
Membre Expert
 
Homme
Biostatisticien
Inscription : juin 2009
Messages : 1 164
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Irlande

Informations professionnelles :
Activité : Biostatisticien
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : juin 2009
Messages : 1 164
Points : 1 791
Points : 1 791
On est donc d'accord qu'il n'y a a priori pas d'interet a utiliser NLMIXED. Et GLIMMIX pas possible. Au regard des noms de tes variables (en particulier ta variable dependente), il ne semble pas qu'il faille chercher une alternative logicielle a SAS (Si je dis CDISC, j'ai bon?).

Reste le point des comparaisons. Quelque part dans ton premier modele tu fais deja des comparaisons deux a deux, mais tu ne prends pas en compte le fait que tu fasses plus d'une comparaison. Et ca peut impliquer la necessite d'un ajustement, c'est a voir selon ton design et ton objectif. Ca encore, ca peut etre jouable avec GENMOD, en utilisant le statement LSMEANS et l'option Adjust=.
Manoutz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2012, 21h51   #11
Invité de passage
 
Homme
Stat
Inscription : février 2012
Messages : 6
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Stat
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : février 2012
Messages : 6
Points : 0
Points : 0
Citation:
Envoyé par Manoutz Voir le message
On est donc d'accord qu'il n'y a a priori pas d'interet a utiliser NLMIXED. Et GLIMMIX pas possible. Au regard des noms de tes variables (en particulier ta variable dependente), il ne semble pas qu'il faille chercher une alternative logicielle a SAS (Si je dis CDISC, j'ai bon?).

Reste le point des comparaisons. Quelque part dans ton premier modele tu fais deja des comparaisons deux a deux, mais tu ne prends pas en compte le fait que tu fasses plus d'une comparaison. Et ca peut impliquer la necessite d'un ajustement, c'est a voir selon ton design et ton objectif. Ca encore, ca peut etre jouable avec GENMOD, en utilisant le statement LSMEANS et l'option Adjust=.
Je ne suis pas sur de bien comprendre ta remarque, mais si tu fais allusion au fait que je ne gère pas la multiplicité des tests, je suis d'accord avec toi. Encore que, avec la NLMIXED je n'arrive pas à en faire plusieurs donc ça pose moins de problèmes.

Pour SAS et le CDISC, one point!
Crichton est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2012, 22h40   #12
Membre Expert
 
Homme
Biostatisticien
Inscription : juin 2009
Messages : 1 164
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Irlande

Informations professionnelles :
Activité : Biostatisticien
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : juin 2009
Messages : 1 164
Points : 1 791
Points : 1 791
Citation:
si tu fais allusion au fait que je ne gère pas la multiplicité des tests, je suis d'accord avec toi.
Okay, je suppose que ca vient du SAP.

Du coup l'option DIFF/ PDIFF du statement LSMEANS devrait faire l'affaire.
Manoutz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2012, 10h33   #13
Expert Confirmé
 
Avatar de olivier.decourt
 
Homme Olivier Decourt
Formateur en informatique
Inscription : avril 2008
Messages : 1 472
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 472
Points : 2 835
Points : 2 835
Citation:
Envoyé par Crichton Voir le message
Mais avec la NLMIXED l'instruction ESTIMATE n'a pas l'air de fonctionner de la même manière...
Effectivement je viens de me replonger dans l'aide de NLMIXED (ça faisait bien longtemps que je l'évitais soigneusement) et ça n'est pas construit pareil. Dans NLMIXED tu écris directement la formule de la combinaison linéaire à tester, pas un vecteur de poids à multiplier par le vecteur de coefficients du modèle.
Si tu as appelé GP1 et GP2 les coefficients pour GROUPE=1 et GROUPE=2 dans ton modèle, tu écris
Code :
ESTIMATE "Groupe 1 vs Groupe 2" gp1-gp2 ;
Pour les exponentielles, tu les calcules à la main ou avec une étape DATA a posteriori.
Pour l'ajustement de multiplicité, soit tu laisses tomber si ce n'est pas dans le SAP (après tout, pourquoi faire du zèle ?) et au pire tu fais un Bonferroni en multipliant ta p-value brute par le nombre de comparaisons, ce n'est pas trop compliqué comme calcul .
olivier.decourt est actuellement 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 17h58.


 
 
 
 
Partenaires

Hébergement Web