centroids {sda} | R Documentation |
Group Centroids and (Pooled) Variances
Description
centroids
computes group centroids, the pooled mean
and pooled variance, and optionally the group specific variances.
Usage
centroids(x, L, lambda.var, lambda.freqs, var.groups=FALSE,
centered.data=FALSE, verbose=TRUE)
Arguments
x |
A matrix containing the data set. Note that the rows are sample observations and the columns are variables. |
L |
A factor with the group labels. |
lambda.var |
Shrinkage intensity for the variances. If not specified it is
estimated from the data, see details below. |
lambda.freqs |
Shrinkage intensity for the frequencies. If not specified it is
estimated from the data. |
var.groups |
Estimate group-specific variances. |
centered.data |
Return column-centered data matrix. |
verbose |
Provide some messages while computing. |
Details
As estimator of the variance we employ
var.shrink
as described in Opgen-Rhein and Strimmer (2007).
For the estimates of frequencies we rely on
freqs.shrink
as described in Hausser and Strimmer (2009).
Note that the pooled mean is computed using the estimated frequencies.
Value
centroids
returns a list
with the following components:
samples |
a vector containing the samples sizes in each group, |
freqs |
a vector containing the estimated frequency in each group, |
means |
the group means and the pooled mean, |
variances |
the group-specific and the pooled variances, and |
centered.data |
a matrix containing the centered data. |
Author(s)
Korbinian Strimmer (https://strimmerlab.github.io).
See Also
Examples
# load sda library
library("sda")
## prepare data set
data(iris) # good old iris data
X = as.matrix(iris[,1:4])
Y = iris[,5]
## estimate centroids and empirical pooled variances
centroids(X, Y, lambda.var=0)
## also compute group-specific variances
centroids(X, Y, var.groups=TRUE, lambda.var=0)
## use shrinkage estimator for the variances
centroids(X, Y, var.groups=TRUE)
## return centered data
xc = centroids(X, Y, centered.data=TRUE)$centered.data
apply(xc, 2, mean)
## useful, e.g., to compute the inverse pooled correlation matrix
powcor.shrink(xc, alpha=-1)