Simple question really! I am running lots of linear regressions of y~x
and want to obtain the variance for each regression without computing it from hand from the Standard Error output given in the summary.lm
command. Just to save a bit of time :-). Any ideas of the command to do this? Or will I have to write a function to do it myself?
m<-lm(Alopecurus.geniculatus~Year)
> summary(m)
Call:
lm(formula = Alopecurus.geniculatus ~ Year)
Residuals:
Min 1Q Median 3Q Max
-19.374 -8.667 -2.094 9.601 21.832
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 700.3921 302.2936 2.317 0.0275 *
Year -0.2757 0.1530 -1.802 0.0817 .
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 11.45 on 30 degrees of freedom
(15 observations deleted due to missingness)
Multiple R-squared: 0.09762, Adjusted R-squared: 0.06754
F-statistic: 3.246 on 1 and 30 DF, p-value: 0.08168
So I get a Standard Error output and I was hoping to get a Variance output without calculating it by hand...
To calculate the variance in R, use the var() function. The var() is a built-in function that computes the sample variance of a vector. It is the measure of how much value is away from the mean value.
Count the number of observations that were used to generate the standard error of the mean. This number is the sample size. Multiply the square of the standard error (calculated previously) by the sample size (calculated previously). The result is the variance of the sample.
Residual Standard Error Standard deviation is the square root of variance. Standard Error is very similar. The only difference is that instead of dividing by n-1, you subtract n minus 1 + # of variables involved.
I'm not sure what you want the variance of.
If you want the residual variance, it's: (summary(m)$sigma)**2
.
If you want the variance of your slope, it's: (summary(m)$coefficients[2,2])**2
, or vcov(m)[2,2]
.
vcov(m)
gives the covariance matrix of the coefficients – variances on the diagonal.
if you're referring to the standard errors for the coefficient estimates, the answer is
summary(m)$coef[,2]
and if you're referring to the estimated residual variance, it's
summary(m)$sigma
Type names( summary(m) )
and names(m)
for other information you can access.
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