> On Aug 26, 2017, at 12:13 PM, Ismail SEZEN <sezenism...@gmail.com> wrote: > > >> On 26 Aug 2017, at 16:39, niharika singhal <niharikasinghal1...@gmail.com> >> wrote: >> >> Hi, >> >> Thanks for your mail, and time >> >> It is not working for some arguments, when mean value is like >6. >> >> >> case >> >> mc0 <- c(0.08844446,0.1744455,0.1379778,0.1209769,0.1573065,0. >> 1134463,0.2074027) >> >> rv <-UnivarMixingDistribution(Norm(486.4255, 53.24133), >> >> Norm(664.0713, 3.674773), >> >> Norm(669.0484, 4.101381), >> >> Norm(677.1753, 4.869985), >> >> Norm(683.2635, 7.288175), >> >> Norm(727.6229, 37.64198), >> >> Norm(819.2011, 57.06655), >> >> mixCoeff=mc0/sum(mc0)) >> >> plot(rv, to.draw.arg="d") >> >> >> I am getting 731.1345 from the code you have provide >> >> >> It is part of a code, so it was difficult to write a reproducible code >> >> I have tried to use optimr but it gives me the local maxima, now I am >> struck with the problem of how to get the global maxima >> > > This is basically an optimization problem so it’s nothing to do with distr > package and UnivarMixingDistribution function. Also I’m not able to install > distr package because of an error.
> str(rv) Formal class 'AbscontDistribution' [package "distr"] with 12 slots ..@ gaps : num [1:2, 1:2] 259 1037 295 1063 ..@ img :Formal class 'Reals' [package "distr"] with 2 slots .. .. ..@ dimension: num 1 .. .. ..@ name : chr "Real Space" ..@ param : NULL ..@ r :function (n) ..@ d :function (x, log = FALSE) ..@ p :function (q, lower.tail = TRUE, log.p = FALSE) ..@ q :function (p, lower.tail = TRUE, log.p = FALSE) ..@ .withSim : logi FALSE ..@ .withArith : logi TRUE ..@ .logExact : logi FALSE ..@ .lowerExact: logi FALSE ..@ Symmetry :Formal class 'NoSymmetry' [package "distr"] with 2 slots .. .. ..@ type : chr "non-symmetric distribution" .. .. ..@ SymmCenter: NULL > str(density(rv)) Error in density.default(rv) : argument 'x' must be numeric > str(density(rv@r(1000)) + ) List of 7 $ x : num [1:512] 297 298 300 301 302 ... $ y : num [1:512] 4.39e-07 6.40e-07 9.15e-07 1.29e-06 1.78e-06 ... $ bw : num 10.5 $ n : int 1000 $ call : language density.default(x = rv@r(1000)) $ data.name: chr "rv@r(1000)" $ has.na : logi FALSE - attr(*, "class")= chr "density" > max( density(rv@r(10000))$y ) [1] 0.02133529 > which.max( density(rv@r(10000))$y ) [1] 259 > my.instance <- rv@r(10000) # need to creat an immutable value since this is > a pseuado-random number series. > which.max( density(my.instance)$y ) # location of x and y values for global > max [1] 263 > density(my.instance)$x[ which.max( density(my.instance)$y )] # x value that > yields global max [1] 669.8586 > density(my.instance)$y[ which.max( density(my.instance)$y )] value at max. [1] 0.02035133 > > an you create an example by rnorm function? or use dput to share x and y > outputs of UnivarMixingDistribution function and I can look for the issue. > > Also You might have multiple maximas has same maximum y-values (for instance, > y = sin(x)) and this definition is relevant to defined interval. For instance > again, we can talk about a global extremum for a function like y = ax^2+bx + > c. We know we will have only a single extremum point (maxima or minima). For > higher order functions, we can talk about only local maximas. So, I assume > you want to obtain maximum one of this local maximas, right? > > If yes, why don’t we find the maximum y-value and corresponding x-value as > follows? > > y <- c(1,2,3,4,3,2,3,4,5,6,7,8,9,8,7,6,5,6,7,6,5) > x <- 1:length(y) > > fun <- splinefun(x = x, y = y, method = "n") > x2 <- seq(1, max(x), 0.1) > y2 <- fun(x2) > plot(x, y, type = "l") > lines(x2, y2, col = "red") > > max.x <- optimize(fun, interval = range(x), maximum = TRUE) > print(max.x) # x coordinate of global maximum of y by spline and optimize > x[which(y == max(y))] # global maximum of dicrete x-y vectors > > > spline function uses cubic spline method to obtain the undefined values in a > discrete series and optimize function calculates EXACT LOCATION of the > extremum. I suspect we have a communication failure :) > > ______________________________________________ > 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. David Winsemius Alameda, CA, USA 'Any technology distinguishable from magic is insufficiently advanced.' -Gehm's Corollary to Clarke's Third Law ______________________________________________ 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.