This function takes a DTM, phi matrix (P(word|topic)), and a theta matrix (P(topic|document)) and returns a single value for the likelihood of the data given the model.

CalcLikelihood(dtm, phi, theta, ...)

Arguments

dtm

The document term matrix of class dgCMatrix.

phi

The phi matrix whose rows index topics and columns index words. The i, j entries are P(word_i | topic_j)

theta

The theta matrix whose rows index documents and columns index topics. The i, j entries are P(topic_i | document_j)

...

Other arguments to pass to TmParallelApply. See note, below.

Value

Returns an object of class numeric corresponding to the log likelihood.

Note

This function performs parallel computation if dtm has more than 3,000 rows. The default is to use all available cores according to detectCores. However, this can be modified by passing the cpus argument when calling this function.

Examples

# Load a pre-formatted dtm and topic model
data(nih_sample_dtm) 
data(nih_sample_topic_model)

# Get the likelihood of the data given the fitted model parameters
ll <- CalcLikelihood(dtm = nih_sample_dtm, 
                     phi = nih_sample_topic_model$phi, 
                     theta = nih_sample_topic_model$theta)

ll
#> [1] -57416.55