转自:http://xg1990.com/blog/archives/222

学过空间插值的人都知道克里金插值,但是它的变种繁多、公式复杂,还有个半方差函数让人不知所云
本文讲简单介绍基本克里金插值的原理,及其推理过程。

0.引言——从反距离插值(IDW)说起

空间插值问题,就是在已知空间上若干离散点 (xi,yi) 的某一属性(如气温,海拔)的观测值 zi=z(xi,yi) 的条件下,估计空间上任意一点 (x,y) 的属性值的问题。

直观来讲,根据地理学第一定律,

All attribute values on a geographic surface are related to each other, but closer values are more strongly related than are more distant ones.

大意就是,地理属性有空间相关性,相近的事物会更相似。由此人们发明了反距离插值,对于空间上任意一点 (x,y) 的属性 z=z(x,y) ,定义反距离插值公式估计量

z^=∑i=0n1dαzi

其中 α 通常取1或者2。

即,用空间上所有已知点的数据加权求和来估计未知点的值,权重取决于距离的倒数(或者倒数的平方)。那么,距离近的点,权重就大;距离远的点,权重就小。

反距离插值可以有效的基于地理学第一定律估计属性值空间分布,但仍然存在很多问题:

  • α 的值不确定
  • 用倒数函数来描述空间关联程度不够准确

因此更加准确的克里金插值方法被提出来了

1.克里金插值的定义

相比反距离插值,克里金插值公式更加抽象

zo^=∑i=0nλizi

其中 zo^ 是点 (xo,yo) 处的估计值,即 zo=z(xo,yo) 。

这里的 λi 是权重系数。它同样是用空间上所有已知点的数据加权求和来估计未知点的值。但权重系数并非距离的倒数,而是能够满足点 (xo,yo) 处的估计值 zo^ 与真实值 zo 的差最小的一套最优系数,即

minλiVar(zo^−zo)

同时满足无偏估计的条件

E(zo^−zo)=0

2.假设条件

不同的克里金插值方法的主要差异就是假设条件不同。本文仅介绍普通克里金插值的假设条件与应用。

普通克里金插值的假设条件为,空间属性 z 是均一的。对于空间任意一点 (x,y) ,都有同样的期望c与方差 σ2 。

即对任意点 (x,y) 都有

E[z(x,y)]=E[z]=c
Var[z(x,y)]=σ2

换一种说法:任意一点处的值 z(x,y) ,都由区域平均值 c 和该点的随机偏差 R(x,y) 组成,即

z(x,y)=E[z(x,y)]+R(x,y)]=c+R(x,y)

其中 R(x,y) 表示点 (x,y) 处的偏差,其方差均为常数

Var[R(x,y)]=σ2

3.无偏约束条件

先分析无偏估计条件 E(zo^−zo)=0 ,将 zo^=∑ni=0λizi 带入则有

E(∑i=0nλizi−zo)=0

又因为对任意的z都有 E[z]=c ,则

c∑i=0nλi−c=0

∑i=0nλi=1

这是 λi 的约束条件之一。

4.优化目标/代价函数J

再分析估计误差 Var(zo^−zo) 。为方便公式推理,用符号 J 表示,即

J=Var(zo^−zo)

则有

J=Var(∑ni=0λizi−zo)=Var(∑ni=0λizi)−2Cov(∑ni=0λizi,zo)+Cov(zo,zo)=∑ni=0∑nj=0λiλjCov(zi,zj)−2∑ni=0λiCov(zi,zo)+Cov(zo,zo)

为简化描述,定义符号 Cij=Cov(zi,zj)=Cov(Ri,Rj) ,这里 Ri=zi−c,即点 (xi,yi) 处的属性值相对于区域平均属性值的偏差。

则有

J=∑i=0n∑jnλiλjCij−2∑i=0nλiCio+Coo

5.代价函数的最优解

再定义半方差函数 rij=σ2−Cij ,带入J中,有

J=∑ni=0∑nj=0λiλj(σ2−rij)−2∑ni=0λi(σ2−rio)+σ2−roo=∑ni=0∑nj=0λiλj(σ2)−∑ni=0∑nj=0λiλj(rij)−2∑ni=0λi(σ2)+2∑ni=0λi(rio)+σ2−roo

考虑到 ∑ni=0λi=1

