运行 bootstrap on Total Least Squares Regression coefficient

Running bootstrap on Total Least Squares Regression coefficent

我 运行 具有多个预测变量的总最小二乘回归,但我的代码没有产生任何 p 值等。为了我的论文的目的,我需要评估系数的显着性希望通过引导获得百分位置信区间,但我不确定如何从这里开始。

我试过命令 boot(data, statistic, R),但我不确定要为数据输入什么。我拥有的功能是在 pracma 中使用 odregress 命令进行回归。我只是简单地将我的 DV 的一个向量和一个矩阵与我的命令的 IV 值隔离开来。

X <- data.matrix(avgsubset1) # matrix of all preditors (IV)


Y <- as.vector(v$avgdatadelay.beh1)  #vector of DV


TLS <- odregress(X,Y); TLS


getRegr <- function(X, Y) {
bsFit <- odregress(X,Y)
as.numeric(coef(bsFit))
}


nR <- 1000
(bsRegr <- boot(data = ???, statistic=getRegr, R=nR))

boot.ci(bsRegr, conf=0.95, type="bca")$bca

boot的调用不正确,启动统计功能也不正确。

library(pracma)
library(boot)

getRegr <- function(data, indices, DV = "avgdatadelay.beh1") {
  d <- data[indices, ]
  i_dv <- match(DV, names(d))
  X <- data.matrix(d[-i_dv])
  Y <- d[[i_dv]]
  bsFit <- odregress(X, Y)
  bsFit[["coeff"]]
}

set.seed(1234)

b <- boot(v, getRegr, R = 1000, DV = "avgdatadelay.beh1")

bad <- apply(b$t, 2, function(x) {
  which(is.infinite(x) | is.na(x) | is.nan(x))
})
i <- apply(bad, 1, unique)

b$t0
#[1]  9.1914957 -8.3566747 -0.2006832

if(NROW(bad)) {
  i <- apply(bad, 1, unique)
  colMeans(b$t[-i, ])
}else colMeans(b$t)
#[1] -2.700675e+13  2.384763e+13  1.489417e+12

数据.

数据在帮助页面的第一个示例中?pracma::odregress

set.seed(2019)

x <- c(1.0, 0.6, 1.2, 1.4, 0.2)
y <- c(0.5, 0.3, 0.7, 1.0, 0.2)

v <- data.frame(avgdatadelay.beh1 = y, 
                x1 = x, 
                x2 = jitter(x))