Невозможно получить значения оценки плотности ядра в R - PullRequest
0 голосов
/ 07 февраля 2019

Я моделирую случайные числа из экспоненциального распределения со скоростью = 1.Я построил плотность данных в ядре, используя функцию плотности () в R. Мне нужна функция f, которая дает мне значение плотности в любой точке.Я пробовал следующий код:

n=10^5
x=rexp(n,rate=1)
d=density(x,kernel="gaussian")
f=function(x){d$y[x]}
f(1)
plot(d)

Однако f (1) явно не соответствует значению функции плотности в точке x = 1.Куда я иду не так?

1 Ответ

0 голосов
/ 08 февраля 2019

density создает список, который содержит в поле x координаты точек, в которых оценивается плотность, и в поле y оценочные значения плотности в этих координатах:

> str(d)
List of 7
 $ x        : num [1:512] -0.348 -0.328 -0.307 -0.286 -0.266 ...
 $ y        : num [1:512] 0.00146 0.00256 0.00435 0.00717 0.01147 ...
......

Чтобы получить функцию из x и y, вы можете использовать функцию approxfun:

> f <- approxfun(d$x, d$y)
> f(1)
[1] 0.3665273
> dexp(1, rate=1)
[1] 0.3678794

В вашем коде вы получите d$y[1], который является первымзначение d$y.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...