Tôi đang sử dụng R. Tôi có 25 biến trên 15 điểm thời gian, với 3 hoặc nhiều lần lặp lại cho mỗi biến trên mỗi điểm thời gian. Tôi đã melt
chỉnh sửa số này thành một data.frame
, mà tôi có thể vẽ một cách vui vẻ bằng cách sử dụng (trong số những thứ khác) lệnh ggplot's facet_wrap()
. Khung dữ liệu được làm nóng của tôi được gọi là lis
; đây là người đứng đầu và đuôi của nó, vì vậy bạn sẽ có được một ý tưởng về dữ liệu:R + ggplot: cách sử dụng tùy chỉnh mượt mà hơn (Quy trình Gaussian)
> 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
tôi có thể có được một cốt truyện đẹp của tất cả các chuỗi thời gian, cùng với một spline được trang bị và 95% khoảng tin cậy sử dụng các lệnh ggplot2 sau:
p <- ggplot(lis, aes(x=time, y=value)) + facet_wrap(~variable)
p <- p + geom_point() + stat_smooth(method = "lm", formula = y ~ ns(x,3))
Sự cố là mượt mà không theo ý thích của tôi - khoảng tin cậy 95% bị tắt. Tôi muốn sử dụng quá trình Gaussian (GP) để có được một hồi quy tốt hơn và ước tính hiệp phương sai cho chuỗi thời gian của tôi.
tôi có thể phù hợp với một GP sử dụng một cái gì đó giống như
library(tgp)
out <- bgp(X, Y, XX = seq(0, 200, length = 100))
mà cần có thời gian X
, quan sát Y
và làm cho dự đoán tại mỗi điểm trong XX
. Các đối tượng out
chứa một loạt các điều về những dự đoán, bao gồm một ma trận hiệp phương sai tôi có thể sử dụng thay cho khoảng tin cậy 95% tôi nhận được (tôi nghĩ?) Từ ns()
.
Vấn đề là tôi không phải cách quấn chức năng này để làm cho giao diện với ggplot2::stat_smooth()
. Bất kỳ ý tưởng hoặc con trỏ nào về cách tiến hành sẽ được đánh giá rất nhiều!