# [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