#目的
Rで空間計量経済学の分析ができるようにする。
#教科書
###ジュセッペ・アルビア (著)、堤盛人 (訳)、2016、『Rで学ぶ空間計量経済学入門』、勁草書房
#参考文献
(参考サイト) Rで地理空間データ分析(1)~ 拡張子shpのシェープ形式ファイルを読み込んで、地図に属性値情報を重ねて描画
#今回範囲
- 第2章 章末問題2.9
- 空間重み行列作り
#今回目的
空間重み行列は空間計量やるときのキモ。
空間的自己相関の有無を判断するときや、分析するモデルにもつかう。
とりあえず、できるようにしておく。
###空間重み行列
近い地域同士の関係を行列で表す。
近さの決め方はいろいろあるが、今回は、とりあえす近いという基準の最大距離(閾値)を決めといて、その距離の内にある地域は近いとする。
(空間重み行列の例)
- 100キロ圏内が近いとする
- 東京、千葉、大阪、兵庫の近さの関係を考えると...
- 空間重み行列$W$は、
W =
\begin{matrix}
\\
東京\\
千葉\\
大阪\\
兵庫
\end{matrix}
\begin{matrix}
東京 千葉 大阪 兵庫 \\
\begin{pmatrix}
0 & 1 & 0 & 0 \\
1 & 0 & 0 & 0 \\
0 & 0 & 0 & 1 \\
0 & 0 & 1 & 0 \\
\end{pmatrix}
\end{matrix}
という感じ
- 今回は近かったら$1$をとるようにしている
- 他の地域との近さに興味があるので、対角成分は$0$
- 近くない地域とは$0$
- 行ごとに、要素の合計が1になるように基準化しておくことが多いらしい
#章末問題2.9解答
-
準備
https://gis.cancer.gov/tools/seerstat_bridge/fips_vars/#statefips
から、US_Stateという、米国51地域のシェープファイルをダウンロード -
Rコード
#パッケージのインストール
install.packages("spdep")
install.packages("maptools")
install.packages("gpclibPermit")
#パッケージの読み込み
library(sf)
library(spdep)
library(maptools)
#データをダウンロードした、自分の使っているファイルに設定
setwd("/自分のファイル名/US_State")
#シェープファイルの読み込み
US_State <- readShapePoly("US_State.shp", IDvar="StateFIPSN")
#データに含まれる変数名の確認
names(US_State)
#読み込んだシェープファイルの図示
plot(US_State)
#各州の重心座標を求める
coords <- coordinates(US_State)
#州のインデックスを地図上に重ねて表示
text(coords[,1], coords[,2], US_State$StateFIPSN, col="black")
print(paste("coords[,1]:", coords[,1], "coords[,2]:", coords[,2], "US_State$StateFIPSN:", US_State$StateFIPSN))
#近いという基準の距離を決めて、州ごとに、その州と閾値の内にある近い州を登録
contnb <- dnearneigh(coordinates(US_State), 0, 1500000, longlat=F)
#空間重み行列の作成(行の要素の合計が1になるように各行について基準化してある)
W <- nb2listw(contnb, glist=NULL, style="W")
終
#まとめ
- ところどころ怪しいところあり。
- 「シェープファイルの読み込み」の部分での、IDvarの部分の変数
- 「州のインデックスを地図上に重ねて表示」の部分での、やり方(教科書本文のコードだとエラーがでてできなかった。
- 「距離の最低限の閾値を決めて、隣接している地域を登録」の部分での閾値の決め方
間違いが発覚したら訂正するので、ご指摘はありがたい。