So-net無料ブログ作成

R: L関数 [統計]

こんどはL関数を計算させてみる。

finpinesをつかう。
library(spatstat)
data(finpines)
plot(finpines)

Rplot001.png

まずはK関数。
# K function
K <- Kest(finpines, correction = "border")
plot(K)

Rplot002.png

# L function
L <- Lest(finpines, correction = "border")
plot(L)

Rplot003.png

Monte Carloで95%信頼区間をもとめる。
# Monte Carlo
library(boot)
L.fun <- function(data, correction = "border") {
  x.min <- min(data$window$xrange)
  x.max <- max(data$window$xrange)
  y.min <- min(data$window$yrange)
  y.max <- max(data$window$yrange)
  n <- data$n
  x <- runif(n, x.min, x.max)
  y <- runif(n, y.min, y.max)
  p <- ppp(x, y, window = data$window)
  Lest(p, correction)$border
}

n <- 2000
L.p <- boot(finpines, L.fun, R = n, sim = "parametric")

m <- length(L.p$t[1, ])
q <- sapply(1:m, function(i) quantile(L.p$t[, i],
                                      probs = c(0.025, 0.975)))

plot(L)
lines(L$r, q[1, ], lty = 3)
lines(L$r, q[2, ], lty = 3)

Rplot004.png
タグ:R
nice!(0)  コメント(3)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 3

Thoma

こんばんは
森林生態学を学んでいる学生です。
ブログを見て勉強させていただいております。

樹木の水平分布を調べるため、L関数を使おうとしているのですが、x,y座標を渡す際に、data contain duplicated points
というエラーが出てしまいます。
spatstatを使っていますが、
重複した座標をもつ個体がいるとプロットできないのでしょうか?

5年も前の記事にコメントしてしまい申し訳ありません。
もし何かご存知でしたら教えていただけないでしょうか。
by Thoma (2017-11-16 20:54) 

hiroki

はい。座標が重複しているとだめだったと思います。
by hiroki (2017-11-17 05:22) 

Thoma

hiroki様

重複はダメなのですね。
参考になりました。ありがとうございます。
by Thoma (2017-11-17 15:16) 

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0