'return marginal distribution for variables given by indices
this should be correct for normal and t distribution
Parameters
indices : array_like, int
list of indices of variables in the marginal distribution
Returns
mvdist : instance
new instance of the same multivariate distribution class that
contains the marginal distribution of the variables given in
indices'

def marginal(self, indices):

    indices = np.asarray(indices)
    mean_new = self.mean[indices]
    sigma_new = self.sigma[(indices[:, None], indices)]
    args = [getattr(self, ea) for ea in self.extra_args]
    return self.__class__(mean_new, sigma_new, *args)
