运行 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))
我 运行 具有多个预测变量的总最小二乘回归,但我的代码没有产生任何 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))