[R] problem in metro_hasting function
Bert Gunter
bgunter.4567 at gmail.com
Thu Dec 10 22:16:42 CET 2015
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.
More information about the R-help
mailing list