Я работаю с клиницистом, и мне нужно, чтобы она случайным образом распределила пациентов в одну из двух групп с целью иметь примерно одинаковое количество пациентов в обеих группах. У клинициста нет доступа к генератору случайных чисел, и для него было бы неуместно подбрасывать монету перед распределением. Сначала мы решили использовать секундную стрелку на часах и разделить верхнюю/нижнюю половину минуты, но в экзаменационной комнате нет часов, и она не носит часы.
Мы думаем о разделении по первой букве имени, которое есть в карте пациента. Затем мы будем переворачивать каждые две недели, находится ли первая половина алфавита в группе A или группе B. Является ли это разумным подходом? Есть ли лучший? Если мы пойдем таким путем, какую букву мы разделим, чтобы получить примерно равные размеры?
Если пациент дал вам какой-то идентификационный номер (soc#, водительские права, номер пациента, месяц дня рождения... почти любое число), просто разделите его на четное/нечетное.
Если предположить, что такие числа являются последовательными или случайными, то не должно быть большой систематической ошибки или связи с какими-либо характеристиками пациента.
Если у вас есть два или более номеров, вы можете добавить последние цифры и посмотреть, четные они или нечетные.
Отказ от ответственности: я не предлагаю использовать это решение для каких-либо реальных приложений. Это просто демонстрация.
Я не уверен, каков ваш фон, но это действительно легко сделать в коде. Вы можете просто запустить генератор случайных чисел и распечатать результаты для врача.
Вот пример решения в R:
ngen <- function(patients, weeks){
df <- data.frame( t( replicate(patients, sample(c("A","B"), weeks, replace=T)) ) )
colnames(df) <- paste(replicate(ncol(df), "Week"), as.character(1:ncol(df)))
rownames(df) <- paste(replicate(nrow(df), "Patient"), as.character(1:nrow(df)))
print(df)
}
Пример использования :
ngen (пациенты = 10, недели = 5)
Week 1 Week 2 Week 3 Week 4 Week 5
Patient 1 A B A B A
Patient 2 B B A B A
Patient 3 A B A A B
Patient 4 A A A A A
Patient 5 A B A A A
Patient 6 B B B A B
Patient 7 A A A B A
Patient 8 A B A B B
Patient 9 B A A B B
Patient 10 B A B A B
Проверьте, смоделировав 10 000 недель:
m <- ngen(patients = 10, weeks = 10000)
# look at patient 1:
mean(as.numeric(m[1,]) - 1)
Среднее состояние пациента 1 равно 0,5, т. е. равные шансы оказаться в состоянии А или состоянии В, когда n недель стремится к бесконечности.
Вы можете сгенерировать случайную последовательность 0-1 в начале исследования и распределить участников по мере их поступления на основе этой последовательности.
Вы можете использовать этот простой онлайн-инструмент для создания последовательности ( https://www.randomizer.org/ ), если хотите избежать базового программирования.
Вам понадобится система для распределения идентификаторов между участниками, поэтому я полагаю, что достаточно заранее подготовить последовательность случайного распределения.
СильныйПлохой
Инноам
СильныйПлохой
Инноам
пользователь9634