Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
boot()在替换时生成错误-R_R_Replace_P Value_Statistics Bootstrap - Fatal编程技术网

boot()在替换时生成错误-R

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

我已经编写了两个函数,用于从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]
    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变量阻塞,有时则不会。我接受你有益的回答。语法,并且如果我能够可靠地重新创建一个与因子相关的问题,将打开一个新问题。再次感谢你,我不这么认为。当我将say
wt
替换为
as.factor(cyl)
时,代码仍然有效。当您决定使用
sample
发布下一个问题时,请使用
set.seed
以获得再现性。谢谢!我编辑了上面的问题,因为我逐渐意识到这个错误可能与我在交互项中包含的因子变量有关。我现在正致力于可靠地重新创建这个问题——有时boot似乎会被factor变量阻塞,有时则不会。我接受你有益的回答。语法,并且如果我能够可靠地重新创建一个与因子相关的问题,将打开一个新问题。再次感谢你,我不这么认为。当我将say
wt
替换为
as.factor(cyl)
时,代码仍然有效。当您决定使用
sample
发布下一个问题时,请使用
set.seed
以获得再现性。