On 08.02.2012 19:32, Journals wrote:> I run into a slight syntax proble while using nls that seems to require
> some advice from the R community
>
> I have a nonlinear regression problem where I observe the sum of the
> responses (y) of many individuals (X1 .... Xn). The properties (x1..xn)
> of these individuals have been measured but since the response is
> nonlinear I cannot use a mean individual to estimate the mean response
> of a population. But I have reasonable reasons to assume that all
> individuals are responding in the same way.
>
> In other words I want to estimate a function as in the last row of the
> example below. (Note, this is an artificial example and it does not
> converge (appart from having to few observations).
>
> data<-as.data.frame(matrix(c(1,2,3,4,5,6,7,7,9,0,1,2,3,4,6, 9), nrow=4,
> ncol=4))
>
colnames(data)<-c("y","x1","x2","x3")
>
> nonlin<-nls(y~a*(exp(b*x1)+exp(b*x2)+exp(b*x3))+c, start=list(a=1, b=2,
> c=3),
> data=data)
>
> Now my problem is that I have 500 different x variables (x1 .... x500)
> for each y variable (and a few thousand of y observations) and I am
> stuck with the syntax problem of how to pass this as a formula to nls.
> Is there any way to define a formula that is passed to nls that would
> take an array of x values.
You can construct a formula programmatically (as.formula on a string
generated by paste, for example), but I doubt you will manage to
estimate a nonlinear model with 500 variables easily (!) ....
Uwe Ligges
>
> Cheers Frank
>
> ______________________________________________
> R-help at 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.