Skip to content
Back to formatted view

Raw Message

Message-ID: <4A213B6E.8020201@statistik.tu-dortmund.de>
Date: 2009-05-30T13:58:06Z
From: Uwe Ligges
Subject: Looping until a solution is found
In-Reply-To: <F14F0F7F-118B-4250-8758-698AA589BDE6@comcast.net>

David Winsemius wrote:
> 
> On May 30, 2009, at 9:36 AM, Uwe Ligges wrote:
>>
>> John Poulsen wrote:
>>> Hello,
>>> I am using maximum likelihood to find the best parameters for a 
>>> model.  This involves sometimes tweaking the starting values to find 
>>> a solution that converges.
>>> I would like to automate the process so that when the optimizer runs 
>>> into an error it tweaks one of the parameters slightly, tries the fit 
>>> again, and then continues this until a solution if found.
>>> I have been using try() to test if a fit will work (see below), but 
>>> how do I run a loop that says continue until class(m1) is not "try 
>>> error"?
>>>  m1<-mlefun(startvals, data=data)
>>>
>>> if(class(m1)=="try-error"){startvals<-list(alpha=10,beta=1,loggamma=log(5),logk=log(exp(unlist(startvals[4]))+0.2))                  
>>> mlefun(starvals, data)}
>>>
>>
>> m1 <- mlefun(starvals, data=data)
>> while(class(m1) == "try-error"){
>>    startvals <- list(alpha=10, beta=1, loggamma=log(5),
>>                      logk=log(exp(unlist(startvals[4]))+0.2))
>>    m1 <- mlefun(starvals, data=data)
>> }
>>
> 
> So this implicitly assumes that try() is wrapped around the code inside 
> mlefun?

Argh, thanks, I actually meant
try(mlefun(starvals, data=data))
each time.

Best,
Uwe


> 
> 
> David Winsemius, MD
> Heritage Laboratories
> West Hartford, CT
>