-
次に距離行列の作成.
あとの処理を考えると,こういうふうにするのがよい.
> matrix.r <- as.matrix(dist(d[, c("x", "y")], upper = TRUE))
> matrix.r
1 2 3 4 5 6
1 0.0000 2.3770 2.5710 3.8626 1.6643 4.1037
2 2.3770 0.0000 1.5297 2.6926 1.3928 2.0616
3 2.5710 1.5297 0.0000 1.3601 2.5612 3.4366
4 3.8626 2.6926 1.3601 0.0000 3.8897 4.2426
5 1.6643 1.3928 2.5612 3.8897 0.0000 2.5239
6 4.1037 2.0616 3.4366 4.2426 2.5239 0.0000
-
次に距離加重関数の定義.
これにはいろいろな関数型
(例: 距離とともに加重が徐々に低下していく,など)
がありえるわけだが,
ここでは単純に
r.star
より近い点は加重 1 で遠ければゼロ,
ただし距離ゼロ (つまり自分自身) も加重ゼロ,
としてみよう.
> weight <- function(r, r.star) ifelse(r < r.star & r > 0, 1, 0)
> weight(matrix.r, r.star = 3) # 距離 3 未満なら 1, そうでなければゼロ
1 2 3 4 5 6
1 0 1 1 0 1 0
2 1 0 1 1 1 1
3 1 1 0 1 1 0
4 0 1 1 0 0 0
5 1 1 1 0 0 1
6 0 1 0 0 1 0
-
で,
あとは
library(spdep)
の moran.mc
で 199 回ばかり Monte Carlo シミュレイションやってみる,
と.
> library(spdep)
> listw <- mat2listw(weight(matrix.r, r.star = 3))
> rndtest <- moran.mc(x = d$value, listw = listw, nsim = 199)
> rndtest
Monte-Carlo simulation of Moran's I
data: d$value
weights: listw
number of simulations + 1: 200
statistic = -0.0686, observed rank = 148, p-value = 0.26
alternative hypothesis: greater
観測データの Moran's I (距離加重つき相関)
は -0.0686 で,
これは「点の位置はそのままだけど d$value
でたらめに入れ換えました」無作為化 (randomization)
で得られたランダム化 Moran's I 分布の 95% 区間内に入っておりました
(p-value = 0.26
)
なる結果でした,
と.
-
北村君の解析では
r.star
を変えていったときの観測値の Moran's I と
無作為化シミュレイションの 95% 区間
(rndtest$res
に入っている結果を利用して計算できる)
を図示するプログラムとかも追加して
……
さてさて,
阿寒データ解析はこれにて終了か?
-
夜になると札幌市は風速 15m/s 程度の暴風圏に.
地環研 A 棟 8F まわりだと 20m/s ぐらい?
-
うーむ,
メイルかきとか終了せぬまま撤退.
正月きぶん,
とでもいうべきなのか
……
2010 研究室発.
たしかに「台風なみ」の強風.
雪というかあられはぱらぱら程度.
2030 帰宅.
体重 70.2kg.
晩飯の準備.
晩飯.
-
おお,
強風にとばされてきたあられが窓ガラスをばしばしとたたく
……
-
[今日の運動]
-
腹筋運動 30 ×
3 回.
腕立ふせ 5 ×
3 回.
-
[今日の食卓]
- 朝 (0910):
米麦 0.6 合.
卵焼き.
ワカメスープ.
- 昼 (1420):
研究室お茶部屋.
食パン.
リンゴ.
- 晩 (2200):
米麦 0.6 合.
ブロッコリー・ニンジン・ジャガイモ・エリンギ・アサリのシチュー.