回帰係数のブートストラップSEを取得しようとしています。私はブートストラップを実行するためにboot
パッケージを使用しています`boot`パッケージの層別サンプル戦略をカスタマイズする
set.seed(1234)
df <- data.frame(y = rnorm(1:30),
fac1 = as.factor(sample(c("A","B","C","D","E"),30, replace = T)),
fac2 = as.factor(sample(c("NY","NC","CA"),30,replace = T)),
x = rnorm(1:30))
:
library(boot)
fun <- function(data, index){
data <- df[index,]
reg <- lm(y ~ fac1 + fac2 + x, data)
coef(reg)
}
test.boot <- boot(df, fun, strata = df$fac1, 100)
をただし、Rは文句:
Error in boot(df, fun, strata = df$fac1, 100) :
number of items to replace is not a multiple of replacement length
述べたように私の状況はまったく同じであるように使用してデータが見えますhere。ここでの問題は、各グループの観察が不十分であることです。 boot
パッケージのstrata
オプションは、1つの要素変数に対してのみ機能するようです。私の場合は、fac1
とfac2
という2つの要素に基づいてサンプルを階層化する必要があります(ここで私の理解が間違っているかどうか教えてください)。
stratified
投稿されたhereは、必要な正確な層別サンプルを生成できます。ここでの問題は、boot
関数にstratified
関数を実装して、boot
関数を正しいサンプルで動作させる方法です。
現在、正しい層別サンプルを使用してブートストラップを実行するには、自分でfor-loop
を作成しています。しかし、私はまだstratified
の機能をboot
に組み込むことができるかどうかを知りたいですか?助言がありますか?ありがとうございました!
2つの要因から1つの要因を構築するには、 'help(" interaction ")'を参照してください。 – lmo
ありがとう@lmao。私は "相互作用"を使うことは間違いなく上記の問題を解決する良い方法だと思います。もっと複雑な状況のために 'stratified 'によって提供される余分な機能を必要とするかもしれないので、' boot'に 'stratified'のような他のカスタマイズされた機能を組み込むことができるのはまだ不思議です。ありがとう! – Chuan