Python统计模块:如何从GPy中提取置信度/预测区间?

时间:2019-04-30 19:47:52

标签: python statistics confidence-interval

在线浏览了所有文档和示例之后,我无法找到一种方法来从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)

但是,没有什么东西可以清楚地说明如何从那里开始……另一个问题here试图问同样的事情,但是对于这样一个重要的因素,这个答案不再起作用,而且似乎还不能令人满意。统计建模。

1 个答案:

答案 0 :(得分:1)

给出一个模型,以及我们要在其中生成间隔的一组目标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