【问题标题】:How to run regression for several random subsets of data如何对几个随机数据子集进行回归
【发布时间】:2019-03-02 21:15:01
【问题描述】:

我有一个大数据集,我想从中随机选择子集(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)

有人可以帮忙吗?

【问题讨论】:

  • 嗨奥尔加,欢迎来到 StackOverflow。如果没有任何数据或明确的可重现问题需要解决,我们将很难提供帮助。

标签: r loops model logistic-regression glm


【解决方案1】:

这是可行的方法

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]])))

【讨论】:

    猜你喜欢
    • 2017-12-17
    • 1970-01-01
    • 2022-08-19
    • 2019-09-02
    • 2019-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多