Learn R Programming

stats (version 3.6.2)

cov.wt: 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. Can be abbreviated.

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.

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.

See Also

cov and var.

Examples

Run this code
# NOT RUN {
 (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)
# }

Run the code above in your browser using DataLab