boot()在替换时生成错误-R
我已经编写了两个函数,用于从lm对象中检索统计信息(系数和p值),以进行引导。一个工作的系数;p值1失败,出现错误:boot()在替换时生成错误-R,r,replace,p-value,statistics-bootstrap,R,Replace,P Value,Statistics Bootstrap,我已经编写了两个函数,用于从lm对象中检索统计信息(系数和p值),以进行引导。一个工作的系数;p值1失败,出现错误: Error in boot(data = data, statistic = bs_p, R = 1000) : number of items to replace is not a multiple of replacement length 我现在认为错误与包含因子变量有关。试图用容易再现的数据重现问题 L3 <- LETTERS[1:3] d
Error in boot(data = data, statistic = bs_p, R = 1000) :
number of items to replace is not a multiple of replacement length
我现在认为错误与包含因子变量有关。试图用容易再现的数据重现问题
L3 <- LETTERS[1:3]
data <- data.frame(cbind(x = 20:69, y = 1:50), fac = sample(L3, 50, replace = TRUE))
bs_p <- function (data, i) {
d <- data[i,]
fit <- lm (d$y~d$x*d$fac, data=d)
return(summary(fit)$coefficients[,4])
}
bt <- boot(data=data, statistic=bs_p, R=1000)
L3我不确定您是否可以从lm
模型中引导p-values
(但提供了解决方案)。在bs
或bs\u r
功能中,您可以删除fit
右侧的d$
,因为您已经定义了数据d。以下是使用mtcars数据的示例:
library(boot)
bs <- function(mtcars, i) {
d <- mtcars[i,]
fit <- lm (mpg~drat+wt, data=d)
return(coef(fit))
}
bt <- boot(data=mtcars, statistic=bs, R=1000)
bt
ORDINARY NONPARAMETRIC BOOTSTRAP
Call:
boot(data = mtcars, statistic = bs, R = 1000)
Bootstrap Statistics :
original bias std. error
t1* 30.290370 0.54284222 7.494441
t2* 1.442491 -0.07260619 1.393801
t3* -4.782890 -0.09804271 1.000838
我不确定您是否可以从lm
模型中引导p-values
(但提供了解决方案)。在bs
或bs\u r
功能中,您可以删除fit
右侧的d$
,因为您已经定义了数据d。以下是使用mtcars数据的示例:
library(boot)
bs <- function(mtcars, i) {
d <- mtcars[i,]
fit <- lm (mpg~drat+wt, data=d)
return(coef(fit))
}
bt <- boot(data=mtcars, statistic=bs, R=1000)
bt
ORDINARY NONPARAMETRIC BOOTSTRAP
Call:
boot(data = mtcars, statistic = bs, R = 1000)
Bootstrap Statistics :
original bias std. error
t1* 30.290370 0.54284222 7.494441
t2* 1.442491 -0.07260619 1.393801
t3* -4.782890 -0.09804271 1.000838
非常感谢。我编辑了上面的问题,因为我逐渐意识到这个错误可能与我在交互项中包含的因子变量有关。我现在正致力于可靠地重新创建这个问题——有时boot似乎会被factor变量阻塞,有时则不会。我接受你有益的回答。语法,并且如果我能够可靠地重新创建一个与因子相关的问题,将打开一个新问题。再次感谢你,我不这么认为。当我将saywt
替换为as.factor(cyl)
时,代码仍然有效。当您决定使用sample
发布下一个问题时,请使用set.seed
以获得再现性。谢谢!我编辑了上面的问题,因为我逐渐意识到这个错误可能与我在交互项中包含的因子变量有关。我现在正致力于可靠地重新创建这个问题——有时boot似乎会被factor变量阻塞,有时则不会。我接受你有益的回答。语法,并且如果我能够可靠地重新创建一个与因子相关的问题,将打开一个新问题。再次感谢你,我不这么认为。当我将saywt
替换为as.factor(cyl)
时,代码仍然有效。当您决定使用sample
发布下一个问题时,请使用set.seed
以获得再现性。