📜  r 删除输出中的无关紧要的系数 - R 编程语言(1)

📅  最后修改于: 2023-12-03 14:46:52.386000             🧑  作者: Mango

以'r 删除输出中的无关紧要的系数 - R 编程语言

在统计学中,常常需要对数据进行回归分析来探究影响因素之间的关系。在进行回归分析后,通常会输出一些统计信息,但有时候输出的统计信息会包含大量的无关紧要的系数,导致显示不够清晰。本文将介绍如何使用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包来提取并筛选系数,这种方式更加灵活,可根据需求选择输出系数。不论用哪种方法,删除输出中的无关紧要系数,都可以使统计信息更加清晰,帮助我们更好地理解统计模型。