У меня есть набор данных с большим количеством нулей, который выглядит следующим образом:
set.seed(1)
x <- c(rlnorm(100),rep(0,50))
hist(x,probability=TRUE,breaks = 25)
Я хотел бы нарисовать линию для его плотности, но density()
функция использует движущееся окно, которое вычисляет отрицательные значения х.
lines(density(x), col = 'grey')
Есть density(... from, to)
аргументы, но они, похоже, только усекают вычисления, а не изменяют окно, так что плотность в 0 согласуется с данными, как видно на следующем графике:
lines(density(x, from = 0), col = 'black')
(если бы интерполяция была изменена, я ожидал бы, что черная линия будет иметь более высокую плотность в 0, чем серая линия)
Есть ли альтернативы этой функции, которые обеспечили бы лучший расчет плотности в нуле?