covariance_etc: Covariance and Standard Deviation MLE

Description Usage Arguments Details Value Author(s) See Also Examples

Description

Calcuate the maximum likelihood estimators of covariance and standard deviation.

Usage

1
2

Arguments

x

a numeric vector, matrix, or data frame.

mean

the mean, or vector of means, with respect to which covariance should be calculated.

simplify

logical; if TRUE, the return value will be reduced to the simplest possible form, for example, a single-element matrix will be reduced to a scalar.

Details

The standard R functions cov, var, and sd return unbiased estimators of (co)variance and standard deviation, which are not equal to the maximum likelihood estimator (MLE). The functions given here return MLEs instead. For example, if x is a vector consisting of elements x_1, …, x_N with mean mu, then the MLE of the variance is

sigmasq.hat = (1/N) sum_n (x_n - mu)^2

while the unbiased estimator is

sigmasq.hat = {1/(N-1)} sum_n (x_n - mu)^2.

mleVar is an alias for mleCov.

Value

For mleCov, the estimated variance if x is a vector, or the esitmated covariance matrix of the columns of x if x is a matrix or data frame. If simplify is FALSE, then a matrix will always be returned even if x is a vector.

For mleSd, the estimated standard deviation if x is a vector, or the vector of estimated column standard deviations if x is a matrix or a data frame.

Author(s)

Daniel Dvorkin

See Also

thetahat.norm, thetahat.mvnorm for weighted parameter estimation; cov, var, sd in package stats.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
set.seed(123)

x <- rnorm(10)
mleCov(x)
# [1] 0.8187336
var(x)
# [1] 0.909704
mleSd(x)
# [1] 0.904839
sd(x)
# [1] 0.953784

x <- matrix(rnorm(30), ncol=3)
mleCov(x)
#            [,1]       [,2]       [,3]
# [1,]  0.9698367 -0.4933797  0.1336627
# [2,] -0.4933797  0.7797652 -0.1931557
# [3,]  0.1336627 -0.1931557  0.2502430
cov(x)
#            [,1]       [,2]       [,3]
# [1,]  1.0775964 -0.5481997  0.1485141
# [2,] -0.5481997  0.8664058 -0.2146175
# [3,]  0.1485141 -0.2146175  0.2780478
mleSd(x)
# [1] 0.9848029 0.8830432 0.5002430
apply(x, 2, sd) # sd(x) is deprecated
# [1] 1.0380734 0.9308092 0.5273024


Search within the lcmix package
Search all R packages, documentation and source code

Questions? Problems? Suggestions? or email at ian@mutexlabs.com.

Please suggest features or report bugs with the GitHub issue tracker.

All documentation is copyright its authors; we didn't write any of that.