我想获得 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
我有两个问题:
我的理解是自举值是原始值加上偏差,这意味着自举值(自举 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,]
我希望这些问题有意义!???