我想使用bootstrapping &运行一个回归,但由于某些原因,它不工作。我总是得到错误信息 "Anzahl der zu ersetzenden Elemente ist kein Vielfaches der Ersetzungslänge"(英文:显然我有两套元素& 我想把其中一套改为另一套,但它们不匹配)。
有谁知道这里可能出了什么问题。
bootReg <- function(formula,data,indices)
{
d <- data[indices,]
fit <- lm(formula, data=d)
return(coef(fit))
}
results <- boot(statistic = bootReg,
formula = RT ~ Code + Situation + Block, data = reg_df, R = 2000)
#RT = reaction times (--> numeric)
#Situation = "lab" or "online"
#Block = either 0,1,2 or 3 (--> as characters)
#Code = each subject's individual code
各组数据是依存的(=在每一种情况下X块组合中有来自每个主体的RTs)
先谢谢你!
P.S.:我上网搜索了错误信息&将我的代码与其他人的(工作)方法进行了比较,但无论如何都不知道这里发生了什么。
这就是我的工作方法,你必须在boot()的公式中添加lm()。
bootReg <- function(formula,
data,
indices)
{
d <- data[indices,]
fit <- lm(formula, data=d)
return(coef(fit))
}
results <- boot(statistic = bootReg, formula = lm(RT ~ Code + Situation + Block, data = df), data = df, R = 2000)
( 我认识到这时是一个评论,但我想继续把它作为How-To解决问题的答案。如果上位者提供更多的源信息,我会补充具体的诊断)
调试的一般教程。
首先,试试 traceback()
来查看是否有内部调用引发了错误或 boot
本身也是如此。
下一步,看看从你的 bootReg
功能。它正是 boot
愿意接受 statistic
输入? 你的 formula
返回你期望它返回的内容(同样是类和长度)? 你确定 data
和 indices
输入以正确的顺序输入到你的系统中。formula
?