Re: [R] nls fits by groups
Dear Katharine, that for loop solved all my problems, I just added subset=group==i to the nls statement. thank you, Aleksi Katharine Mullen wrote: It is not clear from your post what changes per-group. If only the starting values change (but the data and the model structure are the same), then you can just store the starting values you want to use for each group in a list, and then index into this list in your call to nls. e.g., modifying an example in the help page for nls: x - 1:10 y - 2*x + 3# perfect fit yeps - y + rnorm(length(y), sd = 0.01) # added noise startlist - list( list(a = 0.12345, b = 0.54321), ##group 1 start val list(a = 0.12, b = 0.54) ## group 2 start val. ) reslist - list() ## filling this with results from different start val for(i in 1:length(startlist)) { reslist[[i]] - nls(yeps ~ a + b*x, start = startlist[[i]], trace = TRUE) } On Sun, 23 Sep 2007, Aleksi Lehtonen wrote: Dear Colleagues, I am trying to estimate several non-linear models simultaneously. I don't want to use non-linear mixed model, but non-linear model with same form, but it should be estimated separately according to variable group (I have lots of groups that have lots of observations). I would like to have unique parameters for each group. e.g. something like this mod - nls(y ~ a*x^b, start=c(a=1, b=1), group=group) but knowing that group option does not work. If someone has an idea (or has done it already) how to implement this either using just nls statement or by building a simple function in R, I would be very grateful for hints regards, Aleksi Lehtonen [[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. __ 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.
[R] nls fits by groups
Dear Colleagues, I am trying to estimate several non-linear models simultaneously. I don't want to use non-linear mixed model, but non-linear model with same form, but it should be estimated separately according to variable group (I have lots of groups that have lots of observations). I would like to have unique parameters for each group. e.g. something like this mod - nls(y ~ a*x^b, start=c(a=1, b=1), group=group) but knowing that group option does not work. If someone has an idea (or has done it already) how to implement this either using just nls statement or by building a simple function in R, I would be very grateful for hints regards, Aleksi Lehtonen [[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.
Re: [R] nls fits by groups
It is not clear from your post what changes per-group. If only the starting values change (but the data and the model structure are the same), then you can just store the starting values you want to use for each group in a list, and then index into this list in your call to nls. e.g., modifying an example in the help page for nls: x - 1:10 y - 2*x + 3# perfect fit yeps - y + rnorm(length(y), sd = 0.01) # added noise startlist - list( list(a = 0.12345, b = 0.54321), ##group 1 start val list(a = 0.12, b = 0.54) ## group 2 start val. ) reslist - list() ## filling this with results from different start val for(i in 1:length(startlist)) { reslist[[i]] - nls(yeps ~ a + b*x, start = startlist[[i]], trace = TRUE) } On Sun, 23 Sep 2007, Aleksi Lehtonen wrote: Dear Colleagues, I am trying to estimate several non-linear models simultaneously. I don't want to use non-linear mixed model, but non-linear model with same form, but it should be estimated separately according to variable group (I have lots of groups that have lots of observations). I would like to have unique parameters for each group. e.g. something like this mod - nls(y ~ a*x^b, start=c(a=1, b=1), group=group) but knowing that group option does not work. If someone has an idea (or has done it already) how to implement this either using just nls statement or by building a simple function in R, I would be very grateful for hints regards, Aleksi Lehtonen [[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. __ 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.
Re: [R] nls fits by groups
Aleksi Lehtonen lehtonen.aleksi at gmail.com writes: I am trying to estimate several non-linear models simultaneously. I don't want to use non-linear mixed model, but non-linear model with same form, but it should be estimated separately according to variable group (I have lots of groups that have lots of observations). I would like to have unique parameters for each group. e.g. something like this mod - nls(y ~ a*x^b, start=c(a=1, b=1), group=group) but knowing that group option does not work. If someone has an idea (or has done it already) how to implement this either using just nls statement or by building a simple function in R, I would be very grateful for hints Why not nlsList from the nlme package. It would look something like this: mod - nlsList(y ~ a*x^b | group, start=c(a=1, b=1)) you might have to add a data argument, too, depending on where your data is. HTH, Ken __ 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.