2021年1月27日水曜日

Moran’s I

午前
・標本整理(写真撮影)

午後
・資料作成
・データ解析

卒論の時期になると思い出すのだが、未発表の過去の卒論で得た貴重なデータの山、、、。

これはいかん、と今年の卒論を投稿用に、空間自己相関分析をやってみた。

複数の地点で連続データを取得した際、そのデータが地理的傾向を示す、つまり、データが大きい地点の近くのデータは大きい、または、小さい地点の近くは小さい(逆もある)、とき、空間的自己相関があるという。簡潔に言うと、地点間が独立ではない。

空間自己相関を評価する方法として良く用いられるのが、「Moran’s I」で、-1〜+1の値を取り、有意に正のときは、大きな値(or 低い値)が空間的に(ランダム分布よりも)集中し、有意に負のときは、大きな値(or 低い値)が(ランダム分布よりも)分散している、と解釈できる。

「alldata」はデータフレームで、「lon」列の東経、「lat」列に北緯、「sinyou_sum」列に針葉樹の数が入っている。他にも色々と列がある。

針葉樹数のMoran’s Iを求めるには、下記を実行する。
library(sf)
library(spdep)

#地点データをsf形式に変換
lonlat <- st_as_sf(alldata, coords = c("lon", "lat"),
                            crs = "+proj=longlat +datum=WGS84 +no_defs")

#座標データの指定
lonlat_c <- st_coordinates(lonlat)

#空間隣接行列の計算
lonlat_d <- tri2nb(lonlat_c)

#moran'Iの計算
moran.test(alldata$fsinyou_sum, nb2listw(lonlat_d,style="W"))
  
  	Moran I test under randomisation

data:  alldata$sinyou_sum  
weights: nb2listw(lonlat_d, style = "W")    

Moran I statistic standard deviate = -0.50068, p-value = 0.6917
alternative hypothesis: greater
sample estimates:
Moran I statistic       Expectation          Variance 
     -0.054011255      -0.016666667       0.005563221 
p-value > 0.05なので、帰無仮説(ランダム分布)は棄却されず。地理的傾向はないと解釈される。

地点間の距離を計測し行列を作成する、spdep::tri2nb( )、が優れもの。ドローネ三角網という方法で計算しているそうで、spdep::knn2nb( )を使えば、最近隣k地点で計算することもできる。

下記を実行すると、やっていることがイメージしやすい。
plot(lonlat_d, lonlat_c)