To compare model fitting procedures, we randomly divide the rows of the data matrix B^ into two subsets—a “training set” B^train, and a “test set” B^test. We then apply mash to B^train, yielding estimates (π^,U^), and assess the “fit” of these estimates by computing the log-likelihood in the test data, logp(B^test | π^,U^,V), which is given by eq. 4. This cross-validation strategy can also be used to compare different approaches to estimating U^, and our current strategy was developed and refined using this framework.