Les données sont entièrement générées au sein du script. Une étape DATA lit les observations via une instruction 'datalines' et les transforme d'un format large (une ligne par sujet) à un format long (une ligne par sujet par point de mesure).
1 Bloc de code
DATA STEP Data
Explication : Ce bloc DATA STEP crée la table 'Shoulder_tip_pain'. Il lit les données intégrées via 'datalines', assigne un identifiant unique 'subject_id' à chaque patient, puis utilise une boucle pour transformer les 6 mesures de douleur (t1-t6) d'un format large à un format long, avec une ligne par point temporel ('time').
Copié !
data Shoulder_tip_pain;
input trt $ gender $ age t1-t6;
subject_id = _n_;
array tt t1-t6;
do over tt;
y = tt;
time = _i_;
output;
end;
datalines;
y f 64 1 1 1 1 1 1
y m 41 3 2 1 1 1 1
y f 77 3 2 2 2 1 1
y f 54 1 1 1 1 1 1
y f 66 1 1 1 1 1 1
y m 56 1 2 1 1 1 1
y m 81 1 3 2 1 1 1
y f 24 2 2 1 1 1 1
y f 56 1 1 1 1 1 1
y f 29 3 1 1 1 1 1
y m 65 1 1 1 1 1 1
y f 68 2 1 1 1 1 2
y m 77 1 2 2 2 2 2
y m 35 3 1 1 1 3 3
y m 66 2 1 1 1 1 1
y f 70 1 1 1 1 1 1
y m 79 1 1 1 1 1 1
y f 65 2 1 1 1 1 1
y f 61 4 4 2 4 2 2
y f 67 4 4 4 2 1 1
y f 32 1 1 1 2 1 1
y f 33 1 1 1 2 1 2
n f 20 5 2 3 5 5 4
n f 50 1 5 3 4 5 3
n f 40 4 4 4 4 1 1
n m 54 4 4 4 4 4 3
n m 34 2 3 4 3 3 2
n f 34 3 4 3 3 3 2
n m 56 3 3 4 4 4 3
n f 82 1 1 1 1 1 1
n m 56 1 1 1 1 1 1
n m 52 1 5 5 5 4 3
n f 65 1 3 2 2 1 1
n f 53 2 2 3 4 2 2
n f 40 2 2 1 3 3 2
n f 58 1 1 1 1 1 1
n m 63 1 1 1 1 1 1
n f 41 5 5 5 4 3 3
n m 72 3 3 3 3 1 1
n f 60 5 4 4 4 2 2
n m 61 1 3 3 3 2 1
;
1
DATA Shoulder_tip_pain;
2
INPUT trt $ gender $ age t1-t6;
3
subject_id = _n_;
4
array tt t1-t6;
5
DO over tt;
6
y = tt;
7
time = _i_;
8
OUTPUT;
9
END;
10
DATALINES;
11
y f 64111111
12
y m 41321111
13
y f 77322211
14
y f 54111111
15
y f 66111111
16
y m 56121111
17
y m 81132111
18
y f 24221111
19
y f 56111111
20
y f 29311111
21
y m 65111111
22
y f 68211112
23
y m 77122222
24
y m 35311133
25
y m 66211111
26
y f 70111111
27
y m 79111111
28
y f 65211111
29
y f 61442422
30
y f 67444211
31
y f 32111211
32
y f 33111212
33
n f 20523554
34
n f 50153453
35
n f 40444411
36
n m 54444443
37
n m 34234332
38
n f 34343332
39
n m 56334443
40
n f 82111111
41
n m 56111111
42
n m 52155543
43
n f 65132211
44
n f 53223422
45
n f 40221332
46
n f 58111111
47
n m 63111111
48
n f 41555433
49
n m 72333311
50
n f 60544422
51
n m 61133321
52
;
2 Bloc de code
PROC FORMAT
Explication : Cette procédure définit deux formats personnalisés. Le format '$abc' est appliqué à la variable 'trt' pour libeller les groupes de traitement ('Active', 'Placebo'), et le format '$xyz' est appliqué à 'gender' pour libeller le sexe ('Female', 'Male').
Copié !
proc format;
value $abc 'y' = 'Active'
'n' = 'Placebo';
value $xyz 'f' = 'Female'
'm' = 'Male';
run;
1
PROC FORMAT;
2
value $abc 'y' = 'Active'
3
'n' = 'Placebo';
4
value $xyz 'f' = 'Female'
5
'm' = 'Male';
6
RUN;
3 Bloc de code
PROC SURVEYLOGISTIC
Explication : Ce bloc utilise PROC SURVEYLOGISTIC pour ajuster un modèle GEE avec un lien logit cumulatif. L'instruction 'cluster subject_id' spécifie que les observations sont corrélées au sein de chaque sujet. Le modèle évalue l'effet du traitement, du sexe, de l'âge et du temps sur la réponse ordinale 'y'.
Copié !
ods html;
proc surveylogistic data=Shoulder_tip_pain;
class trt gender;
model y = trt gender age time / link=clogit ;
cluster subject_id;
format trt $abc. gender $xyz. ;
title1 '*** Results from fitting a GEE Cumulative Logit Model ***';
title2 '*** to the Shoulder Tip Pain Data in Lumley (1996) ***';
run;
ods html close;
1
ods html;
2
PROC SURVEYLOGISTICDATA=Shoulder_tip_pain;
3
class trt gender;
4
model y = trt gender age time / link=clogit ;
5
cluster subject_id;
6
FORMAT trt $abc. gender $xyz. ;
7
title1 '*** Results from fitting a GEE Cumulative Logit Model ***';
8
title2 '*** to the Shoulder Tip Pain Data in Lumley (1996) ***';
9
RUN;
10
ods html close;
4 Bloc de code
PROC GENMOD
Explication : Ce bloc utilise PROC GENMOD pour réaliser une analyse GEE alternative ou de confirmation. Il spécifie une distribution multinomiale avec un lien logit cumulatif. L'instruction 'repeated' déclare la nature des mesures répétées par sujet, avec une structure de corrélation de travail indépendante ('type=ind').
Copié !
proc genmod data=Shoulder_tip_pain;
class subject_id trt gender;
model y = trt gender age time / dist=mult link=clogit type3;
repeated subject=subject_id / type=ind;
format trt $abc. gender $xyz. ;
title3 '*** Results using PROC GENMOD ***';
run;
1
PROC GENMODDATA=Shoulder_tip_pain;
2
class subject_id trt gender;
3
model y = trt gender age time / dist=mult link=clogit type3;
4
repeated subject=subject_id / type=ind;
5
FORMAT trt $abc. gender $xyz. ;
6
title3 '*** Results using PROC GENMOD ***';
7
RUN;
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.