轉自: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.小結
總的來說,進行克里金插值分爲這幾個步驟:
- 對於觀測數據,兩兩計算距離與半方差
- 尋找一個擬合曲線擬合距離與半方差的關係,從而能根據任意距離計算出相應的半方差
- 計算出所有已知點之間的半方差 rij
- 對於未知點 zo ,計算它到所有已知點 zi 的半方差 rio
- 求解第四節中的方程組,得到最優係數 λi
- 使用最優係數對已知點的屬性值進行加權求和,得到未知點 zo 的估計值