1
ブートストラップを使用して、非線形モデルのいくつかのパラメータの信頼区間を推定しようとします。今、私は個々のパラメータごとに個別にブートストラップしています。したがって、私はモデルのサーバー時間をgererateする必要があります。ここでboot :: boot()を使用した複数の値のブートストラップ
は一例です:
library(boot)
# generate some data:
x <- rnorm(300, mean = 5, sd = 2)
y <- xvalues^2*rnorm(300, mean = 1.5, sd = 1) + rnorm(300, mean = 3, sd = 1)
data <- data.frame(x = x, y = y)
# this is my model: nls(y ~ b1*x^2+b2, data = data, start = list(b1 = 1.5,b2 = 3))
# functions for bootstrapping:
getParamB1 <- function(x1, idx){
data <- x1 %>%
dplyr::slice(idx)
model <- nls(y ~ b1*x^2+b2, data = data, start = list(b1 = 1.5,b2 = 3))
coef(model)[['b1']]
}
getParamB2 <- function(x1, idx){
data <- x1 %>%
dplyr::slice(idx)
model <- nls(y ~ b1*x^2+b2, data = data, start = list(b1 = 1.5,b2 = 3))
coef(model)[['b2']]
}
# Calculate bootstrap confidence intervals
btrpB1 <- boot(data, statistic = getParamB1, R=200)
btrpB2 <- boot(data, statistic = getParamB2, R=200)
ciB1 <- boot.ci(btrpB1)
ciB2 <- boot.ci(btrpB2)
は、これは非常に素晴らしいコードもちろんではありません。一度にいくつかのパラメータ(ここではb1とb2)の信頼区間を推定する方法はありますか?
「coef(model)」を使用してください。 – user20650
私はブートストラップを使いたいです。上記は単なるおもちゃの例です。 – ACNB
?コメントはあなたの質問に答えられないのですか?関数が複数のパラメータを返すようにします。 (psはなぜオーバーヘッドを減らすために 'data < - x1 [idx、]'を使わないのですか) – user20650