Hi Antonella,
You should try optimizations starting with multiple lambdas and see if you 
reach the same results in the optimization. That is a sign that there is a 
global maximum likelihood in  your dataset.
You can look at the profile likelihood of Pagel's lambda, it might not be  nice 
as Emmanuel Paradis suggested and that is giving you trouble when optimizing.
To look at the (relative) profile likelihood of lambda you can use the 
following code

library(MASS)
library(ape)
library(nlme)

lambda0<-seq(0, 1, 0.005)
long1<-length(lambda0)
log.likes<-rep(0,long1)
for(i in 1:long1){
        model.i<-gls(y~x,correlation=corPagel(lambda0[i], 
phy.tree,fixed=TRUE),method="ML")
        log.likes[i]<-logLik(model.i)[1] # y~x  is your model, phy.tree your 
phylogeny
}
rel.loglike<-exp(log.likes-(max(log.likes)))

plot(lambda0,rel.loglike, type="l", xlab=paste("Pagel's", 
expression(lambda),sep=" "),ylab="Relative profile likelihood")

It is possible that the likelihood of lambda looks flat or multimodal that 
tells you that you don't have sufficient information to determine phylogenetic 
signal, and that might be messing all your estimates

Best,
-Rosana Zenil-Ferguson
PhD Candidate. University of Florida


________________________________________
From: R-sig-phylo <r-sig-phylo-boun...@r-project.org> on behalf of Antonella 
Soro <antonella.s...@zoologie.uni-halle.de>
Sent: Wednesday, January 6, 2016 12:39 PM
To: r-sig-phylo@r-project.org
Subject: [R-sig-phylo] Fwd: Error message when running gls with estimated       
lambda

dear all,

a couple of month ago i have sent this message to [R-sig-phylo]:


>>> Le 02/11/2015 18:29, Antonella Soro a écrit :

>>>> dear all,
>>>> like kari allen in june 2011, i am trying to "to run Pagels GLS in R and I 
>>>> have consistently encountered
>>>> an error message (see script and error message below).
>>>> "
>>>>> pagel.data<-corPagel(1,phy=gls.phylo1,fixed=FALSE)
>>>>> pagel.gls8<-gls(Gst~log.Body_size+Diet+Behavior+Max_Geo+He,correlation=pagel.data,data=data,na.action=na.exclude,
>>>>>  method="ML")
>>>> Error in corFactor.corStruct(object) :
>>>>  NA/NaN/Inf in foreign function call (arg 1)

>>>


i have now found out that the code above works for my data if i change the 
(initial) value of the parameter lambda from “1” to “0”. given this positive 
result, i am very much tempted to change that value and carry on with my 
analyses, but i wonder how entitled i am in making that change. what is the 
meaning of giving “1” as initial value of the parameter lambda, rather than any 
other value between “0” and “1"? and why would the outcome of the analysis 
depend so drastically (error vs not error) on that initial value?

emmanuel paradies’s response to the same questions on the legitimacy of 
changing the initial value of the parameter lambda was:

“Hi Antonella,

I see no problem in changing the initial value of lambda as long as it gives an 
estimate. I do not know if there is a reason to expect a "regular" shape of the 
likelihood function for this kind of problem; so adjusting the initial values 
of the parameters to "help" the optimization algorithm is not a bad thing. You 
can send this question on r-sig-phylo; maybe others will have another opinion"

any comment or a different opinion from the one of emmanuel is very much 
appreciated

thank you in advance

antonella

_______________________________________________
R-sig-phylo mailing list - R-sig-phylo@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-phylo
Searchable archive at http://www.mail-archive.com/r-sig-phylo@r-project.org/

_______________________________________________
R-sig-phylo mailing list - R-sig-phylo@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-phylo
Searchable archive at http://www.mail-archive.com/r-sig-phylo@r-project.org/

Reply via email to