gpt4 book ai didi

R + ggplot : how to use a custom smoother (Gaussian Process)

转载 作者:行者123 更新时间:2023-11-30 08:23:35 24 4
gpt4 key购买 nike

我正在使用 R。我在 15 个时间点上有 25 个变量,每个时间点每个变量有 3 次或更多重复。我有melt将其编辑为 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

我可以使用以下 ggplot2 命令获得所有时间序列的漂亮图,以及拟合样条线和 95% 置信区间:

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)来更好地回归和估计时间序列的协方差。

我可以使用类似的东西来适合全科医生

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

这需要时间X ,观察Y并在 XX 中的每个点进行预测。对象out包含很多关于这些预测的内容,包括我可以使用的协方差矩阵来代替我从 ns() 获得(我认为?)的 95% 置信区间。 .

问题是我不知道如何包装这个函数以使其与 ggplot2::stat_smooth() 交互。 。任何有关如何进行的想法或指示将不胜感激!

最佳答案

看起来bgp不遵循标准的R风格来建模函数。这意味着您无法在 geom_smooth 内部使用它,并且需要在 ggplot2 调用之外调整模型。您可能还想向 tgp 包作者发送电子邮件,鼓励他们遵循 R 标准。

关于R + ggplot : how to use a custom smoother (Gaussian Process),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2977999/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com