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/10/2011, 14h54   #1
Invité de passage
 
Neige Bulle
Inscription : août 2010
Messages : 17
Détails du profil
Informations personnelles :
Nom : Neige Bulle

Informations forums :
Inscription : août 2010
Messages : 17
Points : 2
Points : 2
Par défaut proc phreg : recupérer erreurs reccuperer de TypeIII

Bonjour,

J'ai une question concernant la procédure PHREG et le CLASS statment.
Je fais un modele de Cox dans lequel une covariable (TOTO) est prise en compte en tant que dependant du temps. Cette variable a 3 modalités.
Generalement, lorsqu'une variable a plus de 2 modalités on peut preciser dans le CLASS statment la modalité de reference. Avec le "array" dans la procédure ça ne marche pas.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
PROC PHREG DATA = A;
   CLASS SEXE(REF='M') TOTO(REF='C')/PARAM = REF;
   MODEL TEMPS*DC(0) = TOTO SEXE /RL;
     ARRAY DEL   {4} DELAI1 - DELAI4;
     ARRAY TOT   {4} TOTO - TOTO;
     TOT=0; DC=0;
     DO I = 1 TO 4;
         IF TEMPS GT DEL[I] AND DEL[I] NE . THEN DO; 
           TOTO = TOT[I]; 
         END;
     END;
RUN;
le message d'erreur met que TOTO n'existe pas.

En attendant j'ai créé des variables indicatrices: TOTOa (A versus C) TOTOb(B versus C) mais du coup je n'arrive pas à avoir le Type3 p-value vu que les variables indicatrices sont considérées en 2 variables distinctes et non en 1 seule covar avec 3 modalités.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
PROC PHREG DATA = A;
   CLASS SEXE(REF='M')/PARAM = REF;
   MODEL TEMPS*DC(0) = TOTOA TOTOB SEXE /RL;
     ARRAY DEL   {4} DELAI1 - DELAI4;
     ARRAY TOTA  {4} TOTOA1 - TOTOA4;
     ARRAY TOTB  {4} TOTOB1 - TOTOB4;
     TOTA=0; TOTB=0; DC=0;
     DO I = 1 TO 4;
         IF TEMPS GT DEL[I] AND DEL[I] NE . THEN DO; 
           TOTOA = TOTA[I]; TOTOB = TOTB[I];
         END;
     END;
RUN;
Auriez vu une solution plus ... élégante pour la programmation et une astuce pour reccuperer le TypeIII?
Merci d'avance & bonne journee
bulledeneige 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 02h33.


 
 
 
 
Partenaires

Hébergement Web