R + ggplot: как использовать пользовательское более гладкое (Гауссов Процесс)

Я использую R. У меня есть 25 переменных, которые более чем 15 моментов времени, с 3 или больше копирует на переменную на момент времени. Я имею meltредактор это в a data.frame, который я могу вывести счастливо использование на печать (среди других вещей) ggplot's facet_wrap() команда. Мой расплавленный кадр данных называют lis; вот его голова и хвост, таким образом, Вы понимаете данные:

> head(lis)
  time variable    value
1   10     SELL 8.170468
2   10     SELL 8.215892
3   10     SELL 8.214246
4   15     SELL 8.910654
5   15     SELL 7.928537
6   15     SELL 8.777784
> tail(lis)
    time variable    value
145    1     GAS5 10.92248
146    1     GAS5 11.37983
147    1     GAS5 10.95310
148    1     GAS5 11.60476
149    1     GAS5 11.69092
150    1     GAS5 11.70777

Я могу получить красивый график все время ряда, наряду с подогнанным шлицом и 95%-ми доверительными интервалами с помощью следующих команд ggplot2:

p <- ggplot(lis, aes(x=time, y=value)) + facet_wrap(~variable)
p <- p + geom_point() + stat_smooth(method = "lm", formula = y ~ ns(x,3))

Проблема состоит в том, что более гладкое не к моей симпатии - 95% доверительных интервалов являются путем прочь. Я хотел бы использовать Гауссовы процессы (GP) для получения лучшей регрессии и оценки ковариантности для моего временного ряда.

Я могу соответствовать GP с помощью чего-то как

library(tgp) 
out <- bgp(X, Y, XX = seq(0, 200, length = 100))

который занимает время X, наблюдения Y и делает прогнозы в каждой точке в XX. Объект out содержит набор вещей о тех прогнозах, включая ковариационную матрицу, которую я могу использовать вместо 95%-го доверительного интервала, который я получаю (я думаю?) от ns().

Проблема, я не то, как перенести эту функцию, чтобы заставить ее взаимодействовать через интерфейс с ggplot2::stat_smooth(). Любые идеи или указатели относительно того, как продолжить двигаться, значительно ценились бы!

10
задан Mike Dewar 4 June 2010 в 21:42
поделиться

2 ответа

Stat_smooth имеет эстетику y , ymin и ymax , которые можно использовать с настраиваемым сглаживателем, например описано здесь: http://had.co.nz/ggplot2/stat_smooth.html . Вы создаете фрейм данных с прогнозами и CI из вашего настраиваемого сглаживания и используете его непосредственно в stat_smooth (указывая новый аргумент данных). Вы могли бы использовать stat_smooth (method = "tgp :: bgp", XX = seq (0,200, length = 100)) , но я не пробовал.

-2
ответ дан 4 December 2019 в 04:01
поделиться

Это выглядит как bgp не соответствует стандартному стилю R для функций моделирования. Это означает, что вы не можете использовать его внутри geom_smooth , и вам нужно будет подогнать модель вне вызова ggplot2.Вы также можете отправить электронное письмо автору пакета tgp и призвать его следовать стандартам R.

6
ответ дан 4 December 2019 в 04:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: