Достаточно простой вопрос. Я пытаюсь реализовать метод частичного вменения, чтобы компенсировать пропущенные значения. Что мне нужно сделать, так это найти распределение ответов для определенной подгруппы (скажем, 90 процентов швейцарцев любят сыр, а 10 процентов - нет), сгенерировать случайное значение для каждого наблюдения. Если это случайное значение <=0,9, человеку, который не ответил, нравится сыр в предыдущем примере, а в противном случае - нет.
Но как именно мне это закодировать?
Я так понимаю, мне, вероятно, следует использовать функцию RAND, но с какими аргументами? Кроме того, мне нужно где-то установить случайное начальное число?
Просто вызовите функцию Rand без аргументов (по умолчанию равномерна с mu=0 и sigma = 1). Если вам нужен воспроизводимый результат, вы можете установить Call Streaminit() с целочисленным аргументом на шаге данных.
data _null_;
call streaminit(123);
rand = rand('uniform');
put rand=;
run;