Я пытаюсь сгенерировать случайные величины хи-квадрат по следующему алгоритму:
где a (i) - независимые стандартные нормальные случайные величины с m четными и нечетными соответственно.
Википедия дает следующее определение:
Код, который я написал:
dch = double(1000)
t = double(1)
for(i in 1:1000) {
for(j in 1:m) {
x = runif(1, 0, 1)
t = t + x*x
}
dch[i] = t
}
но я получаю неправильный график плотности. Итак, где находятся ошибки и как их исправить?
m
. Вы используете однородные случайные величины, а не обычные случайные величины. Это те ошибки, которые я вижу. - person Gregor Thomas   schedule 19.10.2016x = runif(1000); dch = -2 * log(x)
. Сравниваяhist(dch, 20)
сhist(rchisq(1000), 20)
, это выглядит правильно. - person Gregor Thomas   schedule 19.10.2016