我需要在现有数据集中添加一个新变量,即模拟指数。我需要设置这个指数的lambda,以便小于1的值的数量在9%到14%之间。
汇总:
X~Expo(lambda)
小于1的值将介于9%和14%之间。
答案 0 :(得分:1)
将rand()
函数与'exponential'
参数一起使用;但是,如果你想要9%到14%的值,那么< 1,你需要使用指数分布的CDF公式求解Lambda。就个人而言,为了节省时间,我会模拟Lambda的一些值并选择符合标准的值。
data findLambda;
do lambda = 0.05 to 0.5 by 0.05;
do i = 1 to 5000;
rand = rand('exponential')/lambda;
LessThan_1_Flag = (rand < 1);
output;
end;
end;
run;
proc freq data=findLambda;
by Lambda;
tables LessThan_1_Flag / nocum norow nocol nofreq;
run;
你会发现0.04到0.09之间的lambda
值会产生你想要的东西。
答案 1 :(得分:0)
RANEXP(seed)
生成随机标准指数。除以lambda。
x=ranexp(seed)/lambda;