Chi-square test in finite mixture models I was trying to figure out whether or not the distribution of a biomarker came from heterogeneous populations. Analyzing the data with normalmixEM in the mixtools package in R, I got two distributions, but the histogram was unimodal and seemed to be homogeneous. (Sorry, I cannot post an image because I'm new here.) So I conducted a chi-square test, test.equality(y = biomarker), to see if it was from a homogeneous population but it gave a significant p-value following a warning of non-convergence. So my two related questions are:  


*

*How do you normally figure out if the distribution is two-component instead of just one?  

*Even if the analysis gives you two components, can the distribution still be from one population?   

 A: The likelihood ratio test has a non-standard distribution that is not a chi-square. Suppose we have the one-component null $H_0: F \sim N(\mu,\sigma^2)$ vs. two components $H_1: F \sim \alpha N(\mu,\sigma^2) + (1-\alpha) N(\theta,\gamma^2)$. Then under the null, $\alpha=0$, and the parameters $\theta$ and $\gamma$ are not identified. Informally speaking, the degrees of freedom are somewhere between 1 (for $\alpha$ only) and 3 (for $\alpha$, $\theta$ and $\gamma$). Formal theory has been worked on in the 1990s by Geoffrey MacLachlan and more recently by Jiahua Chen. See also my collection of references at http://www.citeulike.org/user/ctacmo/tag/mixture_model. At the very least, you need to make sure that whatever package/function you are using is getting it right.
You can produce a unimodal distribution by adding a small second component with shifted mean, so unimodality does not need to tell much:
x <- seq( from=-3, to=4, by=0.01 )
plot( x, 0.8*dnorm(x) + 0.2*dnorm(x,mean=2), type="l" )

