Skip to contents

log L = sum_i logsumexp_k [log pi_k + log N(x_i | mu_k, Sigma_k)], the component densities computed through a Cholesky solve.

Usage

morie_geron_gmm_log_likelihood(X, pi, means, covars)

Arguments

X

(m, d) data.

pi

Mixing weights summing to 1.

means

(K, d) component means.

covars

K-list (or (K, d, d) array) of covariance matrices.

Value

List with log_likelihood, per_sample, mean_log_likelihood, component_log_densities, n_components.

Examples

set.seed(2)
X <- rbind(matrix(rnorm(20, 0), 10, 2), matrix(rnorm(20, 3), 10, 2))
morie_geron_gmm_log_likelihood(X, pi = c(0.5, 0.5),
                               means = rbind(c(0, 0), c(3, 3)),
                               covars = list(diag(2), diag(2)))
#> $log_likelihood
#> [1] -73.36738
#> 
#> $per_sample
#>  [1] -3.020439 -3.025950 -3.864314 -3.710354 -4.102257 -5.210312 -3.153297
#>  [8] -2.560326 -4.323894 -2.633784 -4.989802 -3.300070 -4.373564 -4.481728
#> [15] -2.831400 -4.947143 -4.129191 -3.105275 -3.001031 -2.603245
#> 
#> $mean_log_likelihood
#> [1] -3.668369
#> 
#> $component_log_densities
#>             [,1]       [,2]
#>  [1,]  -3.020468 -13.458260
#>  [2,]  -3.030028  -8.530222
#>  [3,]  -3.868755  -9.283306
#>  [4,]  -3.710355 -19.220489
#>  [5,]  -4.122414  -8.016483
#>  [6,]  -5.210312 -20.746258
#>  [7,]  -3.167597  -7.407919
#>  [8,]  -2.560393 -12.172067
#>  [9,]  -5.013004  -5.021096
#> [10,]  -2.634082 -10.753647
#> [11,] -22.479075  -4.989802
#> [12,]  -9.658907  -3.301803
#> [13,] -21.370972  -4.373564
#> [14,] -18.493210  -4.481729
#> [15,]  -9.517436  -2.832649
#> [16,]  -5.571761  -5.713862
#> [17,]  -9.388178  -4.134405
#> [18,]  -7.618866  -3.116294
#> [19,] -12.700516  -3.001092
#> [20,] -11.732726  -2.603353
#> 
#> $n_components
#> [1] 2
#> 
#> $estimate
#> [1] -73.36738
#> 
#> $n
#> [1] 20
#>