ICDF 强>
除了拒绝抽样之外,还有一种不同的方法可以在更加数学的水平上解决这个问题,但是你需要先坐下来先做一些数学计算才能得到更好的解决方案。对于1维分布,您通常使用ICDF(反向累积密度函数)函数进行采样,只需使用syms
"TIP","TLH","TLT","HYG","EMB","IYR","GSG","GLD")
lapply(syms, function(s)
Return.calculate(Ad(getSymbols(s, auto.assign = FALSE)
)['2015-12-31::2016'])[-1L])来获取随机样本。
如果你设法进行数学运算,你可以在PDF格式中定义两个函数ICDF1(第一维的ICDF)和matlab中的ICDF2(第二维的ICDF)。
第一个ICDF1会将随机分布的样本映射到随机分布的第一维的样本值。
如果ICDF1和均匀分布的样本到您想要的解决方案,第二个ICDF2将映射输出。
以下是一些matlab代码,假设您已经定义了Visiting Date :
$date = strtotime('Today');
$days = 7;
$i = 1;
echo '';
while ($i <= $days ) {
echo ''.date('l d M Y', $date). '';
$date = strtotime( date('Y-m-d', $date) . ' + 1 Days');
$i++;
}
echo '';
?>和ICDF(rand(n,1))
ICDF1
这个解决方案的最大优点是,它不会拒绝任何样本,可能会更快。