J=σ2−∑ni=0∑njλiλj(rij)−2σ2+2∑ni=0λi(rio)+σ2−roo=2∑ni=0λi(rio)−∑ni=0∑nj=0λiλj(rij)−roo

我们的目标是寻找使J最小的一组 λi ,且J是 λi 的函数,因此直接将J对 λi 求偏导数令其为0即可。即

∂J∂λi=0;i=1,2,⋯,n

但是要注意的是,我们要保证求解出来的最优 λi 满足公式 ∑ni=0λi=1 ,这是一个带约束条件的最优化问题。使用拉格朗日乘数法求解,求解方法为构造一个新的目标函数

J+ϕ(∑i=0nλi−1)

其中 ϕ 是拉格朗日乘数。求解使这个代价函数最小的参数集 ϕ,λ1,λ2,⋯,λn ,则能满足其在 ∑ni=0λi=1 约束下最小化 J 。即

⎧⎩⎨⎪⎪∂(J+ϕ(∑ni=0λi−1))∂λi∂(J+ϕ(∑ni=0λi−1))∂ϕ=0;i=1,2,⋯,n=0
⎧⎩⎨⎪⎪∂(2∑ni=0λi(rio)−∑ni=0∑njλiλj(rij)−roo)∂λi∂(∂2∑ni=0λi(rio)−∑ni=0∑njλiλj(rij)−roo)∂ϕ=0;i=1,2,⋯,n=0
{2rio−∑nj=1(rij+rji)λj∑ni=0λi=0;i=1,2,⋯,n=1

由于 Cij=Cov(zi,zj)=Cji ,因此同样地 rij=rji ,那么有

{rio−∑nj=1rijλj∑ni=0λi=0;i=1,2,⋯,n=1

式子中半方差函数 rij 十分重要,最后会详细解释其计算与定义

在以上计算中我们得到了对于求解权重系数 λj 的方程组。写成线性方程组的形式就是:

⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪r11λ1+r12λ2+⋯+r1nλn+ϕr21λ1+r22λ2+⋯+r2nλn+ϕrn1λ1+rn2λ2+⋯+rnnλn+ϕλ1+λ2+⋯+λn=r1o=r2o⋯=rno=1(1)

写成矩阵形式即为

⎡⎣⎢⎢⎢⎢⎢⎢r11r21⋯rn11r12r22⋯rn21⋯⋯⋯⋯⋯r1nr2n⋯rnn111⋯10⎤⎦⎥⎥⎥⎥⎥⎥⎡⎣⎢⎢⎢⎢⎢⎢λ1λ2⋯λn0⎤⎦⎥⎥⎥⎥⎥⎥=⎡⎣⎢⎢⎢⎢⎢⎢r1or2o⋯rno1⎤⎦⎥⎥⎥⎥⎥⎥

对矩阵求逆即可求解。

唯一未知的就是上文中定义的半方差函数 rij ,接下来将详细讨论

6.半方差函数

上文中对半方差函数的定义为

rij=σ2−Cij

其等价形式为

rij=12E[(zi−zj)2]

这也是半方差函数名称的来由,接下来证明这二者是等价的:

根据上文定义 Ri=zi−c ,有 zi−zj=Ri−Rj ,则

rij=12E[(Ri−Rj)2]=12E[R2i−2RiRj+R2j]=12E[R2i]+12E[R2j]−E[RiRj]

又因为:

E[R2i]=E[R2j]=E[(zi−c)2]=Var(zi)=σ2
E[RiRj]=E[(zi−c)(zj−c)]=Cov(zi,zj)=Cij

于是有

rij=12E[(zi−zj)2]=12E[R2i]+12E[R2j]−E[RiRj]=12σ2+12σ2−Cij=σ2−Cij

σ2−Cij=12E[(zi−zj)2] 得证,现在的问题就是如何计算

rij=12E[(zi−zj)2]

这时需要用到地理学第一定律,空间上相近的属性相近。 rij=12(zi−zj)2 表达了属性的相似度;空间的相似度就用距离来表达,定义i与j之间的几何距离

dij=d(zi,zj)=d((xi,yi),(xj,yj))=(xi−xj)2+(yi−yj)2−−−−−−−−−−−−−−−−−−√

克里金插值假设 rij 与 dij 存在着函数关系,这种函数关系可以是线性、二次函数、指数、对数关系。为了确认这种关系,我们需要首先对观测数据集

{z(x1,y1),z(x2,y2),z(x3,y3),⋯,z(xn−1,yn−1),z(xn,yn)}

计算任意两个点的 距离 dij=(xi−xj)2+(yi−yj)2−−−−−−−−−−−−−−−−−−√ 和 半方差σ2−Cij=12E[(zi−zj)2] ,这时会得到 n2 个 (dij,rij) 的数据对。

将所有的 d 和 r 绘制成散点图,寻找一个最优的拟合曲线拟合 d 与 r 的关系,得到函数关系式

r=r(d)

那么对于任意两点 (xi,yi),(xj,yj) ,先计算其距离 dij ,然后根据得到的函数关系就可以得到这两点的半方差 rij

7. 简单克里金(simple kriging)与普通克里金(ordinary kriging)的区别

以上介绍的均为普通克里金(ordinary kriging)的公式与推理。

事实上普通克里金插值还有简化版,即简单克里金(simple kriging)插值。二者的差异就在于如何定义插值形式:

上文讲到,普通克里金插值形式为

zo^=∑i=0nλizi

而简单克里金的形式则为

zo^−c=∑i=0nλi(zi−c)

这里的符号 c 在上文介绍过了,是属性值的数学期望,即 E[z]=c 。也就是说,在普通克里金插值中,认为未知点的属性值是已知点的属性值的加权求和;而在简单克里金插值中,假设未知点的属性值相对于平均值的偏差是已知点的属性值相对于平均值的偏差的加权求和,用公式表达即为:

Ro^=∑i=0nλiRi

这里的 Ri 在上文定义过了: Ri=zi−c 。

但是为什么这样的克里金插值称为“简单克里金”呢?由于有假设 E[z]=c ,也就是说 E(Ri+c)=c ,即 E(Ri)=0 。那么上面的公式 Ro^=∑ni=0λiRi 两边的期望一定相同,那么在求解未知参数 λi 就不需要有无偏约束条件 ∑ni=0λi=1 。换句话说,这样的估计公式天生就能满足无偏条件。因此它被称为简单克里金。

从在上文(第4节优化目标/代价函数J)中可以知道,优化目标的推理和求解过程是通过对属性值相对于期望的偏差量 Ri 进行数学计算而进行的。也就是说这两种克里金插值方法虽然插值形式不一样,求解方法是一样的,重要的区别是简单克里金插值不需要约束条件 ∑ni=0λi=1 ,求解方程组为:

⎧⎩⎨⎪⎪⎪⎪⎪⎪r11λ1+r12λ2+⋯+r1nλn+ϕr21λ1+r22λ2+⋯+r2nλn+ϕrn1λ1+rn2λ2+⋯+rnnλn+ϕ=r1o=r2o⋯=rno(2)

还有更重要的一点,简单克里金的插值公式为:

zo^=∑i=0nλi(zi−c)+c

换句话说,在计算未知点属性值 zo^ 前,需要知道该地区的属性值期望 c 。事实上我们在进行插值前很难知道这个地区的真实属性值期望。有些研究者可能会采用对观测数据简单求平均的方法计算期望值 c ,而考虑到空间采样点位置代表性可能有偏差(比如采样点聚集在某一小片地区,没有代表性),简单平均估计的期望也可能是有偏差的。这是简单克里金方法的局限性。

8.小结

总的来说,进行克里金插值分为这几个步骤:

  1. 对于观测数据,两两计算距离与半方差
  2. 寻找一个拟合曲线拟合距离与半方差的关系,从而能根据任意距离计算出相应的半方差
  3. 计算出所有已知点之间的半方差 rij
  4. 对于未知点 zo ,计算它到所有已知点 zi 的半方差 rio
  5. 求解第四节中的方程组,得到最优系数 λi
  6. 使用最优系数对已知点的属性值进行加权求和,得到未知点 zo 的估计值

克里金(Kriging)插值的原理与公式推导相关推荐

  1. matlab克里金插值法,克里金(Kriging)插值的原理与公式推导

    学过空间插值的人都知道克里金插值,但是它的变种繁多.公式复杂,还有个半方差函数让人不知所云 本文讲简单介绍基本克里金插值的原理,及其推理过程,全文分为九个部分: 0.引言-从反距离插值说起 1.克里金 ...

  2. 克里金(Kriging)插值的原理与公式推导_转

    转载自 https://xg1990.com/blog/archives/222 如果没有加载出来,请点击查看图片

  3. python 克里金空间插值_Python克里金(Kriging)插值计算及可视化绘制

    前面两篇推文我们分别介绍了使用Python和R进行IDW(反距离加权法) 插值的计算及结果的可视化过程,详细内容可见如下: 本期推文,我们将介绍如何使用Python进行克里金(Kriging)插值计算 ...

  4. ArcGis克里金斯插值详解

    学过空间插值的人都知道和反距离插值(IDW)和克里金插值, 本文讲简单介绍基本克里金插值的原理,以及在Arcgis中实现的详细过程.由于IDW操作和克里金很相似,并且最常用的是克里金,因此实操部分给了 ...

  5. GEE:克里金 Kriging 空间插值(以陕西省2013年生物量为例)

    作者:CSDN @ _养乐多_ 本文记录了在Google Earth Engine(GEE)平台上进行 Kriging 插值的介绍和代码案例.本文通过选取的2013年陕西省生物量样本点数据为例,利用 ...

  6. 克里金(kriging)模型的推导详解

    Kriging模型理论推导 1.前言 2.条件 3.基础知识 3.1.方差的理解 3.2.概率密度函数 3.3.多元正态分布 4.理论推导 4.1 模型建立 4.2 模型预测 1.前言 简介:Krig ...

  7. ArcGIS教程:克里金法的工作原理(二)

    根据经验半变异函数拟合模型 下一步是根据组成经验半变异函数的点拟合模型.半变异函数建模是空间描述和空间预测之间的关键步骤.克里金法的主要应用是预测未采样位置处的属性值.经验半变异函数可提供有关数据集的 ...

  8. 基于 Python(gma) 的 克里金(Kriging)法插值的主要过程

      由于克里金插值的复杂性,本文不再对其原理进行介绍.详情可自行百度. 本算法基于 Python 的开源克里金插值包 pykrige. 但本算法已对其进行改造,以使其符合 gma 的整体逻辑. 本算法 ...

  9. 克里金插值---MATLAB程序

    最近在研究克里金插值,拜读了@lanainluv的笔记,备受启发, 在这里做一些补充,并分享自己的代码,希望对各位有所帮助,有误的地方请批评指正!(有帮助的话点个赞吧~) @lanainluv的原文链 ...

最新文章

  1. C++/C++11中std::set用法汇总
  2. Stata回归结果输出
  3. yum 错误:Invalid configuration value: failovermethod=priority
  4. 以整体思维看问题:解决单页应用,系统角色请求覆盖身份唯一标识(本项目中是session_id命名的)发送请求问题...
  5. python2.7更新python3.6_python2.7升级到python3.6注意事项
  6. Reapter 中客户端控件和服务器端控件的选择
  7. 一个专家眼中的Go与Java垃圾回收算法大对比
  8. 20135337——信息安全设计基础第十四周学习笔记
  9. java教学视频_孔浩老师_孔浩老师JAVA WebService教程
  10. Linux系统tomcat修改端口
  11. Inno Setup 6.0.0+ 繁体中文语言包
  12. 杭电多校联赛2017年总结
  13. mac 卸载 redis
  14. Unity实战——模拟太阳系
  15. 亿级流量电商详情页系统实战-25.亿级流量商品详情页的多级缓存架构介绍
  16. 计算机电源可以改装,玩转电源:将电脑电源改成可调稳压电源的设计
  17. CMake教程之构建Qt平台
  18. 饿了么 如何优雅地战胜 淘点点
  19. Python基础--------Python要点
  20. 外包员工为什么要往甲方员工发展

热门文章

  1. uni-app中@tap和@click的区别
  2. 算法导论第21章思考题
  3. 基于Android Studio实现的功能强大的购物商城APP源码,可做Android Studio毕业设计、大作业
  4. Android APP微信支付开发的步骤
  5. 微雪CM4-IO-WIRELESS-BASE 配置
  6. 关于SubSonic3.0插件使用SqlQuery或Select查询时产生的System.NullReferenceException异常修复
  7. oc中写c语言的方法,OC语言description步骤和sel
  8. matlab语言学习笔记(一)
  9. 再见了微服务!K8S 云原生架构已成气候!
  10. Android开发规范:API接口安全设计规范