0

问题(最小的工作示例)

当数据接近线性相关时,Dicekriging 会在大约一半的时间内给出线性相关误差。下面的示例可以看出这一点,当我在 Ubuntu 和 Windows 计算机上运行它时,大约有一半的时间出现了错误。当我使用遗传或 BFGS 优化运行它时,就会发生这种情况。

install.packages("DiceKriging")
library(DiceKriging)

x = data.frame(Param1 = c(0,1,2,2,2,2), Param2 = c(2,0,1,1e-7,0,2))
y = 1:6
duplicated(cbind(x,y))

Model = km( design = x, response = y , optim.method = "gen", control = list(maxit = 1e4), coef.cov = 1)
Model = km( design = x, response = y , optim.method = "BFGS", control = list(maxit = 1e4), coef.cov = 1)

当数据稍微分散一点时,就不会发生此类错误。

# No problems occur if the data is more dispersed.
x = data.frame(Param1 = c(0,1,2,2,2,2), Param2 = c(2,0,1,1e-2,0,2))
y = 1:6
duplicated(cbind(x,y))

Model = km( design = x, response = y , optim.method = "gen", control = list(maxit = 1e4), coef.cov = 1)

为什么这是一个问题

使用克里金法优化昂贵模型意味着靠近最优值的点将被密集采样。发生此错误时无法执行此操作。1e-7此外,当有多个参数都接近时,接近点需要比上述更接近才能获得此错误。1e-3当一个点的 4 个坐标与另一个点分开并且发生此问题时,我得到了错误(在我的实际问题中,而不是上面的 MWE) 。

相关问题

DiceKriging关于堆栈溢出的问题并不多。最接近的问题是这个问题(来自Krigingpackage ),其中问题是真正的线性依赖。请注意,Kriging包装不能替代DiceKriging,因为它仅限于 2 维。

所需的解决方案

我想要:

  • 一种改变我的km电话以避免这个问题的方法(首选)
  • 一种确定何时会发生此问题的方法,以便我可以丢弃彼此太接近而无法进行克里金调用的观测值。
4

1 回答 1

3

你的问题不是软件问题。这是一个数学问题。

您的第一个数据包含以下两个点(0 , 2)(1e-7, 2)它们非常接近但对应于(非常)不同的输出:4 和 5。因此,您正在尝试将作为插值模型的克里金模型调整为混沌响应。这行不通。如果您的响应在接近的点之间变化很大,则克里金/高斯过程建模不是好工具。

但是,当您优化昂贵的模型时,情况与您的示例不同。对于非常接近的输入点,响应没有这样的差异。但是,如果您的点非常接近,则确实可能存在数值问题。

为了缓和这些数值错误,您可以添加块金效果。块金是添加到协方差矩阵对角线上的一个小的常数方差,它允许点不被精确插值。您的克里金近似曲线不会强制通过学习点。因此,克里金模型变成了回归模型。

DiceKriging中,可以通过两种方式添加金块。首先,您可以选择先验值并通过设置“手动”添加它km(..., nugget=you_value),或者您可以km在学习协方差函数的参数的同时通过设置要求学习它km(..., nugget.estim=TRUE)。我建议你一般使用第二个。

你的小例子变成了:

Model = km( design = x, response = y , optim.method = "BFGS", control = list(maxit = 1e4), 
coef.cov = 1, nugget.estim=TRUE)

摘自DiceKriging 文档

nugget:代表均匀块金效应的可选方差值。

nugget.estim:一个可选的布尔值,指示是否应估计块金效应。请注意,此选项不涉及异构噪声观察的情况(请参阅下面的 noise.var)。如果给出了 nugget,则将其用作初始值。默认为假。

PS:协方差内核的选择在某些应用中可能很重要。当要近似的函数相当粗糙时,指数核(设置covtype="exp"在 中km)可能是一个不错的选择。有关更多信息,请参阅 Rasmussen 和 Williams 的书(可在http://www.gaussianprocess.org/免费合法获取)

于 2015-06-03T11:28:21.303 回答