3

したがって、私が遭遇した問題はかなり基本的なものですが、解決できないようです。私は spatstat の F、G、J、K、および L 関数を使用してきましたが、あるポイント プロセスの F 関数を、別のポイント プロセスの F 関数と同じプロットにプロットしたいと考えています。これは簡単でしたが、ポイント プロセスの 1 つは関数を r = 20 に評価し、もう 1 つは r = 15 に評価します (「r」は x 軸の独立変数です)。両方を同じ r 値、できれば 20 に評価したいのですが、どうすればよいですか? 本質的に、これが問題です。

まず、関数の値を含むデータ フレームを作成します。

mydata.Fest <- Fest(mydata)

次に、何らかの理由で、このコード行:

plot(mydata.Fest)

次のコード行と同じ 'r' (独立変数) 値に評価されません。

plot(mydata.Fest, xlim=c(0,20), ylim=c(0,0.8))

両方のプロットは xlim = c(0,20) と ylim = c(0,0.8) から進みますが、何らかの理由で 2 番目のプロットは x = 15 で関数の評価を停止します。それらが同じオブジェクトからプロットされていることを考えると、彼らが同じプロットを作成しない理由についての手がかりがありません.

補足として、私は別の問題を抱えていました.F、J、およびK関数を使用しているときに、制限(特に独立変数の制限)を調整するとRが予期せずクラッシュすることがわかりました。この問題が発生した場合、または解決策を知っている場合は、お知らせください。

ありがとう!

4

3 に答える 3

3

これはよくある質問です。spatstat.org の FAQ ページで議論されています。

Fest や Kest などの spatstat の集計関数には、独立変数の「推奨範囲」があり、関数が計算された値の範囲よりも短い場合があります。推奨範囲は、関数推定値が統計的に信頼できる範囲です。デフォルトでは、関数は推奨限界までのみプロットされます。(これは、空間統計の標準的な方法です。これを行わないと、ほとんどのプロットが奇妙に見えます。なぜなら、関数の値が大きくなり、信頼できる情報が縮小されて、グラフの左下の小さな部分を占めるだけになるからです。プロット。)

r の使用可能な推奨範囲を調べるには、関数オブジェクトを出力し (名前を入力するだけ)、出力の最後の数行を確認します。

プロットの範囲を制御するには、xlim と ylim を使用します。

詳細については、ワークショップ ノート www.csiro.au/resources/pf16h.html を参照してください。

Adrian Baddeley - パッケージ作成者

于 2012-06-20T02:31:47.017 に答える
1

この問題について Dr. Adrian Baddeley ('spatstat' の作成者) に連絡したところ、この例は add=TRUE の場合に plot.fv のバグを示しているとのことでした。これは、spatstat バージョン 1.28-1 で修正される予定です。

于 2012-06-12T13:20:11.623 に答える
1

うーん、これは少し奇妙です。申し訳ありませんが、回答ではありませんが、あなたが説明した動作の再現可能な例を残して、他の人が調査するのが最善であると考えました.

私が過去に行ったことは、個別の点パターンを評価するためのビンの一貫したベクトルを作成することです。

library(spatstat)
data(lansing)

mydata1 <- lansing[lansing$marks == "blackoak",]
mydata2 <- lansing[lansing$marks == "hickory",]

my_r <- (0:40*.002)

mydata1.Fest2 <- Fest(mydata1, r = my_r)
mydata2.Fest2 <- Fest(mydata2, r = my_r)

plot(mydata1.Fest2)
plot(mydata2.Fest2, add = TRUE)

mydata1.Fest2$r
mydata2.Fest2$r

ご覧のとおり、距離ビンは同じですが、関数は同じセットに対して評価されていません。確認したところ、これは 特有の挙動なのかもしれませんFestが、 を使用すると期待通りの解が得られましたKest。以下の例。

mydata1.Kest <- Kest(mydata1)
my_k <- mydata1.Kest$r
mydata2.Kest <- Kest(mydata2, r = my_k)

plot(mydata1.Kest)
plot(mydata2.Kest, add = TRUE)

これは の予想される動作ではないと思いますFestが、私はこのテクニックと、Ripley の K との違いにあまり詳しくないので、間違いなく間違っている可能性があります。これは何らかの理由で予想される動作です。また、出力デバイスで軸の制限を設定しようとしたときに、あなたが説明したのと同様の予期しないクラッシュが発生しましたが、再現できませんでした。だから多分あなたは何かに取り組んでいるか、私たちは両方とも夢中です!

于 2012-06-07T15:41:00.930 に答える