private void updatePosteriorDistribution() {
		for (int d = 0; d < param.D; ++d) {
			for (int t = 0; t < param.T; ++t) {
				thetasum[d][t] += (ndt[d][t] + param.alpha)
						/ (ndsum[d] + tAlpha);
			}
		}

		for (int t = 0; t < param.T; ++t) {
			for (int ms = 0; ms < MS; ++ms) {
				phisum[t][ms] += (nts[t][ms] + param.beta) / (ntsum[t] + sBeta);
			}
		}

		for (int t = 0; t < param.T; ++t) {
			for (int ms = 0; ms < MS; ++ms) {
				int size = mustsets.getMustSet(ms).size();
				for (int i = 0; i < size; ++i) {
					etasum[t][ms][i] += (ntsw[t][ms][i] + gamma[ms][i])
							/ (ntssum[t][ms] + vGamma[t][ms]);
				}
			}
		}

		++numstats;
	}