在我的bootstrapping & 回归代码中,R错误信息。

问题描述 投票:0回答:1

我想使用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.:我上网搜索了错误信息&将我的代码与其他人的(工作)方法进行了比较,但无论如何都不知道这里发生了什么。

r regression bootstrapping
1个回答
2
投票

这就是我的工作方法,你必须在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)

1
投票

( 我认识到这时是一个评论,但我想继续把它作为How-To解决问题的答案。如果上位者提供更多的源信息,我会补充具体的诊断)

调试的一般教程。

首先,试试 traceback() 来查看是否有内部调用引发了错误或 boot 本身也是如此。

下一步,看看从你的 bootReg 功能。它正是 boot 愿意接受 statistic 输入? 你的 formula 返回你期望它返回的内容(同样是类和长度)? 你确定 dataindices 输入以正确的顺序输入到你的系统中。formula?

© www.soinside.com 2019 - 2024. All rights reserved.