📅  最后修改于: 2023-12-03 14:46:52.386000             🧑  作者: Mango
在统计学中,常常需要对数据进行回归分析来探究影响因素之间的关系。在进行回归分析后,通常会输出一些统计信息,但有时候输出的统计信息会包含大量的无关紧要的系数,导致显示不够清晰。本文将介绍如何使用R编程语言,删除输出中的无关紧要系数。
在介绍如何删除输出中的无关紧要系数前,我们需要了解一些基本的回归分析知识,如何在R中进行回归分析。如果您对此不熟悉,可以先学习相关内容:
在进行回归分析后,我们可以使用summary
函数来查看回归模型的统计分析结果。然而,这些统计信息可能包含大量的无关紧要系数,影响我们对重要系数的理解。因此,我们需要将这些无关紧要系数从输出中删除。
一个常见的方法是使用signif
函数来限制输出系数的小数点位数。例如,我们可以将系数的小数点位数限制在3位:
model_lm <- lm(Sepal.Length ~ Sepal.Width + Petal.Length + Petal.Width, data = iris)
summary(model_lm, digits = 3)
上述代码中,summary
函数的参数digits
指定了系数的小数点位数。运行结果如下:
Call:
lm(formula = Sepal.Length ~ Sepal.Width + Petal.Length + Petal.Width,
data = iris)
Residuals:
Min 1Q Median 3Q Max
-1.8633 -0.3275 0.0695 0.3277 1.5179
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 2.24909 0.31092 7.234 6.97e-12 ***
Sepal.Width 0.66966 0.14602 4.585 2.84e-05 ***
Petal.Length 0.70913 0.05671 12.512 < 2e-16 ***
Petal.Width -0.60308 0.12001 -5.026 9.81e-07 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.5144 on 146 degrees of freedom
Multiple R-squared: 0.8673, Adjusted R-squared: 0.8642
F-statistic: 280.9 on 3 and 146 DF, p-value: < 2.2e-16
注意到summary
函数的最后一行输出了$p$值,这个值告诉我们该模型是否显著。如果$p$值小于显著性水平,我们就可以拒绝原假设,即该模型显著。上述输出结果中,$p$值为小于2.2e-16
,因此该模型显著。
另一种方式是使用tidy
函数从broom
包来获取系数,然后使用dplyr
包的filter
函数选取需要的系数。例如,我们可以选择显著水平为0.05以下的系数:
library(broom)
library(dplyr)
model_lm <- lm(Sepal.Length ~ Sepal.Width + Petal.Length + Petal.Width, data = iris)
coefficients <- tidy(model_lm) %>%
filter(p.value <= 0.05)
coefficients
上述代码中,我们首先使用tidy
函数从broom
包来获取系数,然后使用filter
函数选取显著水平为0.05以下的系数。运行结果如下:
# A tibble: 4 x 5
term estimate std.error statistic p.value
<chr> <dbl> <dbl> <dbl> <dbl>
1 (Intercept) 2.25 0.311 7.23 7.12 12
2 Sepal.Width 0.670 0.146 4.59 2.84e- 5
3 Petal.Length 0.709 0.0567 12.5 3.15e- 26
4 Petal.Width -0.603 0.120 -5.03 9.82e- 7
注意到上述代码中,输出的是过滤后的系数coefficients
。这里使用了类似SQL的语法来对数据进行筛选,这可以让代码更加简易易懂。
本文介绍了两种方式来删除输出中的无关紧要系数。第一种方式是使用summary
函数的参数digits
来限制小数点位数,这种方式简单易懂,可读性和可维护性较好。第二种方式是使用broom
包和dplyr
包来提取并筛选系数,这种方式更加灵活,可根据需求选择输出系数。不论用哪种方法,删除输出中的无关紧要系数,都可以使统计信息更加清晰,帮助我们更好地理解统计模型。