1

在浏览了所有在线文档和示例之后,我还没有找到一种方法来从GPy模型中提取有关置信区间或预测区间的信息。

我生成这样的虚拟数据,

## Generating data for regression
# First, regular sine wave + normal noise
x = np.linspace(0,40, num=300)
noise1 = np.random.normal(0,0.3,300)
y = np.sin(x) + noise1

## Second, an upward trending starting midway, with its own noise as well
temp = x[150:]
noise2 = 0.004*temp**2 + np.random.normal(0,0.1,150)
y[150:] = y[150:] + noise2

plt.plot(x, y)

然后估计一个基本模型,

## Pre-processing
X = np.expand_dims(x, axis=1)
Y = np.expand_dims(y, axis=1)

## Model
kernel = GPy.kern.RBF(input_dim=1, variance=1., lengthscale=1.)
model1 = GPy.models.GPRegression(X, Y, kernel)

但是,没有什么清楚说明如何从那里开始......另一个问题在这里尝试问同样的事情,但是对于统计建模的如此重要的元素,这个答案不再起作用,而且似乎相当不令人满意。

4

1 回答 1

2

给定一个模型和一组我们想要生成区间的目标 x 值,您可以使用以下方法提取区间:

intervals = model.predict_quantiles( X = target_x_vals, quantiles = (2.5, 97.5) )

您可以更改分位数参数以获得适当的宽度。此函数的文档位于:https ://gpy.readthedocs.io/en/deploy/_modules/GPy/core/gp.html

于 2019-08-30T14:53:03.663 回答