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 06/02/2012, 11h16   #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 NLMIXED - GRAPHES

Bonjour,

Je modélise l'évolution de Y dans le temps (variable time) avec données répétées (variable nu) :
Exemple de table :

nu time Y NB
1 0 2 46
1 1 5 78
2 0 5 64
2 1 3 12
2 2 0 64

Y suit une loi de poisson de parametre taux*NB
et j'ai un effet aléatoire : la constante à l'origine :


Code :
1
2
3
4
5
6
7
8
9
10
proc nlmixed DATA=TABLE;
   parms int  -9.3502 trend  -0.1335 g21 1;
   eta = int + trend*time + e2;
   taux = exp(eta);
   model Y ~ poisson(taux*NB);
   random e2 ~ normal(0,g21) subject=nu;
   estimate 'int' int;
   estimate 'trend' trend;
   estimate 'g21' g21;
run;
J'aimerais avoir le graphe de l'évolution de Y pour chaque nu (1 graphe par nu) et aussi pour l'ensemble de tous les nu
Il me faudrait la droite de tendance prédite ainsi que les observations sur le même graphe

Mais je ne trouve pas quelle instruction mettre dans mon programme pour avoir ces graphes.

Merci beaucoup pour vos retours si vous pouvez m'aider,
Skywash58 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2012, 13h36   #2
Rédacteur
 
Homme Stéphane
Consultant et formateur SAS et Cognos
Inscription : avril 2009
Messages : 1 793
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Consultant et formateur SAS et Cognos
Secteur : Conseil

Informations forums :
Inscription : avril 2009
Messages : 1 793
Points : 4 014
Points : 4 014
je crois que tu devrais créer un OUTPUT et le faire indépendamment de la proc
__________________
N'oubliez pas de cliquer sur lorsque votre problème est réglé !

Moteur de recherche dans les papiers SAS
datametric est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2012, 14h00   #3
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
Assez d'accord avec Stéphane, si ce n'est que dans NLMIXED ça s'appelle PREDICT plutôt qu'OUTPUT.
Code :
predict taux*NB out=work.pred ;
Avec le tableau de coefficients du modèle (ESTIMATE) tu peux dessiner la droite avec un modèle de graphique en langage GTL (proc TEMPLATE) via l'instruction LINEPARM.
Attention, tu as une droite de régression dans l'espace log(Y/NB) !
Code :
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
DATA work.skyWash ;
  INPUT nu time Y NB ;
DATALINES ;
1 0 2 46
1 1 5 78
2 0 5 64
2 1 3 12
2 2 0 64
;
RUN ;
proc nlmixed DATA=skyWash;
parms int -9.3502 trend -0.1335 g21 1;
eta = int + trend*time + e2;
taux = exp(eta);
model Y ~ poisson(taux*NB);
random e2 ~ normal(0,g21) subject=nu;
estimate 'int' int;
estimate 'trend' trend;
estimate 'g21' g21;
predict eta out=work.pred ;
run;
proc template ;
  define statgraph skyWash ;
    begingraph ;
	  layout overlay ;
	    scatterplot x=time y=EVAL(Log(Y/NB)) / markerattrs=(symbol=circlefilled) name="vrai" legendlabel="Réalité" ;
	    scatterplot x=time y=pred  / markerattrs=(symbol=circle) name="model" legendlabel="Prédictions" ;
		lineparm  Y=-2.4059 X=0 SLOPE= -0.4479 ;
		discretelegend "vrai" "model" ;
	  endlayout ;
	endgraph ;
  end ;
run ;
PROC SGrender DATA=pred TEMPLATE=skywash ;
RUN ;
olivier.decourt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2012, 15h18   #4
Invité de passage
 
Inscription : janvier 2011
Messages : 20
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 20
Points : 0
Points : 0
Merci beaucoup, pour être sure de bien comprendre :

Dans l'instruction :
Code :
lineparm  Y=-2.4059 X=0 SLOPE= -0.4479 ;
Y=-2.4059 est la première valeur que l'on voit dans la table Pred pour la variable Pred ?

X=0 toujours car il s'agit de la constante predite à l'origine ?

SLOPE= -0.4479 il s'agit de la pente mais d'où vient cette valeur ?

Au final on a le graphique des valeurs observées pour chaque nu de log(Y/NB)(donc 2 points par abscisse) et en global la droite pour log(Y/NB) c'est bien ça ?

Peut on aussi avoir la même chose mais pour chaque nu distinct (points + droite) ?

Merci encore,
Skywash58 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2012, 15h55   #5
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
Tu as pas mal de possibilités avec le langage GTL (option GROUP pour distinguer des séries de points, BY dans la proc SGRENDER, paramètres dynamiques) et de la doc (même en français) sur Internet.
Le tout est de récupérer les coefficients associés à tes sujets. Dans NLMIXED je ne sais pas le faire. Mais si tu veux aller vers la proc GLIMMIX c'est tout simple (RANDOM avec option ESTIMATE).
Bon courage.
Olivier
olivier.decourt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2012, 16h34   #6
Invité de passage
 
Inscription : janvier 2011
Messages : 20
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 20
Points : 0
Points : 0
Merci beaucoup,
Skywash58 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2012, 17h32   #7
Rédacteur
 
Homme Stéphane
Consultant et formateur SAS et Cognos
Inscription : avril 2009
Messages : 1 793
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Consultant et formateur SAS et Cognos
Secteur : Conseil

Informations forums :
Inscription : avril 2009
Messages : 1 793
Points : 4 014
Points : 4 014
je disais OUTPUT au sens SORTIE et non l'étape dans la proc
__________________
N'oubliez pas de cliquer sur lorsque votre problème est réglé !

Moteur de recherche dans les papiers SAS
datametric 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 01h28.


 
 
 
 
Partenaires

Hébergement Web