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

Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.

Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.

 

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
  • 829 views
  • 0 likes
  • 1 in conversation