如何 运行 对几个随机数据子集进行回归
How to run regression for several random subsets of data
我有一个大数据集,我想从中随机选择子集 (randomly_live),然后 运行 R 中的模型(逻辑回归)。所以我想 运行 100 个逻辑回归来计算系数有多少次为正号,有多少次它们是显着的,并根据 Hosmer-Lemeshow 标准显示最佳模型。
我认为可以通过循环实现,但我对此感到很困惑。
这是我有一次迭代的一段代码
randomRows = function(df,n){
return(df[sample(nrow(df),n),])
}
set.seed(567)
df.split <- split(full_data, full_data$ID)
df.sample <- lapply(df.split, randomRows, 1)
df.final <- do.call("rbind", df.sample)
randomly_live <- randomRows(df.final, nrow(default))
data1 <- rbind(default, randomly_live)
model = glm(default ~ log(assets)+…+H1, data = data1,
family = 'binomial')
library(ResourceSelection)
hl <- hoslem.test(model$y, fitted(model), g=10)
有人可以帮忙吗?
这里有一些有用的东西
myResults <- list()
for(i in 1:100){
model <- glm(vs ~ . , data = mtcars)
hl <- hoslem.test(model$y, fitted(model), g=10)
pos <- length(which(coef(model)>0))
pvals <- summary(model)$coefficients[,4]
hl_pval <- hl$p.value
myResults[[i]] <- list(pos = pos, pvals = pvals,hl_pval=hl_pval)
}
# lowest pvalue
which.min(unlist(lapply(myResults, FUN = function(x) x[[3]])))
我有一个大数据集,我想从中随机选择子集 (randomly_live),然后 运行 R 中的模型(逻辑回归)。所以我想 运行 100 个逻辑回归来计算系数有多少次为正号,有多少次它们是显着的,并根据 Hosmer-Lemeshow 标准显示最佳模型。
我认为可以通过循环实现,但我对此感到很困惑。
这是我有一次迭代的一段代码
randomRows = function(df,n){
return(df[sample(nrow(df),n),])
}
set.seed(567)
df.split <- split(full_data, full_data$ID)
df.sample <- lapply(df.split, randomRows, 1)
df.final <- do.call("rbind", df.sample)
randomly_live <- randomRows(df.final, nrow(default))
data1 <- rbind(default, randomly_live)
model = glm(default ~ log(assets)+…+H1, data = data1,
family = 'binomial')
library(ResourceSelection)
hl <- hoslem.test(model$y, fitted(model), g=10)
有人可以帮忙吗?
这里有一些有用的东西
myResults <- list()
for(i in 1:100){
model <- glm(vs ~ . , data = mtcars)
hl <- hoslem.test(model$y, fitted(model), g=10)
pos <- length(which(coef(model)>0))
pvals <- summary(model)$coefficients[,4]
hl_pval <- hl$p.value
myResults[[i]] <- list(pos = pos, pvals = pvals,hl_pval=hl_pval)
}
# lowest pvalue
which.min(unlist(lapply(myResults, FUN = function(x) x[[3]])))