4

我想获得 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

我有两个问题:

  1. 我的理解是自举值是原始值加上偏差,这意味着自举值(自举 t 值和自举 p 值)都大于原始值。这反过来又是不可能的,因为如果 t 值上升(这意味着更重要),p 值必须更低,对吧?因此我认为我还没有真正理解引导函数的输出(这里:)duncan.boot。如何计算引导值?

  2. 我不明白 boot() 是如何工作的。如果你看duncan.boot <- boot(Duncan, boot.function, 1999)你会发现我没有为函数“boot.function”传递任何参数。我想 R 设置data <- Duncan. 但由于我没有为参数“indices”传递任何东西,我不明白函数“boot.function”中的以下行是如何工作的data <- data[indices,]

我希望这些问题有意义!???

4

1 回答 1

7

引导函数“期望”获得一个具有两个参数的函数:第一个是 data.frame,第二个是用于选择行的“索引”向量(可能具有重复的条目并且可能不使用所有索引)并且可能有一些重复或一式三份。)然后,它使用由原始数据帧中的重复和三份模式确定的替换进行采样(由具有不同“选择集”的“R”确定的多次),将它们传递给索引中的参数boot.function,然后收集R个函数应用的结果。

关于print引导对象的方法报告的内容,看看这个(在使用 str() 检查返回的对象后完成

> duncan.boot$t0
[1] 5.003310e+00 1.053184e-05
> apply(duncan.boot$t, 2, mean)
[1] 5.342895220 0.002607943
> apply(duncan.boot$t, 2, mean) - duncan.boot$t0
[1] 0.339585441 0.002597411

更明显的是,该T0值来自原始数据,而偏差是 boot()-ed 值的平均值与T0值之间的差异。我认为问为什么基于参数考虑的 p 值随着估计的 t 统计量的增加而增加并没有多大意义。当您这样做时,您实际上处于两个不同的统计思想领域。我会将 p 值的增加解释为抽样过程的影响,它没有考虑正态分布假设。它只是在说明 p 值的抽样分布(实际上只是另一个样本统计量)。

(评论:R 开发时使用的资料书是戴维森和欣克利的“引导方法及其应用程序”。我没有声称对我上面的回答有任何支持,但我想在 Hagen Brenner 询问后将其作为参考关于在下面的评论中使用两个索引进行采样。在超出简单的参数估计之后会出现许多意想不到的自举方面,如果我要处理更复杂的采样情况,我会首先转向该参考。)

于 2011-11-25T20:36:54.040 回答