Hello, I estimated three paramters using non informative prior(all paramters following uniform distribution) the output is: Error in optim(pars, li_func, control = list(fnscale = -1), hessian = TRUE, : non-finite finite-difference value [1] How can I solve it using uniform distribution for all paramters?? (the same code is working when I use informative prior When I sugessted other distriutions like gamma and exp.) Thank you [[alternative HTML version deleted]]
Heh, heh ... Uniform distributions are not necessarily "non-informative" priors (itself, a non-definition). See, e.g. http://www.stats.org.uk/priors/noninformative/YangBerger1998.pdf . For a basic argument, see: http://www.amstat.org/publications/jse/v12n2/zhu.pdf Further discussion is off-topic here (it's a statistical, not an R, question). I suggest you consult a local statistician for details. And your question itself is noninformative: how can one tell without knowing what you are trying to optimize, your data, your starting values, etc. (unless I have missed something obvious)? Finally, if this is homework, post elsewhere: this list has a no homework policy. Cheers, Bert Bert Gunter "The trouble with having an open mind is that people keep coming along and sticking things into it." -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip ) On Thu, Dec 10, 2015 at 9:26 AM, hms Dreams <cute_loomaa at hotmail.com> wrote:> Hello, > I estimated three paramters using non informative prior(all paramters following uniform distribution) > > the output is: > Error in optim(pars, li_func, control = list(fnscale = -1), hessian = TRUE, : > non-finite finite-difference value [1] > > How can I solve it using uniform distribution for all paramters?? > > (the same code is working when I use informative prior When I sugessted other distriutions like gamma and exp.) > > Thank you > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at 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.
Sara: Always cc your reply to the list, which I have done here. No, I cannot help you. Others may be able to now. (They may still need your data, however). Cheers, Bert Bert Gunter "The trouble with having an open mind is that people keep coming along and sticking things into it." -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip ) On Thu, Dec 10, 2015 at 12:35 PM, hms Dreams <cute_loomaa at hotmail.com> wrote:> No, it is not a homework.. > > The 3 paramters I want to estimate it are : alpha,gam and delta, the range > of them >0 > > here my code: > > > library("MHadaptive") > > > baysianlog5=function (param,data) > > > { alpha=param[1] > > > gam=param[2] > > > delta=param[3] > > > x=data > > n =length(x) > > > > logl=n*log(alpha)+n*log(gam)+n*log(1/delta)+(alpha-1)*sum(log(x))-(gam+1)*sum(log(1+(1/delta)*x^alpha)) > > > p=prior5(param) > > > return(logl+p) #return log(p(x|theta)p(theta)) > > > } > > > #non informative prior using uniform > > > prior5=function(param) > > > { alpha=param[1] > > > gam=param[2] > > > delta=param[3] > > > > prior_alpha=dunif(alpha,0, 1,log=TRUE) > > > prior_gam=dunif(gam,0,.5,log=TRUE) > > > prior_delta=dunif(delta,0,.8,log=TRUE) > > > return(prior_alpha+ prior_gam +prior_delta) > > > } > > > alphaB5=c(); gamB5=c();deltaB5=c() > > > n=5 ; m=5 > > > alpha=2;gam=3;delta=4 #initial values > > > v= runif(n,0,1) > > > x =delta^(1/alpha)*((1-v)^(-1/gam)-1)^(1/alpha)# quantile > > > mc5 =Metro_Hastings(li_func=baysianlog5, > pars=c(.8,.2,.2),par_names=c('alpha','gamma','delta'),data=x ) > > > > > > > #the output is > Error in optim(pars, li_func, control = list(fnscale = -1), hessian = TRUE, > : > non-finite finite-difference value [1] > > > Can you help me > Sara > >> Date: Thu, 10 Dec 2015 11:23:56 -0800 >> Subject: Re: [R] problem in metro_hasting function? >> From: bgunter.4567 at gmail.com >> To: cute_loomaa at hotmail.com >> CC: r-help at r-project.org >> >> Heh, heh ... >> >> Uniform distributions are not necessarily "non-informative" priors >> (itself, a non-definition). See, e.g. >> http://www.stats.org.uk/priors/noninformative/YangBerger1998.pdf . >> For a basic argument, see: >> http://www.amstat.org/publications/jse/v12n2/zhu.pdf >> >> Further discussion is off-topic here (it's a statistical, not an R, >> question). I suggest you consult a local statistician for details. >> >> And your question itself is noninformative: how can one tell without >> knowing what you are trying to optimize, your data, your starting >> values, etc. (unless I have missed something obvious)? >> >> Finally, if this is homework, post elsewhere: this list has a no >> homework policy. >> >> Cheers, >> Bert >> >> >> Bert Gunter >> >> "The trouble with having an open mind is that people keep coming along >> and sticking things into it." >> -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip ) >> >> >> On Thu, Dec 10, 2015 at 9:26 AM, hms Dreams <cute_loomaa at hotmail.com> >> wrote: >> > Hello, >> > I estimated three paramters using non informative prior(all paramters >> > following uniform distribution) >> > >> > the output is: >> > Error in optim(pars, li_func, control = list(fnscale = -1), hessian >> > TRUE, : >> > non-finite finite-difference value [1] >> > >> > How can I solve it using uniform distribution for all paramters?? >> > >> > (the same code is working when I use informative prior When I sugessted >> > other distriutions like gamma and exp.) >> > >> > Thank you >> > >> > [[alternative HTML version deleted]] >> > >> > ______________________________________________ >> > R-help at 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.
No, it is not a homework.. The 3 paramters I want to estimate it are : alpha,gam and delta, the range of them >0 here my code: library("MHadaptive") baysianlog5=function (param,data) { alpha=param[1] gam=param[2] delta=param[3] x=data n =length(x) logl=n*log(alpha)+n*log(gam)+n*log(1/delta)+(alpha-1)*sum(log(x))-(gam+1)*sum(log(1+(1/delta)*x^alpha)) p=prior5(param) return(logl+p) #return log(p(x|theta)p(theta)) } #non informative prior using uniform prior5=function(param) { alpha=param[1] gam=param[2] delta=param[3] prior_alpha=dunif(alpha,0, 1,log=TRUE) prior_gam=dunif(gam,0,.5,log=TRUE) prior_delta=dunif(delta,0,.8,log=TRUE) return(prior_alpha+ prior_gam +prior_delta) } alphaB5=c(); gamB5=c();deltaB5=c() n=5 ; m=5 alpha=2;gam=3;delta=4 #initial values v= runif(n,0,1) x =delta^(1/alpha)*((1-v)^(-1/gam)-1)^(1/alpha)# quantile mc5 =Metro_Hastings(li_func=baysianlog5, pars=c(.8,.2,.2),par_names=c('alpha','gamma','delta'),data=x ) #the output is Error in optim(pars, li_func, control = list(fnscale = -1), hessian = TRUE, : non-finite finite-difference value [1] Can you help me Sara> Date: Thu, 10 Dec 2015 11:23:56 -0800 > Subject: Re: [R] problem in metro_hasting function? > From: bgunter.4567 at gmail.com > To: cute_loomaa at hotmail.com > CC: r-help at r-project.org > > Heh, heh ... > > Uniform distributions are not necessarily "non-informative" priors > (itself, a non-definition). See, e.g. > http://www.stats.org.uk/priors/noninformative/YangBerger1998.pdf . > For a basic argument, see: > http://www.amstat.org/publications/jse/v12n2/zhu.pdf > > Further discussion is off-topic here (it's a statistical, not an R, > question). I suggest you consult a local statistician for details. > > And your question itself is noninformative: how can one tell without > knowing what you are trying to optimize, your data, your starting > values, etc. (unless I have missed something obvious)? > > Finally, if this is homework, post elsewhere: this list has a no > homework policy. > > Cheers, > Bert > > > Bert Gunter > > "The trouble with having an open mind is that people keep coming along > and sticking things into it." > -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip ) > > > On Thu, Dec 10, 2015 at 9:26 AM, hms Dreams <cute_loomaa at hotmail.com> wrote: > > Hello, > > I estimated three paramters using non informative prior(all paramters following uniform distribution) > > > > the output is: > > Error in optim(pars, li_func, control = list(fnscale = -1), hessian = TRUE, : > > non-finite finite-difference value [1] > > > > How can I solve it using uniform distribution for all paramters?? > > > > (the same code is working when I use informative prior When I sugessted other distriutions like gamma and exp.) > > > > Thank you > > > > [[alternative HTML version deleted]] > > > > ______________________________________________ > > R-help at 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]]
... Note that if your parameters are uniform on [0, ...] you might be getting into trouble with (1/param) in your priors and likelihood. Or you might just be over-parameterized -- your data can't support your model and you are getting near singularities in your approximations. Cheers, Bert Bert Gunter "The trouble with having an open mind is that people keep coming along and sticking things into it." -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip ) On Thu, Dec 10, 2015 at 1:16 PM, Bert Gunter <bgunter.4567 at gmail.com> wrote:> Sara: > > Always cc your reply to the list, which I have done here. > > No, I cannot help you. Others may be able to now. (They may still need > your data, however). > > Cheers, > Bert > > > Bert Gunter > > "The trouble with having an open mind is that people keep coming along > and sticking things into it." > -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip ) > > > On Thu, Dec 10, 2015 at 12:35 PM, hms Dreams <cute_loomaa at hotmail.com> wrote: >> No, it is not a homework.. >> >> The 3 paramters I want to estimate it are : alpha,gam and delta, the range >> of them >0 >> >> here my code: >> >> >> library("MHadaptive") >> >> >> baysianlog5=function (param,data) >> >> >> { alpha=param[1] >> >> >> gam=param[2] >> >> >> delta=param[3] >> >> >> x=data >> >> n =length(x) >> >> >> >> logl=n*log(alpha)+n*log(gam)+n*log(1/delta)+(alpha-1)*sum(log(x))-(gam+1)*sum(log(1+(1/delta)*x^alpha)) >> >> >> p=prior5(param) >> >> >> return(logl+p) #return log(p(x|theta)p(theta)) >> >> >> } >> >> >> #non informative prior using uniform >> >> >> prior5=function(param) >> >> >> { alpha=param[1] >> >> >> gam=param[2] >> >> >> delta=param[3] >> >> >> >> prior_alpha=dunif(alpha,0, 1,log=TRUE) >> >> >> prior_gam=dunif(gam,0,.5,log=TRUE) >> >> >> prior_delta=dunif(delta,0,.8,log=TRUE) >> >> >> return(prior_alpha+ prior_gam +prior_delta) >> >> >> } >> >> >> alphaB5=c(); gamB5=c();deltaB5=c() >> >> >> n=5 ; m=5 >> >> >> alpha=2;gam=3;delta=4 #initial values >> >> >> v= runif(n,0,1) >> >> >> x =delta^(1/alpha)*((1-v)^(-1/gam)-1)^(1/alpha)# quantile >> >> >> mc5 =Metro_Hastings(li_func=baysianlog5, >> pars=c(.8,.2,.2),par_names=c('alpha','gamma','delta'),data=x ) >> >> >> >> >> >> >> #the output is >> Error in optim(pars, li_func, control = list(fnscale = -1), hessian = TRUE, >> : >> non-finite finite-difference value [1] >> >> >> Can you help me >> Sara >> >>> Date: Thu, 10 Dec 2015 11:23:56 -0800 >>> Subject: Re: [R] problem in metro_hasting function? >>> From: bgunter.4567 at gmail.com >>> To: cute_loomaa at hotmail.com >>> CC: r-help at r-project.org >>> >>> Heh, heh ... >>> >>> Uniform distributions are not necessarily "non-informative" priors >>> (itself, a non-definition). See, e.g. >>> http://www.stats.org.uk/priors/noninformative/YangBerger1998.pdf . >>> For a basic argument, see: >>> http://www.amstat.org/publications/jse/v12n2/zhu.pdf >>> >>> Further discussion is off-topic here (it's a statistical, not an R, >>> question). I suggest you consult a local statistician for details. >>> >>> And your question itself is noninformative: how can one tell without >>> knowing what you are trying to optimize, your data, your starting >>> values, etc. (unless I have missed something obvious)? >>> >>> Finally, if this is homework, post elsewhere: this list has a no >>> homework policy. >>> >>> Cheers, >>> Bert >>> >>> >>> Bert Gunter >>> >>> "The trouble with having an open mind is that people keep coming along >>> and sticking things into it." >>> -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip ) >>> >>> >>> On Thu, Dec 10, 2015 at 9:26 AM, hms Dreams <cute_loomaa at hotmail.com> >>> wrote: >>> > Hello, >>> > I estimated three paramters using non informative prior(all paramters >>> > following uniform distribution) >>> > >>> > the output is: >>> > Error in optim(pars, li_func, control = list(fnscale = -1), hessian >>> > TRUE, : >>> > non-finite finite-difference value [1] >>> > >>> > How can I solve it using uniform distribution for all paramters?? >>> > >>> > (the same code is working when I use informative prior When I sugessted >>> > other distriutions like gamma and exp.) >>> > >>> > Thank you >>> > >>> > [[alternative HTML version deleted]] >>> > >>> > ______________________________________________ >>> > R-help at 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.