lmのブートストラップされたt値とブートストラップされたp値を取得したいと思います。私は動作する次のコード(基本的に紙からコピーされた)を持っています。
# First of all you need the following packages
install.packages("car")
install.packages("MASS")
install.packages("boot")
library("car")
library("MASS")
library("boot")
boot.function <- function(data, indices){
data <- data[indices,]
mod <- lm(prestige ~ income + education, data=data) # the liear model
# the first element of the following vector contains the t-value
# and the second element is the p-value
c(summary(mod)[["coefficients"]][2,3], summary(mod)[["coefficients"]][2,4])
}
ここで、ブートストラップモデルを計算します。これにより、次のようになります。
duncan.boot <- boot(Duncan, boot.function, 1999)
duncan.boot
ORDINARY NONPARAMETRIC BOOTSTRAP
Call:
boot(data = Duncan, statistic = boot.function, R = 1999)
Bootstrap Statistics :
original bias std. error
t1* 5.003310e+00 0.288746545 1.71684664
t2* 1.053184e-05 0.002701685 0.01642399
2つの質問があります:
私の理解では、ブートストラップ値は元の値にバイアスを加えたものです。つまり、ブートストラップされた値(ブートストラップされたt値とブートストラップされたp値)の両方が元の値よりも大きいということです。これは不可能です。なぜなら、t値が上がると(つまり、より重要になる)、p値は低くなければならないからです。したがって、私はまだブート関数の出力を本当に理解していないと思います(ここでは:)
duncan.boot
。ブートストラップされた値を計算するにはどうすればよいですか?boot()がどのように機能するのかわかりません。見てみる
duncan.boot <- boot(Duncan, boot.function, 1999)
と、関数「boot.function」の引数を渡していないことがわかります。Rが設定されていると思いますdata <- Duncan
。しかし、引数「indices」には何も渡していないため、関数「boot.function」の次の行がどのように機能するのかわかりません。data <- data[indices,]
質問が理にかなっていることを願っています!??