cov.wt                 package:stats                 R Documentation

Weighted Covariance Matrices

Description:

     Returns a list containing estimates of the weighted covariance
     matrix and the mean of the data, and optionally of the (weighted)
     correlation matrix.

Usage:

     cov.wt(x, wt = rep(1/nrow(x), nrow(x)), cor = FALSE, center = TRUE,
            method = c("unbiased", "ML"))

Arguments:

       x: a matrix or data frame.  As usual, rows are observations and
          columns are variables.

      wt: a non-negative and non-zero vector of weights for each
          observation.  Its length must equal the number of rows of
          'x'.

     cor: a logical indicating whether the estimated correlation
          weighted matrix will be returned as well.

  center: either a logical or a numeric vector specifying the centers
          to be used when computing covariances.  If 'TRUE', the
          (weighted) mean of each variable is used, if 'FALSE', zero is
          used.  If 'center' is numeric, its length must equal the
          number of columns of 'x'.

  method: string specifying how the result is scaled, see 'Details'
          below.

Details:

     By default, 'method = "unbiased"', The covariance matrix is
     divided by one minus the sum of squares of the weights, so if the
     weights are the default (1/n) the conventional unbiased estimate
     of the covariance matrix with divisor (n - 1) is obtained.  This
     differs from the behaviour in S-PLUS which corresponds to 'method
     = "ML"' and does not divide.

Value:

     A list containing the following named components: 

     cov: the estimated (weighted) covariance matrix

  center: an estimate for the center (mean) of the data.

   n.obs: the number of observations (rows) in 'x'.

      wt: the weights used in the estimation.  Only returned if given
          as an argument.

     cor: the estimated correlation matrix.  Only returned if 'cor' is
          'TRUE'.

See Also:

     'cov' and 'var'.

Examples:

      (xy <- cbind(x = 1:10, y = c(1:3, 8:5, 8:10)))
      w1 <- c(0,0,0,1,1,1,1,1,0,0)
      cov.wt(xy, wt = w1) # i.e. method = "unbiased"
      cov.wt(xy, wt = w1, method = "ML", cor = TRUE)

