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 |
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 |
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 # "***" "***" "***" "*" "**" "**" |
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 # "***" "***" "***" "*" "**" "**"