# [R] Finding x-value of intersections of mixture models

Ludwig Hilger l.hilger at ku.de
Thu May 9 17:43:58 CEST 2013

```Dear list,

I am trying to decompose a distribution into 4 normal distributions using
the function normalmixEM from package mixtools. This works well, I get four
mus and sds. I am now wondering how to get the 3 x values where the
distributions intersect. I have tried the following:

> summary(gemixed)
summary of normalmixEM object:
comp 1    comp 2    comp 3    comp 4
lambda 0.0327861  0.206095  0.642772  0.118347
mu     5.4289201 15.885116 33.519228 59.564096
sigma  2.6662273  5.681445  9.337467 10.464027
loglik at estimate:  -22760961

f.ints <- function(x, mu1, mu2, sd1, sd2) {
f1 <- dnorm(x, mean = mu1, sd = sd1)
f2 <- dnorm(x, mean = mu2, sd = sd2)
f <- abs(f1 - f2)
xs[which.min(f)]}
xintersections <- numeric()
#
for(i in 1:(length(gemixed\$mu)-1)){
xs <- seq(from = gemixed\$mu[i], to  = gemixed\$mu[i+1], by = 0.001)
xinter <- f.ints(x = xs, mu1 = gemixed\$mu[i], mu2 = gemixed\$mu[i+1], sd1 =
gemixed\$sigma[i], sd2 = gemixed\$sigma[i+1])
xintersections <- rbind(xintersections, xinter)}

Unfortunately, the x values I get this way are not near the intersections of
the curves as plotted in:

plot( # takes an object of class mixEM and returns various graphical output
for select mixture models
x = gemixed,   # An object of class mixEM
whichplots = 2,
density = TRUE)

Maybe I get this all wrong and there is an easy way to get the intersection
x-values? Any help would be very much appreciated!

Thank you and best regards,

Ludwig

##############################
> sessionInfo()
R version 2.15.2 (2012-10-26)
Platform: x86_64-w64-mingw32/x64 (64-bit)

locale:
[1] LC_COLLATE=German_Germany.1252  LC_CTYPE=German_Germany.1252
LC_MONETARY=German_Germany.1252 LC_NUMERIC=C
LC_TIME=German_Germany.1252

attached base packages:
[1] grDevices datasets  splines   graphics  stats     tcltk     utils
methods   base

other attached packages:
[1] rgdal_0.8-8       mixtools_0.4.6    segmented_0.2-9.4 MASS_7.3-22
boot_1.3-7        mclust_4.1        RSAGA_0.93-2.1    plyr_1.7.1
shapefiles_0.6    foreign_0.8-52    gstat_1.0-14      spacetime_0.8-0
[13] xts_0.8-8         zoo_1.7-9         sp_1.0-9          svSocket_0.9-53
TinnR_1.0-5       R2HTML_2.2        Hmisc_3.9-3       survival_2.36-14

loaded via a namespace (and not attached):
[1] cluster_1.14.3  grid_2.15.2     lattice_0.20-10 svMisc_0.9-65
tools_2.15.2

-----
Dipl. Geogr. Ludwig Hilger
Wiss. MA
Lehrstuhl für Physische Geographie