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 10/01/2012, 10h14   #1
Invité de passage
 
Inscription : janvier 2011
Messages : 20
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 20
Points : 0
Points : 0
Par défaut PROC GLIMMIX - TEMPS

Bonjour,

Pour étudier l'évolution d'une variable Y dans le temps, j'ai effectué la procédure GLIMMIX suivante:
Code :
1
2
3
4
5
proc glimmix DATA=TABLE;
   class nu;
   model Y/n = time /solution dist=binomial link=logit;
   random intercept time /type=AR(1) subject=nu g gcorr v vcorr;
run;
Quand la variable temps (numérique) est en 0/1/2/3/4 je n'obtiens pas les mêmes résultats que lorsque elle est en 1/2/3/4/5 ou même en 2/3/4/5/6 :
L'estimation des constantes et pentes sont sensiblement les mêmes mais les p values concernant la variable pente varient comme dans le fichier ci-joint.

A quoi sont dûes de telles différences ?

Merci beaucoup pour vos réponses,
Fichiers attachés
Type de fichier : xlsx GLIMMIX.xlsx (10,0 Ko, 4 affichages)
Skywash58 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 10h29   #2
Membre Expert
 
Homme
Biostatisticien
Inscription : juin 2009
Messages : 1 150
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Irlande

Informations professionnelles :
Activité : Biostatisticien
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : juin 2009
Messages : 1 150
Points : 1 772
Points : 1 772
Je ne suis pas un expert de la proc GLIMMIX, mais dans ton modele tu consideres la variable temps comme continue (une valeur chiffree si on peut dire, en simplifiant un peu). Il semble sense que si tu change sa valeur les resultats changent egalement.
Manoutz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 17h19   #3
Invité de passage
 
Inscription : janvier 2011
Messages : 20
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 20
Points : 0
Points : 0
C'est embêtant au niveau de la robustesse du modele dans la mesure où l'on ne peut pas mettre la variable en charactère.

La tendance de la droite doit être toujours la même or la p value associée à la pente est nettement différente lorsque l'on fait varier la variable temps : ce qui n'est pas logique non?
Skywash58 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 18h27   #4
Membre Expert
 
Homme
Biostatisticien
Inscription : juin 2009
Messages : 1 150
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Irlande

Informations professionnelles :
Activité : Biostatisticien
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : juin 2009
Messages : 1 150
Points : 1 772
Points : 1 772
je ne pense que ce soit necessaire de passer ta variable au type caractere. il suffit de declarer ta variable dans le class pour qu'elle soit consideree comme categorielle...

Apres tu ne code plus la meme chose, evidemment.

D'ailleurs, pourquoi modelises tu trois fois, avec differentes valeurs de temps?
Manoutz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 11h11   #5
Invité de passage
 
Inscription : janvier 2011
Messages : 20
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 20
Points : 0
Points : 0
J'ai bien pris nu en class :
Code :
1
2
3
4
5
proc glimmix DATA=&PAYS.&CENTRE.&Y;
class nu;
model &Y/Number_period = time / dist=binomial link=logit solution;
random intercept time / type=AR(1) subject=nu g gcorr v vcorr solution;
run;
et j'ai essayé differentes valeurs de ma variable temps pour vérifier que ça ne bouge pas les résultats or ça modifit la p-value de la pente.

Est ce normal ?
Skywash58 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 12h29   #6
Membre Expert
 
Homme
Biostatisticien
Inscription : juin 2009
Messages : 1 150
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Irlande

Informations professionnelles :
Activité : Biostatisticien
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : juin 2009
Messages : 1 150
Points : 1 772
Points : 1 772
Je ne comprends pas bien ce que modelises ni ce que tu dis.

Peux tu reexpliquer? Que modelises tu et a quoi correspond ta variable nu?
Manoutz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 14h17   #7
Invité de passage
 
Inscription : janvier 2011
Messages : 20
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 20
Points : 0
Points : 0
En fait j'ai des données avec plusieurs lignes par centre et nu est la variable identifiant le centre,
Par ligne on a
l'identifiant du centre : nu
l'année : annee
le nombre de lot : n
le nombre de succés parmi ces lots : Y

Exemple :
nu annee n Y
1 2006 45 3
1 2007 64 1
1 2008 108 2
2 2006 26 0
2 2010 45 3


A partir de la variable annee je créé la variable time de la façon suivante :
else if annee=2007 then time=1;
else if annee=2008 then time=2;
else if annee=2009 then time=3;
else if annee=2010 then time=4;Le modèle utilisé est un modele généralisé mixte avec distribution binomiale :
proc glimmix data=table;
class nu;
model Y/n = time /solution dist=binomial link=logit;
random intercept time /type=AR(1) subject=nu g gcorr v vcorr;
run;On prend pour effet aléatoire nu, le centre.
On obtient ainsi l'estimation de la constante et de la pente de la droite.

Or quand la variable temps (numérique) est en 0/1/2/3 je n'obtiens pas les mêmes résultats que lorsque elle est en 1/2/3/4 ou même en 2/3/4/5 :
L'estimation des constantes et pentes sont sensiblement les mêmes mais les p values qui leur sont associées sont très différentes.
Or il s'agit normalement de la même droite donc la p value correspondant à la pente de cette droite devrait être la même non ?
Skywash58 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 14h46   #8
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 828
Points : 2 828
La constante varie et c'est normal puisque tu décales la droite en changeant les valeurs de temps. La pente, en revanche, devrait (en théorie) rester la même.
Ton modèle me semble assez "chargé" : un effet centre et un effet centre*année ? Tu as besoin des 2 ?
olivier.decourt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 16h53   #9
Invité de passage
 
