首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在将多个输入数据集上的多项式模型的结果合并后,将q值(调整后的p值)添加到模型汇总表

如何在将多个输入数据集上的多项式模型的结果合并后,将q值(调整后的p值)添加到模型汇总表
EN

Stack Overflow用户
提问于 2021-08-04 09:06:23
回答 1查看 52关注 0票数 1

我使用modelsummary来显示几个多项式模型的结果,每个模型使用mice::pool function汇集了5个以上的数据集。它工作得很好,但我想添加q-value /调整后的p-value来表示错误发现率。

我知道我需要创建一个tidy_custom.mipo函数来添加这个统计数据,但是我不能让它工作。

下面是获取mipo对象的“pool_univariate”列表的代码,然后我将其传递给modelsummary。它工作得很好,我只想添加Q值统计。

你知道怎么做吗?

非常感谢!

代码语言:javascript
复制
# list of exposures 
exposures <- c(
    Cs(exposure1,exposure2,exposure3)

## model function
models <- function(x) {
    lapply(imputed_data, function(y)
        multinom(as.formula(
            paste0(
                "outcome ~ ",
                x
            )
        ), data = y, model = TRUE)
    )
}

## run models
models_univariate <- as.list(seq(1,length(exposures))) 
models_univariate <- pblapply(exposures, models)

## pool 

pool_univariate <- as.list(seq(1,length(exposures))) 

# run pool
for(j in seq_along(exposures)) {
    pool_univariate[[j]] <- pool(models_univariate[[j]])
}
EN

回答 1

Stack Overflow用户

发布于 2021-08-10 00:15:13

如果没有一个最小的工作示例,很难回答这个问题。在这里,对于线性回归上下文,我给出一个比原始示例更简单的示例。

首先,加载程序包并估计回归模型:

代码语言:javascript
复制
library(modelsummary)
mod <- lm(mpg ~ hp + drat + vs + am, data = mtcars)

其次,因为我们想总结一个类lm的模型,所以我们定义了一个名为tidy_custom.lm的新方法。此函数接受统计模型作为输入,并返回符合broom package specification的数据框,其中一列称为term,其他列包含匹配的统计数据。在当前示例中,数据帧将包括三个新的统计数据(q.valuebonferroniholm)。这些值是使用Rp.adjust函数计算的,该函数调整p值以进行多次比较:

代码语言:javascript
复制
tidy_custom.lm <- function(x, ...) {
  out <- broom::tidy(x)
  out$q.value <- p.adjust(out$p.value, n = 10, method = "fdr")
  out$bonferroni <- p.adjust(out$p.value, n = 10, method = "bonferroni")
  out$holm <- p.adjust(out$p.value, n = 10, method = "holm")
  return(out)
}

现在,我们可以使用我们的lm模型调用modelsummary,并请求统计数据:

代码语言:javascript
复制
modelsummary(mod, statistic = "q.value")

我们还可以比较不同的p值和label them nicely using glue strings

代码语言:javascript
复制
modelsummary(mod,
  statistic = c(
    "p = {p.value}",
    "q = {q.value}",
    "p (Bonferroni) = {bonferroni}",
    "p (Holm) = {holm}"
  )
)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68648459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档