Сгенерировать случайные последовательности для блочного эксперимента
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | (Вопрос) Я провожу рандомизацию и пытаюсь сгенерировать пары стимулирующих воздействий для блочного эксперимента. Имеется 3 типа воздействий (позитивное, негативное, нейтральное: POS, NEG, NEU). Мне нужно, чтобы в каждом блоке было примерно равное число пар (например, чтобы каждая пара встречалась 2-3 раза в каждом блоке). Всего возможно 9 различных пар (последовательностей следования одного воздействия за другим в эксперименте): POS, затем NEG, POS, затем NEU, NEG - POS, NEG - NEU, NEU - POS, NEU - NEG, POS - POS, NEG - NEG и, наконец, NEU - NEU. В блоке из 24 экспериментов будет 23 пары. Я генерирую случайные последовательности и затем мне нужно посчитать, сколько и каких пар следует включать в блок. Сейчас я делаю это вручную, но, может, кто-то знает лучший способ?! *(Ответ) Размещён в SPSSX-L 12.03.2002, автор: Raynald Levesque. DATA LIST free /order (F2) val1 (A3). BEGIN DATA. 1 POS 2 POS 3 POS 4 NEU 5 NEG 6 NEG 7 NEU 8 NEU 9 NEG 10 NEG 11 NEU 12 POS 13 NEG 14 POS 15 NEG 16 NEU 17 NEG 18 POS 19 NEG 20 POS 21 NEU 22 POS 23 NEU 24 NEU END DATA. RECODE val1 (CONVERT) ('POS'=1) ('NEU'=2) ('NEG'=3) INTO v1. SAVE OUTFILE='c:\\temp\\mydata.sav'. *////////////////////. DEFINE !shuffle(fname=!TOKENS(1) /nb=!TOKENS(1)) GET FILE=!fname. !DO !cnt=1 !TO !nb. COMPUTE draw=UNIFORM(1). SORT CASES BY draw. CREATE v2=LEAD(v1,1). COMPUTE pair=v1*10+v2. LIST val1. FREQ VAR=pair. !DOEND !ENDDEFINE. *////////////////////. * Используйте любое целое положительное число в качестве начальной точки генератора случайных чисел. SET SEED=1987653. * Мешаем 5 раз (получаем рандомизацию для 5 блоков). !shuffle fname='c:\\temp\\mydata.sav' nb=5. |
Related pages
...