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

转自: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λizizo)=0

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

ci=0nλic=0

i=0nλi=1

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

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

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

J=Var(zo^zo)

则有

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

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

则有

J=i=0njnλiλjCij2i=0nλiCio+Coo

5.代价函数的最优解

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

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

考虑到  ni=0λi=1

J=σ2ni=0njλiλj(rij)2σ2+2ni=0λi(rio)+σ2roo=2ni=0λi(rio)ni=0nj=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λi1)

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

(J+ϕ(ni=0λi1))λi(J+ϕ(ni=0λi1))ϕ=0;i=1,2,,n=0

(2ni=0λi(rio)ni=0njλiλj(rij)roo)λi(2ni=0λi(rio)ni=0njλiλj(rij)roo)ϕ=0;i=1,2,,n=0

{2rionj=1(rij+rji)λjni=0λi=0;i=1,2,,n=1

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

{rionj=1rijλjni=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)

写成矩阵形式即为

r11r21rn11r12r22rn21r1nr2nrnn11110λ1λ2λn0=r1or2orno1

对矩阵求逆即可求解。

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

6.半方差函数

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

rij=σ2Cij

其等价形式为

rij=12E[(zizj)2]

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

根据上文定义  Ri=zic  ,有  zizj=RiRj  ,则

rij=12E[(RiRj)2]=12E[R2i2RiRj+R2j]=12E[R2i]+12E[R2j]E[RiRj]

又因为:

E[R2i]=E[R2j]=E[(zic)2]=Var(zi)=σ2

E[RiRj]=E[(zic)(zjc)]=Cov(zi,zj)=Cij

于是有

rij=12E[(zizj)2]=12E[R2i]+12E[R2j]E[RiRj]=12σ2+12σ2Cij=σ2Cij

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

rij=12

你可能感兴趣的:(kriging)