Using PROC GENMOD to Analyse Ratio to Placebo in Change of Dactylitis - PDF Document

Presentation Transcript

  1. Using PROC GENMOD to Analyse Ratio to Placebo in Change of Dactylitis Irmgard Hollweck / Meike Best 13.OCT.2013

  2. Agenda 2 Introduction to Dactylitis Background • Definitions: Trial • Definitions:Terms • Statistics: Basics • Proc Genmod: Basics Implementation: • Requirements • 2 Solutions • Simplification • Generalization

  3. 3 Introduction: Dactylitis (general) ? Associated with many different diseases (e.g. Tuberculosis, Sickle-cell) ? Precursors for psoriatic arthritis, ankylosing spondylitis, sickle-cell anemia ? Referred to as “sausage digit” ? Swelling and inflammation ? Direct treat of underlaying disease might prevent long-term deformation of digit.

  4. 4 Introduction: Dactylitis (general) Pictures are from www.diseasespictures. com/dactylitis + The Journal of Rheumatology: Dactylitis of “Sausage- Shaped” Digit from Ignazio Olivieri, Angela Pdula, Enrico Scarano, Raffaele Scarpa

  5. 5 Introduction: Dactylitis (clinical studies) ? Record circumferences and tenderness of the affected digit => 20 digits (10 fingers and 10 toes) might be affected ? Data stored in SDTM-domain FA ? Analysis on • LDI (Leeds Dactylitis Instrument) = score • Number of affected Digits. • Presence of Dactylitis.

  6. 6 Definitions: Trial ? Treatment Groups: Active 200mg(Q2W) Active 400mg(Q4W) Placebo 0mg. ? Trial Design Parallel ? Assessment of Dactylitis performed on: Visit: 20, 40, 50, 70, 90, .. from 90 on visit = x +20. Baseline = Visit 20

  7. 7 Definitions: Dactylitis Terms ? Number of affected digits: 0 to 20 per time point, depending on how many digits are affected. ? Subject with dactylitis: LDI-score criterion met on Baseline = dactylitis exists according to LDI.

  8. 8 Statistics: Basics ? 5% significance level with a 2-sided p-value is used. ? ‘Number of affected digits’ assumes binary values. => 20 x repetition => binomial (20,p) distribution. ? SAS: • Uses Generalized Estimation Equations (GEE) Logistic Regression for repeated measurements. • Based on initial values which are generated via generalized linear model.

  9. 9 PROC GENMOD: Basics ? p-values + repeated measurements provision ? link function in model statement => different distributions can be used ? ESTIMATE-statements: Hypothesis is tested by specifying a fixed model matrix L and testing ?????. • option E: requests that the L matrix should be displayed. • option EXP: ???????????????????????????????????????????????????????confidence limits.

  10. 10 Implementation: Number of affected digits Requirements (SAP) Model will contain treatment group, visit (Baseline vs. the respective post-Baseline visit), and the interaction of treatment group and visit. Model will be fitted for each post-Baseline visit separately. Number of affected digits will be analyzed for each post-Baseline visit separately. assumed to follow Binomial (20, p) distribution, where p is the probability of an individual digit being affected

  11. 11 Implementation: Number of affected digits Requirements (SAP) The model will be a repeated measures logistic regression model Within-subject correlation will be taken into account by allowing an unstructured covariance structure between Baseline and the respective post-Baseline visit the difference between each active treatment groups (and both combined) and PBO will be estimated as the ratio of odds ratios between post-Baseline and Baseline visits.

  12. 12 Implementation: Number of affected digits Requirements (Mock-Shell)

  13. 13 Implementation: Number of affected digits Solution: ‘The model will be fitted for each post-Baseline visit separately.’ Input dataset: Possibilities: • macro call with PROC GENMOD per visit • loop through the visits with PROC GENMOD in it.

  14. 14 Implementation: Number of affected digits Solution: 'The model will contain treatment group, visit and the interaction..’ •Input dataset : SOLUTION 2: proc genmod data=ds (where=( trt_no IN (4,5,6) AND avisitn IN (20,&&avisitn&visno))) descending; class usubjid trt_no(ref=first) avisitn (ref=first) / param=ref; model aval/n = trt_no avisitn trt_no*avisitn / dist=bin link=logit; repeated subject = usubjid /withinsubject=avisitn type=UN; estimate "ACT 200 Vs PBO" trt_no*avisitn 1 0 / exp; estimate "ACT 400 Vs PBO" trt_no*avisitn 0 1 / exp; estimate "ALL ACT Vs PBO" trt_no*avisitn 0.5 0.5 /exp; ods output estimates =_estimatesa; run; SOLUTION 1: proc genmod data = ds(where = (trt_no in(4 5 6) and avisitn in(20 &vis))); class usubji trt_no avisitn; model aval/n = trt_no avisitn trt_no*avisitn; repeated subject = usubjid / corr = unstr; estimate "ACT 200 Vs PBO BL &vis" trt_no*avisitn 1 -1 -1 1 0 0 / e exp; estimate "ACT 400 Vs PBO BL &vis" trt_no*avisitn 1 -1 0 0 -1 1 / e exp; estimate "ALL ACT Vs PBO BL &vis" trt_no*avisitn 1 -1 -0.5 0.5 -0.5 0.5 / e exp; ods output estimates = num_&vis; run;

  15. 15 Implementation: Number of affected digits Solution:‘The model will contain treatment group, visit and the interaction..’ •Input dataset : SOLUTION 2: proc genmod data=ds (where=( trt_no IN (4,5,6) AND avisitn IN (20,&&avisitn&visno))) descending; class model repeated estimate estimate estimate ods output run; SOLUTION 1: proc genmod data = ds(where = (trt_no in(4 5 6) and avisitn in(20 &vis))); class model repeated estimate estimate estimate ods output run;

  16. 16 Implementation: Number of affected digits Solution:‘The model will contain treatment group, visit and the interaction..’ •Input dataset + Loop: SOLUTION 2: proc genmod data= class model aval/n = trt_no avisitn trt_no*avisitn / dist=bin link=logit; repeated subject = usubjid /withinsubject=avisitn type=UN; estimate estimate estimate ods output run; SOLUTION 1: proc genmod data class model aval/n = trt_no avisitn trt_no*avisitn; repeated subject = usubjid / corr = unstr; estimate estimate estimate ods output run;

  17. 17 Implementation: Number of affected digits Solution: ratio of odds ratios

  18. 18 Implementation: Number of affected digits Solution:‘The model will contain treatment group, visit and the interaction..’ •Input dataset SOLUTION 2: proc genmod data=ds (where=( trt_no IN (4,5,6) AND avisitn IN (20,&&avisitn&visno))) descending; class usubjid trt_no(ref=first) avisitn (ref=first) / param=ref; model repeated subject estimate "ACT 200 Vs PBO" trt_no*avisitn 1 0 / exp; estimate "ACT 400 Vs PBO" trt_no*avisitn 0 1 / exp; estimate "ALL ACT Vs PBO" trt_no*avisitn 0.5 0.5 /exp; ods output run; SOLUTION 1: proc genmod data = ds(where = (trt_no in(4 5 6) and avisitn in(20 &vis))); class usubji trt_no avisitn; model repeated estimate "ACT 200 Vs PBO BL &vis" trt_no*avisitn 1 -1 -1 1 0 0 / e exp; estimate "ACT 400 Vs PBO BL &vis" trt_no*avisitn 1 -1 0 0 -1 1 / e exp; estimate "ALL ACT Vs PBO BL &vis" trt_no*avisitn 1 -1 -0.5 0.5 -0.5 0.5 / e exp; ods output run;

  19. 19 Implementation: Number of affected digits Solution:‘The model will contain treatment group, visit and the interaction...’ Output: For ACT 200 visit 40 SOLUTION 1: Standard 95% Confidence Parameter Estimate Error Limits Z Pr > |Z| Intercept -3.1841 TRT_NO 4 0.0359 TRT_NO 5 -0.1954 TRT_NO 6 0.0000 AVISITN 20 0.4391 AVISITN 40 0.0000 TRT_NO*AVISITN 4 20 -0.2990 TRT_NO*AVISITN 4 40 0.0000 TRT_NO*AVISITN 5 20 -0.1507 TRT_NO*AVISITN 5 40 0.0000 TRT_NO*AVISITN 6 20 0.0000 TRT_NO*AVISITN 6 40 0.0000 Coefficients for Contrast ACT 200 Vs PBO 40 Prm1 - Prm12 ACT 200 Vs PBO vis 40 0 0 0 0 0 0 1 -1 -1 1 0 0 SOLUTION 2: Standard 95% Confidence Parameter Estimate Error Limits Z Pr > |Z| Intercept -3.0082 TRT_NO 5 -0.0829 TRT_NO 6 0.2632 AVISITN 40 -0.1400 TRT_NO*AVISITN 5 40 -0.1484 TRT_NO*AVISITN 6 40 -0.2990 ? For ACT 200 vs PBO vis 40 : 0 + 0 + 0 + 0 + 1*(-0.1484) + 0 = -0.1484

  20. 20 Implementation: Number of affected digits Solution:‘The model will contain treatment group, visit and the interaction...’ output: For ACT 200 visit 40

  21. 21 Implementation: Number of affected digits Solution:‘The model will contain treatment group, visit and the interaction...’ output: For ACT 200 visit 40 Interpretation: ? Odds ratio =1 => ACTIVE = PLACEBO ? Odds ratio < 1 => ACTIVE has negative effect on response = treatment is positive (see obs 4+5: ACT 400 + ALL, significant) ? Odds ratio > 1 =>ACTIVE is not better than PLACEBO ? Note: ACT 200 is not significant and has confidence interval > 1 => doubtful treatment

  22. 22 Implementation: Number of affected digits Simplification of Code in SAS 9.3 Solution 1: LSMESTIMATE: combining features of both the LSMEANS and the ESTIMATE statement. In this case the confidence interval has to be stated explicitly in the options (cl) lsmestimate trt_no*avisitn "ACT 200 Vs PBO vis &vis" 1 -1 -1 1 0 0 , "ACT 400 Vs PBO vis &vis" 1 -1 0 0 -1 1 , "ALL ACT Vs PBO vis &vis" 1 -1 -0.5 0.5 -0.5 0.5 / e exp cl; Output: shows 3 lines instead of 6 but with less information: Least Squares Means Estimates Standard Effect Label Estimate Error z Value Pr > |z| TRT_NO*AVISITN ACT 200 Vs PBO vis 40 -0.1484 0.1374 -1.08 0.2802 Exponentiated Exponentiated Alpha Lower Upper Exponentiated Lower Upper 0.05 -0.4177 0.1209 0.8621 0.6586 1.1286

  23. 23 Implementation: Number of affected digits Generalization of Code •Results could also be obtained by linearly combining results from LSMEANS differences using slice option, details in paper. ods output SliceDiffs=diffs ; proc genmod data = ds; class ... ; model ... ; repeated ... ; slice trt_no*avisitn / sliceby=avisitn diff oddsratio cl; run ;

  24. 24 Questions?

  25. Thanks!