演習の概要

  • 空間隣接行列、空間的自己相関

注意事項

  • 慶應義塾大学SFCで開講している「空間モデリング」の授業履修者向けの演習用ページです。
  • 必ずしも全てのバージョンのRやOSで動作確認を行っていません。この演習用ページを作成している段階では、R3.5.3を使っています。
  • Rの更新などにより、Rコードなどを予告無しに変更する場合があります。

データ分析の準備

データのダウンロード

  • 演習で用いるデータはここからダウンロードしてください。
  • ここでは./直下にgisdataフォルダを作成し、setwd("gisdata")とディレクトリを指定しています

パッケージのインストール

  • install.packages()でパッケージをインストールし、library()でパッケージを呼び出す
  • ここでは以下のパッケージを用います
install.packages("spdep")
install.packages("sf")
install.packages("spatstat")
install.packages("tidyverse")
install.packages("kokudosuuchi")
library(spdep)
library(sf)
library(spatstat)
library(tidyverse)
library(kokudosuuchi)

以下の方法でパイプ %>% の優先順位を高める

needs::prioritize(magrittr)

データの読み込み

神奈川県の市区町村境界データを国土数値情報から入手する

kokudosuuchi::getKSJURL("N03", prefCode = 14) %>%
  filter(year==2015) %>%  select(zipFileUrl) %>% 
  pull(1) -> url
tf <- tempfile(fileext = ".zip")
curl::curl_download(url, tf)
unzip(tf, exdir = getwd(), junkpaths = TRUE)
unlink(tf)
rm(tf)

神奈川県の行政境界データを読み込み、更に横浜市を抽出する。その際、同じ行政コードのポリゴンを統合する。

ad <- sf::st_read('N03-15_14_150101.shp')%>%
  dplyr::group_by(N03_007) %>%
  dplyr::summarise(geometry = st_union(geometry)) %>%
  dplyr::ungroup()
ad %>%
  filter(N03_007 %in% c(14101:14118)) -> y_ad

横浜市の行政境界を描画する。

y_ad %>%
  st_geometry() %>%
  plot(border="white", col="grey")

空間隣接行列

ドロネー三角網による空間離接性

y_ad_cen <- sf::st_centroid(y_ad)
y_ad_coord <- sf::st_coordinates(y_ad_cen)
y_ad.tri.nb <- spdep::tri2nb(y_ad_coord)

y_ad %>%
  st_geometry() %>%
  plot(border="white", col="grey")
plot(y_ad.tri.nb, y_ad_coord, add=TRUE)
st_centroid assumes attributes are constant over geometries of xst_centroid does not give correct centroids for longitude/latitude data