You can use the following methods to extract regression coefficients from the glm() function in R:
Method 1: Extract All Regression Coefficients
model$coefficients
Method 2: Extract Regression Coefficient for Specific Variable
model$coefficients['my_variable']
Method 3: Extract All Regression Coefficients with Standard Error, Z Value & P-Value
summary(model)$coefficients
The following example shows how to use these methods in practice.
Example: Extract Regression Coefficients from glm() in R
Suppose we fit a logistic regression model using the Default dataset from the ISLR package:
#load dataset data <- ISLR::Default #view first six rows of data head(data) default student balance income 1 No No 729.5265 44361.625 2 No Yes 817.1804 12106.135 3 No No 1073.5492 31767.139 4 No No 529.2506 35704.494 5 No No 785.6559 38463.496 6 No Yes 919.5885 7491.559 #fit logistic regression model model <- glm(default~student+balance+income, family='binomial', data=data) #view summary of logistic regression model summary(model) Call: glm(formula = default ~ student + balance + income, family = "binomial", data = data) Deviance Residuals: Min 1Q Median 3Q Max -2.4691 -0.1418 -0.0557 -0.0203 3.7383 Coefficients: Estimate Std. Error z value Pr(>|z|) (Intercept) -1.087e+01 4.923e-01 -22.080 < 2e-16 *** studentYes -6.468e-01 2.363e-01 -2.738 0.00619 ** balance 5.737e-03 2.319e-04 24.738 < 2e-16 *** income 3.033e-06 8.203e-06 0.370 0.71152 --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 (Dispersion parameter for binomial family taken to be 1) Null deviance: 2920.6 on 9999 degrees of freedom Residual deviance: 1571.5 on 9996 degrees of freedom AIC: 1579.5 Number of Fisher Scoring iterations: 8
We can type model$coefficients to extract all of the regression coefficients in the model:
#extract all regression coefficients
model$coefficients
(Intercept) studentYes balance income
-1.086905e+01 -6.467758e-01 5.736505e-03 3.033450e-06
We can also type model$coefficients[‘balance’] to extract the regression coefficient for the balance variable only:
#extract coefficient for 'balance'
model$coefficients['balance']
balance
0.005736505
To view the regression coefficients along with their standard errors, z values and p-values, we can use summary(model)$coefficients as follows:
#view regression coefficients with standard errors, z values and p-values
summary(model)$coefficients
Estimate Std. Error z value Pr(>|z|)
(Intercept) -1.086905e+01 4.922555e-01 -22.080088 4.911280e-108
studentYes -6.467758e-01 2.362525e-01 -2.737646 6.188063e-03
balance 5.736505e-03 2.318945e-04 24.737563 4.219578e-135
income 3.033450e-06 8.202615e-06 0.369815 7.115203e-01
We can also access specific values in this output.
For example, we can use the following code to access the p-value for the balance variable:
#view p-value for balance variable summary(model)$coefficients['balance', 'Pr(>|z|)'] [1] 4.219578e-135
Or we could use the following code to access the p-value for each of the regression coefficients:
#view p-value for all variables summary(model)$coefficients[, 'Pr(>|z|)'] (Intercept) studentYes balance income 4.911280e-108 6.188063e-03 4.219578e-135 7.115203e-01
The p-values are shown for each regression coefficient in the model.
You can use similar syntax to access any of the values in the output.
Additional Resources
The following tutorials explain how to perform other common tasks in R:
How to Perform Simple Linear Regression in R
How to Perform Multiple Linear Regression in R
How to Perform Logistic Regression in R
How to Perform Quadratic Regression in R