On Jun 2, 2011, at 2:41 PM, Hess, Michael wrote:

> Hello R people,
> 
> I am looking to pay someone to help write some R code.
> 
> Inputs:
> Study identifier:   ID Number for the study, each ID number is for one study 
> only each block set should only be used for that study.   This will require 
> that you store the results from the blocks someplace on the file system.
> Trait #1:  dichotomous rural / urban
> Trait #2:  dichotomous sick / healthy
> Assignment Ratio:  a number between 0 and 1, usually .5 but, for this study 
> it would be .67. Indicating the % of participants to be randomized to the 
> intervention arm.  1-the Assignment Ratio will be the number of participants 
> to be randomized to the control arm.   So for example, for each  6 person 
> block,  4 would be assigned to intervention and 2 to control.
> Four blocks will be in action at any given time one each  for each of the 
> following combinations FOR EACH STUDY ID.
> Rural + sick      Rural + healthy   urban + sick     urban + healthy
> The status of where we are in each block for each study will need to be 
> stored somewhere.
> 
> Returned value
> Study Arm:   dichotomous  Intervention / Control
> 
> There might be some code that helps do this in R already.
> http://rss.acs.unt.edu/Rdoc/library/blockrand/html/blockrand.package.html
> 
> http://docs.google.com/viewer?a=v&q=cache:BnSasjcO0xQJ:personality-project.org/revelle/syllabi/205/block.randomization.pdf+r+block+randomization&hl=en&gl=us&pid=bl&srcid=ADGEESj9HQShWGzlfTJZOQQdCyohIcLV8HptDj8JZqsXbzDIZLUM6J3BDe6dpTsw95JcG6QDeiPn
> 
> The purpose of block randomization is to insure equal distribution the two 
> traits (in this case urban / rural and sick/healthy) across the two study 
> arms.
> 
> 
> This will be called as each person enrolls in the study. So you will need to 
> store the block data some place per study id.
> 
> I am happy to pay someone to work on this problem for me.  Please contact me 
> off list, if you are willing and able.
> 
> Thanks,
> Michael  Hess
> University of Michigan


Michael,

The means to do this is pretty straightforward using the blockrand() function 
in the package of the same name, as you reference above.

You essentially have a stratified randomization, based upon two dichotomous 
factors. You are then doing a 2:1 randomization to the two arms in the study, 
within each of the four strata.

Using blockrand():

# Set the RNG seed so that you can reproduce the sequence again in the future
set.seed(1)


# Generate 18 randomizations in one of the four strata, such that there will be 
# 3 blocks, each of size 6, with 4 Intervention and 2 Control subjects in each 
block
# The actual block size used will be num.levels * block.sizes (6 * 1)

Blocks1 <- blockrand(18, num.levels = 6, levels = rep(c("I", "C"), c(4, 2)), 
                     stratum = "Rural + Sick", block.sizes = 1)


> Blocks1
   id      stratum block.id block.size treatment
1   1 Rural + Sick        1          6         I
2   2 Rural + Sick        1          6         C
3   3 Rural + Sick        1          6         I
4   4 Rural + Sick        1          6         I
5   5 Rural + Sick        1          6         I
6   6 Rural + Sick        1          6         C
7   7 Rural + Sick        2          6         I
8   8 Rural + Sick        2          6         I
9   9 Rural + Sick        2          6         C
10 10 Rural + Sick        2          6         C
11 11 Rural + Sick        2          6         I
12 12 Rural + Sick        2          6         I
13 13 Rural + Sick        3          6         I
14 14 Rural + Sick        3          6         I
15 15 Rural + Sick        3          6         C
16 16 Rural + Sick        3          6         I
17 17 Rural + Sick        3          6         C
18 18 Rural + Sick        3          6         I


It is then up to whatever data management system you are using to properly use 
the blocks in each stratum correctly, based upon the two characteristics that 
you are using for stratification.

Just modify the 'stratum' value for each of the other 3 strata and be sure to 
change the RNG seed before each run so that each subsequent strata has a 
different sequence. You DO want to keep track of the RNG seed used before each 
run of blockrand(), so that you can reproduce the sequencing again in the 
future, if required.

HTH,

Marc Schwartz

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to