I am performing multiple regressions on different columns in a query file. I've been tasked with extracting certain results from the regression function lm in R.
So far I have,
> reg <- lm(query$y1 ~ query$x1 + query$x2)
> summary(reg)
Call:
lm(formula = query$y1 ~ query$x1 + query$x2)
Residuals:
1 2 3 4
7.68 -4.48 -7.04 3.84
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1287.26 685.75 1.877 0.312
query$x1 -29.30 20.92 -1.400 0.395
query$x2 -116.90 45.79 -2.553 0.238
Residual standard error: 11.97 on 1 degrees of freedom
Multiple R-squared: 0.9233, Adjusted R-squared: 0.7699
F-statistic: 6.019 on 2 and 1 DF, p-value: 0.277
To extract the coefficients, r-squared and F statistics I use the following:
reg$coefficients
summary(reg)$r.squared
summary(reg)$fstatistic
I would like to also extract the p-value of 0.277.
Is there a piece of code that could do this?
Thanks
The coefficient t-value is a measure of how many standard deviations our coefficient estimate is far away from 0. We want it to be far away from zero as this would indicate we could reject the null hypothesis - that is, we could declare a relationship between speed and distance exist.
For simple regression, the p-value is determined using a t distribution with n − 2 degrees of freedom (df), which is written as t n − 2 , and is calculated as 2 × area past |t| under a t n − 2 curve. In this example, df = 30 − 2 = 28.
The P-value is a statistical number to conclude if there is a relationship between Average_Pulse and Calorie_Burnage. We test if the true value of the coefficient is equal to zero (no relationship).
The P-Value as you know provides probability of the hypothesis test,So in a regression model the P-Value for each independent variable tests the Null Hypothesis that there is “No Correlation” between the independent and the dependent variable,this also helps to determine the relationship observed in the sample also ...
I would recommend using the "broom" package as a good practice to go forward with those cases (where you might need to create a data frame from a model fit output).
Check this as a simple example:
library(broom)
dt = data.frame(mtcars) # example dataset
model = lm(mpg ~ disp + wt, data = dt) # fit a model
summary(model) # usual summary of a model fit
tidy(model) # get coefficient table as a data frame
glance(model) # get rest of stats as a data frame
glance(model)$p.value # get p value
The two easiest ways I've found for extracting the p-value are:
summary(Model)$coefficients[,"Pr(>|t|)"][2]
summary(Model)$coefficients[2,4]
Just replace "Model" with the name of your model
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With