Compute a list of canonical covariance matrices

cov_canonical(
data,
cov_methods = c("identity", "singletons", "equal_effects", "simple_het")
)

## Arguments

data

a mash data object, eg as created by mash_set_data

cov_methods

a vector of strings indicating the matrices to be used: "identity" for the identity (effects are independent among conditions); "singletons" for the set of matrices with just one non-zero entry x_jj = 1 (j=1,...,R); (effect specific to condition j); "equal_effects" for the matrix of all 1s (effects are equal among conditions); "simple_het" for a set of matrices with 1s on the diagonal and all off-diagonal elements equal to 0.25, 0.5 or 0.75; see cov_simple_het for details; (effects are correlated among conditions).

## Value

a list of covariance matrices

## Details

The default is that this function computes covariance matrices corresponding to the "bmalite" models.

## Examples

data = mash_set_data(Bhat = cbind(c(1,2),c(3,4)), Shat = cbind(c(1,1),c(1,1)))
cov_canonical(data)
#> $identity #> [,1] [,2] #> [1,] 1 0 #> [2,] 0 1 #> #>$singletons_1
#>      [,1] [,2]
#> [1,]    1    0
#> [2,]    0    0
#>
#> $singletons_2 #> [,1] [,2] #> [1,] 0 0 #> [2,] 0 1 #> #>$equal_effects
#>      [,1] [,2]
#> [1,]    1    1
#> [2,]    1    1
#>
#> $simple_het_1 #> [,1] [,2] #> [1,] 1.00 0.25 #> [2,] 0.25 1.00 #> #>$simple_het_2
#>      [,1] [,2]
#> [1,]  1.0  0.5
#> [2,]  0.5  1.0
#>
#> $simple_het_3 #> [,1] [,2] #> [1,] 1.00 0.75 #> [2,] 0.75 1.00 #> cov_canonical(data,"singletons") #>$singletons_1
#>      [,1] [,2]
#> [1,]    1    0
#> [2,]    0    0
#>
#> $singletons_2 #> [,1] [,2] #> [1,] 0 0 #> [2,] 0 1 #> cov_canonical(data,c("id","sing")) # can use partial matching of names #>$identity
#>      [,1] [,2]
#> [1,]    1    0
#> [2,]    0    1
#>
#> $singletons_1 #> [,1] [,2] #> [1,] 1 0 #> [2,] 0 0 #> #>$singletons_2
#>      [,1] [,2]
#> [1,]    0    0
#> [2,]    0    1
#>