Please keep the list in cc. Sorry, it didn't work as expected. Maybe someone else have an appropriate solution.
Best, Ulrik On Sa., 26. Aug. 2017, 12:57 niharika singhal <niharikasinghal1...@gmail.com> wrote: > Hi > > Thanks for you mail, > I really appreciate your time on my problem > > I have posted this problem on > > > https://stats.stackexchange.com/questions/299590/to-find-maxima-for-gaussian-mixture-model > > > The plot I am getting using UnivarMixingDistribution from distr package in > R > > code is > > mc0= c(0.1241933, 0.6329082 <06329%20082>, 0.2428986 <02428%20986>) > rv > <-UnivarMixingDistribution(Norm(506.8644,61.02859),Norm(672.8448,9.149168),Norm( > 829.902,74.84682), mixCoeff=mc0/sum(mc0)) > plot(rv, to.draw.arg="d") > > I want output around 672 in first case and in 2nd case around 2.1 > according to the plot. > your code will not work in both the scenario > > Regards > Niharika Singhal > > > On Sat, Aug 26, 2017 at 12:47 PM, Ulrik Stervbo <ulrik.ster...@gmail.com> > wrote: > >> Hi, >> >> I once found this somewhere on stackoverflow: >> >> values <- rnorm(20, mean = c(2.15,2.0,2.9), sd = c(0.1,0.1,0.1)) >> >> v_dens <- density(values) >> v_dens_y <- v_dens$y >> >> r <- rle(v_dens_y) >> # These functions ignore the extremes if they are the first or last point >> maxima_index <- which(rep(x = diff(sign(diff(c(-Inf, r$values, -Inf)))) >> == -2, times = r$lengths)) >> minima_index <- which(rep(x = diff(sign(diff(c(-Inf, r$values, -Inf)))) >> == 2, times = r$lengths)) >> >> plot(v_dens_y) >> >> HTH >> Ulrik >> >> >> On Sat, 26 Aug 2017 at 11:49 niharika singhal < >> niharikasinghal1...@gmail.com> wrote: >> >>> I have a Gaussian mixture model with some parameters >>> >>> mean=(506.8644,672.8448,829.902) >>> >>> sigma=(61.02859,9.149168,74.84682) >>> >>> c=(0.1241933, 0.6329082 <06329%20082>, 0.2428986 <02428%20986>) >>> >>> And the plot look something like below.[image: enter image description >>> here] >>> <https://i.stack.imgur.com/4uUQ9.png> >>> >>> Also, if I change my parameters to >>> >>> mean=(2.15,2.0,2.9) >>> >>> sigma=(0.1,0.1,0.1) >>> >>> c=(1/3,1/3,1/3) >>> >>> Then plot would change to[image: enter image description here] >>> <https://i.stack.imgur.com/kESYX.png> >>> >>> Is there any way to find the maxima. I have tried Newton's method but it >>> gave me the wrong output. >>> >>> Like in general some common solution, which would work on all the cases, >>> is >>> needed.Can someone suggest me how can I achieve this >>> >>> Thanks in advance >>> >>> Niharika Singhal >>> >>> [[alternative HTML version deleted]] >>> >>> ______________________________________________ >>> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see >>> https://stat.ethz.ch/mailman/listinfo/r-help >>> PLEASE do read the posting guide >>> http://www.R-project.org/posting-guide.html >>> and provide commented, minimal, self-contained, reproducible code. >>> >> > [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.