[R] formula used by R to compute the t-values in a linear regression

S Ellison S.Ellison at LGCGroup.com
Mon Aug 1 16:15:50 CEST 2011


 

> -----Original Message-----
> [mailto:r-help-bounces at r-project.org] On Behalf Of Samuel Le
> Subject: [R] formula used by R to compute the t-values in a 
> linear regression
> I was wondering if someone knows the formula used by the 
> function lm to compute the t-values.

Typing 
summary.lm

I found the standard error and t calculation (for around line 58-62 of the resulting listing. 
    resvar <- rss/rdf
    R <- chol2inv(Qr$qr[p1, p1, drop = FALSE])
    se <- sqrt(diag(R) * resvar)
    est <- z$coefficients[Qr$pivot[p1]]
    tval <- est/se

You can also find (rather further up) that the degrees of freedom df used are taken directly from the linear model $df (z$df in the function). Others noted that incorrect df often cause problems, so checking that you're using the correct df is possible by inspecting the lm summary.

The standard errors are apparently (as is usual for a least squares problem, I think) taken from the diagonal of  the inverse of the hessian, multiplied by the residual variance. Unfortunately I could not get at the hessian calculation quite as easily (it looks like it uses a function that's not exported from stats) so that's left as an exercise in browsing source code ... 

S Ellison


*******************************************************************
This email and any attachments are confidential. Any use...{{dropped:8}}



More information about the R-help mailing list