BookmarkSubscribeRSS Feed
favola
Calcite | Level 5

Hi

I have to calculate the sample size of a 2x2 crossover study.

The primary efficacy endpoint is a continuous variable (FeNO) with a lognormal distribution, measured before (pre) and after (post) treatment.

<1> Can I use proc power with paired t tests for Mean Ratio with Lognormal Data or is there a better way?

proc power;

    pairedmeans test=ratio   DIST=logNormal

        meanratio =

        cv =

        corr =

        npairs = .

        alpha = 0.05 power = 0.9;

run;

I have data from a pilot study very similar. The following procedure was used to analyze the efficacy endpoint.

proc glm data=pilot;

class seq drug period pat;

model post_log = seq pat(seq) drug period pre_log/ ss3; *pre_log and post_log = before and after treatment suitably log trasformed.

test h=seq e=pat(seq);

lsmeans drug /pdiff stderr;

run;

<2> It is correct?

<3> There is a proc glmpower corresponding to this ANCOVA analysis?

To obtain the data for my proc power instead I should perform the following proc t test:

proc ttest data=pilot dist=lognormal;

   var post1 post2 / crossover= (drug1 drug2);

run;

<4> meanratio =   is geometric mean of treatment ratio with both sequence ?

<5> cv =   is geometric CV of treatment ratio with both sequence?

<6> corr =   how can I calculate it?

If I submit the following procedure:

proc ttest data=pilot dist=lognormal;

   var post_ratio_drug1_drug2;

run;

I get the same geometric mean but another CV.

<7> Which CV should I use?

But using only the post-treatment values I have to assume that values before treatment are homogeneous between treatment groups.

<8> To avoid this how can I do?

<9> I can analyze the post/pre ratio?

<10> If it is distributed normally have to use a proc power with DIST = Normal?

I hope not too 10 questions.

Thanks in advance (Please use plain English)

Favola

1 REPLY 1
favola
Calcite | Level 5

<7> Let's use an example.

data pilot;

   input Drug1 $ Drug2 $ post1 post2 @@;

   label Drug1='Drug Period 1' Drug2='Drug Period 2' post1='FeNO period 1' post2='FeNO period 2';

   datalines;

R       T        24       15

T       R        15       27

R       T        28       23

T       R        30       28

T       R         6       12

R       T        32       22

T       R        23       19

R       T        32       17

T       R        76       41

R       T        15       10

T       R        20       25

R       T        14       15

T       R        21       18

R       T        66       25

T       R        25       42

R       T        38       35

R       T        20       19

T       R        21       19

R       T        27       51

T       R        24       72

R       T        14       14

R       T        22       24

T       R        22       24

R       T        28       36

T       R        22       37

T       R        27       51

R       T        20       22

T       R        28       73

R       T        44       29

T       R        52       23

T       R        18       19

R       T        29       34

T       R        33       45

R       T        63       42

T       R        27       58

R       T        29       30

R       T        19       19

T       R        29       32

R       T        35       22

T       R        26       52

;

run;

proc ttest data=pilot dist=lognormal;

   var post1 post2 / crossover= (drug1 drug2);

run;

/* Geometric mean for treatment ratio = 1.2347 and CV = 0.2224 */

/* Calculate treatment ratio */

data pilot1; set pilot;

label post_trt1='FeNO T' post_trt2='FeNO R' post_ratio_drug1_drug2='FeNO R/T';

if drug1='T' then post_trt1=post1; else post_trt1=post2;

if drug1='R' then post_trt2=post1; else post_trt2=post2;

post_ratio_drug1_drug2=post_trt2/post_trt1;

run;

proc ttest data=pilot1 dist=lognormal;

   var post_ratio_drug1_drug2;

run;

/* Geometric mean = 1.2347 and CV = 0.4590 */

The geometric mean is the same but CV is different.

Which CV should I use in proc power?

proc power;

    pairedmeans test=ratio   DIST=logNormal

        meanratio =

        CV =

        corr =

        npairs = .

        alpha = 0.05 power = 0.9;

run;

Thanks in advance

Favola

sas-innovate-2024.png

Available on demand!

Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.

 

Register now!

New Learning Events in April

 

Join us for two new fee-based courses: Administrative Healthcare Data and SAS via Live Web Monday-Thursday, April 24-27 from 1:00 to 4:30 PM ET each day. And Administrative Healthcare Data and SAS: Hands-On Programming Workshop via Live Web on Friday, April 28 from 9:00 AM to 5:00 PM ET.

LEARN MORE

Discussion stats
  • 1 reply
  • 851 views
  • 0 likes
  • 1 in conversation