📜  如何从 lm 中的 r 中提取 p 值 (1)

📅  最后修改于: 2023-12-03 15:08:14.341000             🧑  作者: Mango

如何从 lm 中的 r 中提取 p 值

在统计学中,线性模型(lm)是非常常用的模型之一。lm 模型可以给出一个自变量和一个因变量之间的线性关系。当我们拟合一个 lm 模型时,除了关注模型的系数估计之外,还必须关注 p 值,以确定模型是否具有统计显著性。

在 R 语言中,我们通常使用 summary() 函数来回顾 lm 模型的摘要信息。 在此摘要信息中,我们可以找到模型中每个系数的估计值、标准误差、置信区间以及 p 值等。本文将介绍如何使用 R 语言中的 summary() 函数和相关包提取 lm 中的 p 值。

提取 lm 中的 p 值

在 R 语言中,我们可以使用 summary() 函数来提取 lm 模型中的 p 值,如下所示:

# generate data
set.seed(1234)
x <- rnorm(100)
y <- 1 + 2 * x + rnorm(100)

# fit lm model
model <- lm(y ~ x)

# extract p value from summary
p_val <- summary(model)$coefficients[, "Pr(>|t|)"]

# print p value
print(p_val)

在上面的代码中,我们首先生成了一个含有自变量 x 和因变量 y 的数据集。然后,我们拟合了一个线性模型(lm)并提取了一个 p 值列表。如果要提取单个变量的 p 值,则可以使用下列代码:

# extract single variable's p value from summary
p_val <- summary(model)$coefficients["x", "Pr(>|t|)"]

# print p value
print(p_val)
使用broom包提取p值

在 R 语言中,还有一个开源包叫做 broom,它提供了许多实用的函数,方便从模型摘要中提取相关信息。在 broom 包中,我们可以使用 tidy() 函数来提取 lm 模型中的 p 值,如下所示:

# install.packages("broom")
library(broom)

# tidy summary and extract p value
res <- tidy(model, conf.int = TRUE)
p_val <- res[, "p.value"]

# print p value
print(p_val)

在上面的代码中,我们首先安装并导入了 broom 包。然后,我们使用 tidy() 函数来将模型摘要转换为一个数据框,并提取每个变量的 p 值。如果需要提取单个变量的 p 值,则可以使用下列代码:

# extract single variable's p value from summary
res <- tidy(model, conf.int = TRUE)
p_val <- res[res$term=="x", "p.value"]

# print p value
print(p_val)
总结

在本文中,我们学会了如何使用 R 语言中的 summary() 函数和 broom 包提取 lm 模型中的 p 值。我们展示了如何批量和单个提取变量的 p 值,并提供了完整的 R 代码。在实际应用中,我们应该灵活运用这些技巧,并结合相应领域的问题进行分析。