gpt4 book ai didi

r - 如何引导尊重主题内信息?

转载 作者:行者123 更新时间:2023-12-03 20:49:03 25 4
gpt4 key购买 nike

这是我第一次在这个论坛发帖,我想从一开始就说我不是一个熟练的程序员。因此,如果问题或代码不清楚,请告诉我!

我正在尝试通过引导来获得交互的 95% 置信区间 (CI)(即我的测试统计量)。我正在使用“引导”包。我的问题是,对于每个重新采样,我希望在受试者内进行随机化,以便不同受试者的观察结果不会混合。这是生成类似于我的数据帧的代码。如您所见,我有两个被试内因素(“Num”和“Gram”,我对两者之间的相互作用感兴趣):

Subject = rep(c("S1","S2","S3","S4"),4)
Num = rep(c("singular","plural"),8)
Gram = rep(c("gram","gram","ungram","ungram"),4)
RT = c(657,775,678,895,887,235,645,916,930,768,890,1016,590,978,450,920)
data = data.frame(Subject,Num,Gram,RT)

这是我用来获取经验交互值的代码:
summary(lm(RT ~ Num*Gram, data=data))

如您所见,我的两个因子之间的交互作用是 -348。我想获得这个统计的引导置信区间,我可以使用“引导”包生成:
# You need the following packages
install.packages("car")
install.packages("MASS")
install.packages("boot")
library("car")
library("MASS")
library("boot")

#Function to create the statistic to be boostrapped
boot.huber <- function(data, indices) {
data <- data[indices, ] #select obs. in bootstrap sample
mod <- lm(RT ~ Num*Gram, data=data)
coefficients(mod) #return coefficient vector
}

#Generate bootstrap estimate
data.boot <- boot(data, boot.huber, 1999)

#Get confidence interval
boot.ci(data.boot, index=4, type=c("norm", "perc", "bca"),conf=0.95) #4 gets the CI for the interaction

我的问题是,我认为应该在不混合单个主题观察的情况下生成重新采样:也就是说,要生成新的重新采样,来自主题 1 (S1) 的观察应该在主题 1 中混洗,而不是将它们与来自主题的观察混合2,等等......我不知道“引导”是如何进行重采样的(我阅读了文档,但不明白该功能是如何进行的)

有谁知道我如何确保“引导”使用的重采样程序尊重主题级别信息?

非常感谢您的帮助/建议!

最佳答案

只需将您的电话修改为 boot()像这样:

data.boot <- boot(data, boot.huber, 1999, strata=data$Subject)
?boot提供了对 strata= 的描述论点,这正是您所要求的:

strata: An integer vector or factor specifying the strata for multi-sample problems. This may be specified for any simulation, but is ignored when ‘sim = "parametric"’. When ‘strata’ is supplied for a nonparametric bootstrap, the simulations are done within the specified strata.



附加说明:

要确认它是否按您的意愿工作,您可以调用 debugonce(boot) ,运行上面的调用,并逐步调试调试器,直到对象 i (其行包含用于重新采样 data 的行以创建每个 bootstrap 重新采样的索引)已分配,然后查看它。
debugonce(boot)
data.boot <- boot(data, boot.huber, 1999, strata=data$Subject)
# Browse[2]>
## [Press return 34 times]
# Browse[2]> head(i)
# [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14]
# [1,] 9 10 11 16 9 14 15 16 9 2 15 16 1 10
# [2,] 9 14 7 12 5 6 15 4 13 6 11 16 13 6
# [3,] 5 10 15 16 9 6 3 4 1 2 15 12 5 6
# [4,] 5 10 11 4 9 6 15 16 9 14 11 16 5 2
# [5,] 5 10 3 4 1 10 15 16 9 6 3 8 13 14
# [6,] 13 10 3 12 5 10 3 4 5 14 7 16 5 14
# [,15] [,16]
# [1,] 7 8
# [2,] 11 16
# [3,] 3 16
# [4,] 3 8
# [5,] 7 8
# [6,] 7 12

(您可以随时输入 Q 退出调试器。)

关于r - 如何引导尊重主题内信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17472924/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com