Сгруппированный график geom_de density () с дискретной осью x не является гладким

Я работал с набором данных, который состоит из двух разных групп наблюдений, где значение является целым числом. Я хотел изобразить их плотность, чтобы понять, как разные группы распределены по значениям.

Произошло то, что одна группа имела «гладкую» плотность, а другая - «волнистую». Я знаю, что это как-то связано с пропускной способностью и тем фактом, что мои данные в основном привязаны к дискретным наблюдениям, но мне бы хотелось, чтобы кто-то мог объяснить, почему именно.

Вот пример:

data2 <- rbind(
    data.frame(group=rep('poisson1', 1000), value = rpois(1000, 5)),
    data.frame(group=rep('poisson2', 1000), value = rpois(1000, 45)))

library(ggplot2)
ggplot(data2, aes(x=value, fill=group)) +
  geom_density()

введите здесь описание изображения

И, как ни странно, я могу снова создать этот фрейм данных, чтобы получить новый образец, и график иногда получается плавным: введите описание изображения здесь


person JasonAment    schedule 06.06.2018    source источник
comment
Посмотрите документацию для geom_density. В базовую функцию density передается ряд аргументов, включая тип ядра и пропускную способность.   -  person camille    schedule 06.06.2018
comment
Да, я прочитал документацию для geom_de density, которая привела меня к stats :: density, и я уверен, что это связано с тем фактом, что значения x являются дискретными и выбранной полосой пропускания. Но мне все еще не совсем понятно, почему, особенно когда я вижу то же самое с графиком одной выборки из 1000 отрисовок из rpois с лямбда = 5. В большинстве случаев график плотности гладкий, но каждый раз в какое-то время это не так. Я надеюсь, что кто-нибудь сможет объяснить почему так, как я могу понять.   -  person JasonAment    schedule 06.06.2018


Ответы (1)


Наблюдаемая гладкость (или отсутствие гладкости) "вызвана" функцией rpois(). lambda аргумент в rpois() функции должен быть неотрицательным средним желаемого случайного распределения. Следовательно, когда вы передаете lambda, который ближе к нулю (rpois(1000, 5)), он будет генерировать менее уникальные значения (поскольку он ограничен нулем).

Рассмотрим этот пример:

nValue <- 1e3
nLambda <- c(1:9, seq(10, 100, 10))

foo <- lapply(nLambda, function(lambda) {
    data.frame(value = rpois(nValue, lambda), lambda)
})
data <- do.call(rbind, foo)
ggplot(data, aes(value, group = lambda, color = lambda)) +
    geom_density()

введите здесь описание изображения

Мы видим, что lambda ближе к нулю будет иметь пики, а при удалении от нуля будут образовываться более плавные линии.

Вы также можете проверить это, изучив дисперсию в каждой lambda группе:

ggplot(aggregate(data$value, list(data$lambda), var), aes(Group.1, x)) +
    geom_line() +
    geom_point() +
    labs(x = "Lambda",
         y = "Variance")

введите здесь описание изображения

person pogibas    schedule 06.06.2018
comment
В этом есть смысл, но я могу построить выборку из 1000 отрисовок из одного rpois с лямбда = 5 несколько раз, и большую часть времени график плотности будет плавным. Время от времени я вижу одну «волнистую». Думаю, это меня просто удивляет. - person JasonAment; 06.06.2018
comment
@JasonAment, это всего лишь вероятность: если вы выберете 5 чисел со средним значением 5, вы можете получить 3,4,5,6,7 (гладкий) или 5,5,5,5,5 (один пик). - person pogibas; 06.06.2018
comment
Я понимаю, что в образце будут вариации, но я все еще удивлен, что многократная выборка из rpois с n = 1000 и построение плотности этого образца обычно дает `` гладкий '', но всегда слегка изменяющийся график плотности, но каждый раз в некоторое время производит "волнистый". Помимо простой вариативности выборки, есть ли что-то особенное в том, как выбирается пропускная способность, и тот факт, что значения x дискретны, что могло бы это объяснить? - person JasonAment; 07.06.2018
comment
Я сомневаюсь, что это как-то связано с пропускной способностью, если вы посмотрите на необработанные значения в R, вы должны заметить какой-то паттерн с низкой уникальностью. - person pogibas; 07.06.2018