10

位置推定のデータベースがあり、毎月のカーネル使用率分布を計算したいと考えています。R の adehabitat パッケージを使用してこれを行うことができますが、データベースからサンプリングしたブートストラップを使用して、これらの値の 95% 信頼区間を推定したいと思います。今日、私はブート パッケージを試してみましたが、まだ R に慣れていないので、専門家の助けが必要です! 私が得ている主なエラーメッセージは次のとおりです。

Error in statistic(data, original, ...) : unused argument(s) (original)

ここで私が使用しているファイルを見てみましょう:

    head(all)
Num          Hourbin  COA_Lat   COA_Lon  POINT_X POINT_Y   month year    id
1 07/10/2010 15:00 48.56225 -53.89144 729339.9 5383461 October 2010 29912
2 07/10/2010 16:00 48.56254 -53.89121 729355.7 5383495 October 2010 29912
4 07/10/2010 18:00 48.56225 -53.89144 729339.7 5383461 October 2010 29912
5 07/10/2010 19:00 48.56225 -53.89144 729339.9 5383461 October 2010 29912
6 07/10/2010 20:00 48.56225 -53.89144 729339.8 5383461 October 2010 29912
7 07/10/2010 21:00 48.56225 -53.89144 729339.9 5383461 October 2010 29912

列 5 と 6 はそれぞれ X と Y の位置です。このデータセットを別の月にサブセット化します (つまり、"oct"、"nov" などの名前のファイルを取得します)。adehabitat パッケージの kernelUD 関数を、ブートストラップ用に呼び出すことができる関数に設定しようとしましたが、これまでうまくいきませんでした。

kUDoct<-function(i) kernel.area(oct[,5:6],oct[,10],kern="bivnorm",unin=c("m"),unout=c("km2"))
bootoct<-boot(oct,kUDoct,R=1000)
Error in statistic(data, original, ...) : unused argument(s) (original)

どんな助けでも大歓迎です!

M

4

1 に答える 1

7

さて、あなたが抱えている問題はbootドキュメントが指示するように関数を使用していないことです。?boot2 番目の引数statisticは次のとおりです。

データに適用されると、対象の統計を含むベクトルを返す関数。sim = "parametric" の場合、statistic の最初の引数はデータでなければなりません。レプリケートごとに、ran.gen によって返されるシミュレートされたデータセットが渡されます。その他のすべての場合、statistic は少なくとも 2 つの引数を取る必要があります。渡される最初の引数は、常に元のデータになります。2 番目は、ブートストラップ サンプルを定義するインデックス、頻度、または重みのベクトルになります。

これは、少なくとも2 つの引数を取るように関数を定義する必要があることを意味することに注意してください。あなたは1つだけを受け入れます(そして、奇妙なことに、それを完全に無視します)。

アイデアは、元のデータとインデックスのベクトルを渡すことです。次に、これらの指標を使用して元のデータをサブセット化することにより、関心のある統計を計算します。これは「ブートストラップ サンプル」を構成します。

したがって、これの代わりに:

kUDoct<-function(i) kernel.area(oct[,5:6],oct[,10],kern="bivnorm",unin=c("m"),unout=c("km2"))
bootoct<-boot(oct,kUDoct,R=1000)

おそらく、次のようなことをもっとしたいと思うでしょう:

kUDoct<-function(dat,ind) kernel.area(dat[ind,5:6],dat[ind,10],kern="bivnorm",unin=c("m"),unout=c("km2"))
bootoct<-boot(oct,kUDoct,R=1000)

ただし、あなたの例は完全に再現可能ではないため、発生する可能性のある他のエラーを診断することはできません。

于 2012-04-23T17:41:54.177 に答える