[R] regression parms var-cov matrix

Martin Maechler maechler at stat.math.ethz.ch
Thu Apr 24 11:23:20 CEST 2003

>>>>> "DavidP" == Paul, David A <paulda at BATTELLE.ORG>
>>>>>     on Wed, 23 Apr 2003 18:51:39 -0400 writes:

    DavidP> Win2k, R1.6.2.
    DavidP> I've been using Splus 6.1 and wanted to try the same 
    DavidP> regression analysis in R.  Using "names( blah.lm )" 
    DavidP> in R yields

    DavidP> [1] "coefficients"  "residuals"     "effects"     "rank"          
    DavidP> [5] "fitted.values" "assign"        "qr"          "df.residual"   
    DavidP> [9] "xlevels"       "call"          "terms"       "model"

    DavidP> In Splus, the same command yields

    DavidP> [1] "coefficients"  "residuals"     "fitted.values" "effects"      
    DavidP> [5] "R"             "rank"          "assign"        "df.residual"  
    DavidP> [9] "contrasts"     "terms"         "call"

    DavidP> and blah.lm$R gives the variance-covariance matrix of the 
    DavidP> model parameters.  How do get the variance-covariance matrix out 
    DavidP> of R?  Apologies for such a simple question.

The most recommended way is to use the generic function  vcov()
which has methods for many classes, included "lm".

A bit more low level, but still reliable approach is to do what
vcov.lm does:
    vcov.lm <- function (object, ...) 
	so <- summary.lm(object, corr = FALSE)
	so$sigma^2 * so$cov.unscaled

A much more low level (non-recommended) way would be to look at
<your lm object> $ qr  etc and replicate what summary.lm() is doing
for its $sigma and $cov.unscaled computations.

    DavidP> Much thanks in advance,

you're welcome!
Martin Maechler ETH Zurich

More information about the R-help mailing list