Inscription : janvier 2011
Messages : 20
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 20
Points : 0
Points : 0
en fait constantes et pentes sont à la fois en fixe et aléatoire pour tenir compte de la variabilité inter centre et l'effet centre est en aléatoire, je ne peux pas moins charger ce modèle malheureusement, car c'est ce que je cherche à modéliser...
Skywash58 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 16h58   #10
Membre Expert
 
Homme
Biostatisticien
Inscription : juin 2009
Messages : 1 150
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Irlande

Informations professionnelles :
Activité : Biostatisticien
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : juin 2009
Messages : 1 150
Points : 1 772
Points : 1 772
essaye avec TIME dans ton class (cf mes precedants posts)
Manoutz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 17h09   #11
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 828
Points : 2 828
Citation:
Envoyé par Manoutz Voir le message
essaye avec TIME dans ton class (cf mes precedants posts)
D'accord avec le temps en variable quali il n'y aura plus de souci puisque le codage sera neutre, mais on perd l'idée d'une évolution continue des probas de l'évènement au fil des années.

En essayant de reproduire le problème, je n'ai pas de variation de pente, en revanche les standard errors et les p-values bougent un peu.
olivier.decourt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 17h28   #12
Membre Expert
 
Homme
Biostatisticien
Inscription : juin 2009
Messages : 1 150
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Irlande

Informations professionnelles :
Activité : Biostatisticien
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : juin 2009
Messages : 1 150
Points : 1 772
Points : 1 772
Citation:
D'accord avec le temps en variable quali il n'y aura plus de souci puisque le codage sera neutre, mais on perd l'idée d'une évolution continue des probas de l'évènement au fil des années.
On est bien d'accord. De toute facon a partir ou choisit de representer le temps en continu, choisir if annee=2007 then time=1; n'est pas meme chose que if annee=2007 then time=0;
Manoutz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 17h41   #13
Invité de passage
 
Inscription : janvier 2011
Messages : 20
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 20
Points : 0
Points : 0
Oui j'ai essayé et effectivement là les résultats ne changent plus mais par contre on a des pentes devant chaque catégorie de la variable time et je ne comprends plus du coup la signification ?
Car time est une variable de temps et le fait de ne pas la prendre en numéric me gêne....

Merci beaucoup pour votre retour,
Skywash58 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 18h02   #14
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 828
Points : 2 828
Avec temps en variables quali, les coefficients ne représentent plus des pentes mais des écarts de moyennes (ici des log d'odds-ratios) par rapport à l'année de référence, la dernière. Ce n'est donc plus un schéma où les log-odds-ratios évoluent de manière linéaire avec l'année, mais de manière totalement libre et donc potentiellement non linéaire.

Citation:
choisir if annee=2007 then time=1; n'est pas meme chose que if annee=2007 then time=0;
Manoutz, justement, je ne vois pas la différence. En termes d'unités, ce sont les mêmes (écart entre 2 années = 1 quoi qu'il arrive), en termes de variance, ça ne change rien non plus. En quoi l'ajout de constantes au modèle (puisque c'est bien de ça qu'il s'agit) changerait autre chose que, justement, la constante du modèle ?

Je soupçonne que c'est un coup des effets aléatoires. Skywash, peux-tu vérifier que les coefficients des pentes restent les mêmes avec tous les types de codages, si tu vires du modèle l'instruction RANDOM ?
olivier.decourt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2012, 10h31   #15
Invité de passage
 
Inscription : janvier 2011
Messages : 20
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 20
Points : 0
Points : 0
Effectivement, lorsque j'applique le même modèle sans l'instruction random comme ci - dessous :
Code :
1
2
3
4
proc glimmix DATA=TABLE;
   class nu;
   model Y/n= time /solution dist=binomial link=logit;
 run;
Avec plusieurs codage pour la variable time, tout est logique : l'estimation de la constante change un peu ce qui est normal et rien ne bouge pour la pente.
Résultats détaillé sur le fichier excel ci joint.
Ce serait donc dû au fait de prendre le centre en aléatoire ainsi que la constante et pente ? Du coup au niveau de la robustesse du model y a t il une façon optimale de codage la variable time ? dans des exemples de sas elle peut être en 0/1/2 ou en 1/2/3....

Merci beaucoup,
Fichiers attachés
Type de fichier : xlsx GLIMMIX - Forum.xlsx (16,4 Ko, 3 affichages)
Skywash58 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/01/2012, 12h37   #16
Membre Expert
 
Homme
Biostatisticien
Inscription : juin 2009
Messages : 1 150
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Irlande

Informations professionnelles :
Activité : Biostatisticien
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : juin 2009
Messages : 1 150
Points : 1 772
Points : 1 772
Citation:
Avec temps en variables quali, les coefficients ne représentent plus des pentes mais des écarts de moyennes (ici des log d'odds-ratios) par rapport à l'année de référence, la dernière. Ce n'est donc plus un schéma où les log-odds-ratios évoluent de manière linéaire avec l'année, mais de manière totalement libre et donc potentiellement non linéaire.
Sauf si tu utilises l'option noint. mais on reste d'accord sur le fait que l'on part sur qqc de different du cas continu

J'ai essaye de reproduire le probleme. Je pense avoir trouve de "bonnes" donnees pour gerer la convergence, mais j'ai un probleme avec mes templates de la glimmix que sas ne retrouve pas, donc je ne genere pas de sorties...

Si qqn a une idee.. Dommage, j'aurais bien voulu continuer a creuser..
Manoutz 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 09h27.


 
 
 
 
Partenaires

Hébergement Web