0

データ フレームがあり、ブート関数を使用して各列に関数を適用したいと考えています。また、boot.ci を使用して、適用された関数の信頼区間を取得したいと考えています。次の簡単な例に示すように、ブートストラップを実行できましたが、それが機能する理由がわかりません。

library(boot)
resample.number<-1000

df <- data.frame(A = 0:10,B = 10:20,C = 20:30)

sample.mean<-function(data,x){
    apply(data[x,],2,mean)
}

b<-boot(df,sample.mean,resample.number)

まず、関数へのデータ入力に付随する x と [x,] が必要なのはなぜですか? (関数を次のように定義することで、うまくいくと思いました:

sample.mean<-function(data){
apply(data,2,mean)
}

、しかし、これはエラーをスローします:統計のエラー(データ、オリジナル、...):未使用の引数(オリジナル)。このため、なぜ x が必要なのかわかりません。各ブートストラップ統計に関連付けられた信頼区間 (つまり、各列の平均に関連付けられた信頼区間) も返すように関数を定義するのに問題があります。おそらく、信頼区間に関する私の問題は、x の目的の誤解に根ざしているのでしょうか? 例えば、

boot.ci(b)

信頼区間のセットを 1 つだけ返します。

x 参照が必要な理由に関する他の質問やコメントへの指示は大歓迎です。信頼区間を返す方法についてのガイダンスもいただければ幸いです。

4

1 に答える 1

4

多分このようなもの:

sample.mean<-function(data,x){
    mean(data[x])
}

boot_obj <- lapply(df,boot,statistic = sample.mean,R = 200)
lapply(boot_obj,boot.ci)
于 2013-04-29T16:39:06.963 に答える