As an addendum to my question, I'm attempting to apply the solution to the
robust non-linear regression function nlrob from the robustbase package, and
it doesn't work in that situation. I'm getting

allRobustFit <- nlrob(Y ~ (upper)/(1+10^(X-LOGEC50[dset])), data=all
,start=list(upper=max(all$Y),LOGEC50=c(-8.5,-8.5,-8.5)))
Error in nls(formula, data = data, start = start, algorithm = algorithm,  :
  parameters without starting value in 'data': LOGEC50

I'm guessing this is because the nlrob function doesn't know what to do with
a vector for a start value. Am I correct and is there another method of
using nlrob in the same way?

Thanks,
Jared

On Tue, Oct 12, 2010 at 8:58 AM, Jared Blashka <evilamaran...@gmail.com>wrote:

> Thanks so much! It works great.
>
> I had thought the way to do it relied on combining the data sets, but I
> couldn't figure out how to alter the formula to work with the combination.
>
> Jared
>
>
> On Tue, Oct 12, 2010 at 7:07 AM, Keith Jewell <k.jew...@campden.co.uk>wrote:
>
>>
>> "Jared Blashka" <evilamaran...@gmail.com> wrote in message
>> news:aanlktinffmudugqnkudvr=fmf0wrrtsbjxjexuki_...@mail.gmail.com...
>> > I'm working with 3 different data sets and applying this non-linear
>> > regression formula to each of them.
>> >
>> > nls(Y ~ (upper)/(1+10^(X-LOGEC50)), data=std_no_outliers,
>> > start=list(upper=max(std_no_outliers$Y),LOGEC50=-8.5))
>> >
>> > Previously, all of the regressions were calculated in Prism, but I'd
>> like
>> > to
>> > be able to automate the calculation process in a script, which is why
>> I'm
>> > trying to move to R. The issue I'm running into is that previously, in
>> > Prism, I was able to calculate a shared value for a constraint so that
>> all
>> > three data sets shared the same value, but have other constraints
>> > calculated
>> > separately. So Prism would figure out what single value for the
>> constraint
>> > in question would work best across all three data sets. For my formula,
>> > each
>> > data set needs it's own LOGEC50 value, but the upper value should be the
>> > same across the 3 sets. Is there a way to do this within R, or with a
>> > package I'm not aware of, or will I need to write my own nls function to
>> > work with multiple data sets, because I've got no idea where to start
>> with
>> > that.
>> >
>> > Thanks,
>> > Jared
>> >
>> > [[alternative HTML version deleted]]
>> >
>> An approach which works for me (code below to illustrate principle, not
>> tried...)
>>
>> 1) combine all three "data sets" into one dataframe with a column (e.g.
>> dset) indicating data set (1, 2 or 3)
>>
>> 2) express your formula with upper as single valued and LOGEC50 as a
>> vector
>> inderxed by dest e.g.
>>     Y ~ upper/(1+10^(C-LOGEC50[dset]))
>>
>> 3) in the start list, make LOGEC50 a vector e.g. using -8.5 as start for
>> all
>> three LOGEC50 values
>>   start =
>> list(start=list(upper=max(std_no_outliers$Y),LOGEC50=c(-8.5, -8.5, -8.5))
>>
>> Hope that helps,
>>
>> Keith J
>>
>> ______________________________________________
>> R-help@r-project.org mailing list
>> 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]]

______________________________________________
R-help@r-project.org mailing list
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.

Reply via email to