R Pull Out Significance Levels from Linear Regression Model (Example Code)

In this R tutorial you’ll learn how to create a named vector containing significance stars of all linear regression predictors.

Example Data

data(iris)                                        # Loading iris flower data set
head(iris)                                        # Head of iris flower data set
#   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
# 1          5.1         3.5          1.4         0.2  setosa
# 2          4.9         3.0          1.4         0.2  setosa
# 3          4.7         3.2          1.3         0.2  setosa
# 4          4.6         3.1          1.5         0.2  setosa
# 5          5.0         3.6          1.4         0.2  setosa
# 6          5.4         3.9          1.7         0.4  setosa

Estimating the Regression Model

iris_smry <- summary(lm(Sepal.Length ~ ., iris))  # Summary of linear model
iris_smry                                         # Print summary to RStudio console
# Call:
# lm(formula = Sepal.Length ~ ., data = iris)
# 
# Residuals:
#      Min       1Q   Median       3Q      Max 
# -0.79424 -0.21874  0.00899  0.20255  0.73103 
# 
# Coefficients:
# Estimate Std. Error t value Pr(>|t|)    
# (Intercept)        2.17127    0.27979   7.760 1.43e-12 ***
# Sepal.Width        0.49589    0.08607   5.761 4.87e-08 ***
# Petal.Length       0.82924    0.06853  12.101  < 2e-16 ***
# Petal.Width       -0.31516    0.15120  -2.084  0.03889 *  
# Speciesversicolor -0.72356    0.24017  -3.013  0.00306 ** 
# Speciesvirginica  -1.02350    0.33373  -3.067  0.00258 ** 
#   ---
#   Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# 
# Residual standard error: 0.3068 on 144 degrees of freedom
# Multiple R-squared:  0.8673,	Adjusted R-squared:  0.8627 
# F-statistic: 188.3 on 5 and 144 DF,  p-value: < 2.2e-16

Example: Pulling Out Significance Levels of Linear Regression Model

vec_pvalues <- iris_smry$coefficients[ , 4]       # Identify p-values
vec_stars <- NA                                   # Creating significance stars vector
vec_stars[vec_pvalues < 0.1] <- "."
vec_stars[vec_pvalues < 0.05] <- "*"
vec_stars[vec_pvalues < 0.01] <- "**"
vec_stars[vec_pvalues < 0.001] <- "***"
vec_stars[is.na(vec_stars)] <- ""
names(vec_stars) <- names(vec_pvalues)            # Assign names to vector
vec_stars                                         # Return significance vector
# (Intercept)       Sepal.Width      Petal.Length       Petal.Width Speciesversicolor  Speciesvirginica 
#       "***"             "***"             "***"               "*"              "**"              "**"

Leave a Reply

Your email address will not be published. Required fields are marked *

Fill out this field
Fill out this field
Please enter a valid email address.
You need to agree with the terms to proceed

Menu
Top