5.3. Randomization in Toxicology Studies

One of the most important elements of any research design is the concept of randomization. This concept is central to all types of toxicology research (Lin, 2001). Random assignment of experimental animals to different groups helps reduce the potential biases among the comparison groups and allows a valid interpretation of the research results. Most statistical packages can produce random numbers within a specified range, which can be used to assign experimental units to treatments. Some textbooks have tables of random numbers designed for this purpose.

There are generally two approaches to creating randomization tables in SAS. The first approach is based on a direct generation of randomization tables using a DATA step. The other approach relies on PROC PLAN that provides different randomization layouts depending on the experiment. For a more detailed description of random allocation methods in pre-clinical and clinical studies, see Chapter 9, "Allocation in Randomized Clinical Trials".

5.3.1. Block Randomization in a Parallel Design

In this subsection, the randomized complete block design is discussed to illustrate the randomization approach. Consider designing a study to determine whether different dose levels of a compound affect the liver weight of a mouse after one week of treatment. If four dose levels, including a control, are evaluated and 48 mice are available for the study, then these mice would need to be assigned to the four dose groups. Since the liver weight is related to the body weight, a common practice is to assign the animals to treatments using a randomized complete block design with body weight stratification.

A randomized complete block design structure is any blocking scheme in which the number of experimental units within a block is a multiple of the number of treatments, and thus the experimental units can be assigned completely at random to a complete set of treatments in each block.

Program 5.1 creates a randomization table for the study using a DATA step. First, the program defines the allocation number for each animal based on the animal id and sorts the animals by their body weights. The random variable RAND is created using the RANUNI function that generates a random number from the uniform distribution on the (0,1) interval. The BLOCK variable assigns each animal to a block: the first four mice to Block 1 (the four lightest animals), the second four mice to Block 2, etc. The RANK procedure ranks the random numbers from the smallest to the largest within each block. The ranking of the random numbers within a block is used for treatment assignment.

Example 5-1. Randomization using a DATA step
data bodyweight;
    animal_id=_n_;
    input bw @@;
    datalines;
22.1 25.5 24.2 26.1 23.3 22.0 21.8 24.8 23.1 23.0 23.0 24.8
25.3 25.6 24.8 24.5 26.0 23.6 26.3 24.0 26.9 25.9 22.7 22.4
22.5 22.3 22.3 25.5 20.9 24.5 22.2 23.3 20.3 26.3 27.6 26.5
26.8 25.6 26.6 23.5 22.4 21.3 23.7 26.8 24.6 24.2 26.1 26.2
;
proc sort data=bodyweight;
    by bw;
data bdwt;
    set bodyweight;
    rand=ranuni(1202019);
    block=1+int((_n_-1)/4);
proc rank data=bdwt out=bwstrat (drop=rand);
    by block;
    var rand;
    ranks group;
proc sort data=bwstrat;
    by group animal_id;
proc print data=bwstrat noobs label;
    label animal_id="Animal ID"
          bw="Body weight"
          block="Block"
          group="Treatment group";
    run;

Example. Partial output from Program 5.1
Animal     Body              Treatment
  ID      weight    Block      group

  10       23.0        4         1
  12       24.8        8         1
  18       23.6        5         1
  20       24.0        6         1
  24       22.4        3         1
  28       25.5        9         1
  29       20.9        1         1
  31       22.2        2         1
  37       26.8       12         1
  39       26.6       11         1
  45       24.6        7         1
  48       26.2       10         1
   2       25.5        8         2
   7       21.8        1         2
  17       26.0       10         2

Output 5.1 displays the first 15 rows in the randomization table generated by Program 5.1.

5.3.2. Randomization in a Latin Square Design

The other popular design used in toxicology studies is the Latin square design. The Latin square design consists of blocking in two directions. For an experiment involving n treatments, n2 experimental units are assigned into an n × n square in which the rows are called row blocks and the columns are called column blocks. Thus, the n × n arrangement of experimental units is blocked in two directions. In a Latin square design, the treatments are randomly assigned to animals in the square such that each treatment occurs once and only once in each row block and once and only once in each column block. See Box et al. (1978) for various arrangements of treatments into row and column blocks.

The %LATINSQ macro in Program 5.2 uses PROC PLAN to generate a n × n Latin square design. The macro includes two arguments: N is the dimension of the Latin square and SEED is the seed for randomization.

The FACTORS statement in PROC PLAN specifies the row and column blocks of the design (ANIMAL_ID and PERIOD). The TREATMENTS statement specifies the treatment groups (GROUP). The OUTPUT statement saves the design generated to the specified data set (LATIN). Creating a randomization schedule for a Latin square design involves randomly permuting the row, column, and treatment values independently. To accomplish this, the association type of each factor is specified as RANDOM in the OUTPUT statement. The output is summarized using the TABULATE procedure.

Example 5-2. Randomization in a n × n Latin square design
%macro latinsq(n,seed);
proc plan seed=&seed;
    factors animal_id=&n ordered period=&n ordered/noprint;
    treatments group=&n cyclic;
    output out=latin period random animal_id random group random;
proc tabulate data=latin formchar='                    ";
    label animal_id="Animal ID" period="Period";
    keylabel sum=' ";
    class period animal_id;
    var group;
    table animal_id, period*(group='*f=3.)/rts=8;
    run;
%mend latinsq;
%latinsq(n=4,seed=1034567);

Example. Output from Program 5.2
Period

         1   2   3   4

 Animal ID

 1        1   3   4   2
 2        3   4   2   1
 3        2   1   3   4
 4        4   2   1   3

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.144.172.38