Dear R-helpers
I have a problem related to the use of NLME
I think is simply a matter of getting the nlme coding correct, but i cannot
get my brain around it
I am analysing some 24 growth curves of some cells , and i wanted to say
that there are significant differences between the curves in two parameters
that describe the pattern of growth. these parameters are from a logistic
(r & k) .
i have attempted to construct a self starting routine for nlme ie:
SSGrowth_function(x, r, k)
{
.expr2 <- (k - 100000)/100000
.expr5 <- exp(((r * -1) * x))
.expr7 <- 1 + (.expr2 * .expr5)
.expr13 <- .expr7^2
.value <- k/.expr7
.actualArgs <- match.call()[c("r", "k")]
if(all(unlist(lapply(as.list(.actualArgs), is.name)))) {
.grad <- array(0, c(length(.value), 2), list(NULL,
c("r",
"k")))
.grad[, "r"] <- - ((k * (.expr2 * (.expr5 * (-1 *
x))))/.expr13)
.grad[, "k"] <- (1/.expr7) - ((k * (1e-005 *
.expr5))/.expr13)
dimnames(.grad) <- list(NULL, .actualArgs)
attr(.value, "gradient") <- .grad
}
.value
}
where x = time, 100000 = known starting conditions, r = growth and k =
carrying capacity
i guessed i should then write
nlme(NoofCells~SSGrowth(Time,r,k),fixed=r+k~1,data=CellData,random=r+k~1)
This runs and tells me that r & k's do differ
BUT. The "CellData" actually consists of replicates - ie there are 4
cell
types, but they are done 6 times each. Therefore, I do not want to ask if
there are significant differences in r & k between 24 sets of data
("Runs")- rather I want to be able to say that there are differences
between the four cell types occurring 6 times each. So how do
i incorporate "CellType" explicitly into my model structure??
i.e. If i was lust looking at say linear growth and was using lme I would
have written something like
lme(NoofCells~Time*CellType,random=~1|Runs,data=CellData)
Any thoughts/suggestions gratefully received
Darren Shaw
-----------------------------------------------------------------
Dr Darren J Shaw
Centre for Tropical Veterinary Medicine (CTVM)
Royal School of Veterinary Studies
The University of Edinburgh
Scotland
Darren Shaw <Darren.Shaw at ed.ac.uk> writes:> Dear R-helpers > > I have a problem related to the use of NLME > > I think is simply a matter of getting the nlme coding correct, but i > cannot get my brain around it > > > I am analysing some 24 growth curves of some cells , and i wanted to > say that there are significant differences between the curves in two > parameters that describe the pattern of growth. these parameters are > from a logistic (r & k) . > > > i have attempted to construct a self starting routine for nlme ie: > > SSGrowth_function(x, r, k) > { > .expr2 <- (k - 100000)/100000 > .expr5 <- exp(((r * -1) * x)) > .expr7 <- 1 + (.expr2 * .expr5) > .expr13 <- .expr7^2 > .value <- k/.expr7 > .actualArgs <- match.call()[c("r", "k")] > if(all(unlist(lapply(as.list(.actualArgs), is.name)))) { > .grad <- array(0, c(length(.value), 2), list(NULL, > c("r", "k"))) > > .grad[, "r"] <- - ((k * (.expr2 * (.expr5 * (-1 * > x))))/.expr13) > > .grad[, "k"] <- (1/.expr7) - ((k * (1e-005 * .expr5))/.expr13) > dimnames(.grad) <- list(NULL, .actualArgs) > attr(.value, "gradient") <- .grad > } > .value > } > > where x = time, 100000 = known starting conditions, r = growth and k > carrying capacity > > > i guessed i should then write > > nlme(NoofCells~SSGrowth(Time,r,k),fixed=r+k~1,data=CellData,random=r+k~1) > > > This runs and tells me that r & k's do differ > > BUT. The "CellData" actually consists of replicates - ie there are 4 > cell types, but they are done 6 times each. Therefore, I do not want > to ask if there are significant differences in r & k between 24 sets > of data ("Runs")- rather I want to be able to say that there are > differences between the four cell types occurring 6 times each. So > how do i incorporate "CellType" explicitly into my model structure?? > > > i.e. If i was lust looking at say linear growth and was using lme I > would have written something like > > > lme(NoofCells~Time*CellType,random=~1|Runs,data=CellData) > > Any thoughts/suggestions gratefully receivedI believe you want nlme(NoofCells~SSGrowth(Time,r,k),fixed=r+k~1,data=CellData,random=r+k~1|Runs)
On 14 May 2004 at 11:11, Darren Shaw wrote:> Dear R-helpers > > I have a problem related to the use of NLME > > I think is simply a matter of getting the nlme coding correct, but i > cannot get my brain around it > > I am analysing some 24 growth curves of some cells , and i wanted to > say that there are significant differences between the curves in two > parameters that describe the pattern of growth. these parameters are > from a logistic (r & k) . > > i have attempted to construct a self starting routine for nlme ie: > > SSGrowth_function(x, r, k) > { > .expr2 <- (k - 100000)/100000 > .expr5 <- exp(((r * -1) * x)) > .expr7 <- 1 + (.expr2 * .expr5) > .expr13 <- .expr7^2 > .value <- k/.expr7 > .actualArgs <- match.call()[c("r", "k")] > if(all(unlist(lapply(as.list(.actualArgs), is.name)))) { > .grad <- array(0, c(length(.value), 2), list(NULL, > c("r", > "k"))) > .grad[, "r"] <- - ((k * (.expr2 * (.expr5 * (-1 * > x))))/.expr13) > .grad[, "k"] <- (1/.expr7) - ((k * (1e-005 * > .expr5))/.expr13) dimnames(.grad) <- list(NULL, > .actualArgs) attr(.value, "gradient") <- .grad > } > .value > } > > where x = time, 100000 = known starting conditions, r = growth and k > carrying capacity > > i guessed i should then write > > nlme(NoofCells~SSGrowth(Time,r,k),fixed=r+k~1,data=CellData,random=r+k > ~1) > > > This runs and tells me that r & k's do differ > > BUT. The "CellData" actually consists of replicates - ie there are 4 > cell types, but they are done 6 times each. Therefore, I do not want > to ask if there are significant differences in r & k between 24 sets > of data ("Runs")- rather I want to be able to say that there are > differences between the four cell types occurring 6 times each. So > how do i incorporate "CellType" explicitly into my model structure??Something like nlme(NoofCells~SSGrowth(Time,r,k),fixed=r+k~1,data=CellData,random=r+k ~1 | CellType) ? Kjetil Halvorsen> > i.e. If i was lust looking at say linear growth and was using lme I > would have written something like > > lme(NoofCells~Time*CellType,random=~1|Runs,data=CellData) > > Any thoughts/suggestions gratefully received > > Darren Shaw > > ----------------------------------------------------------------- Dr > Darren J Shaw Centre for Tropical Veterinary Medicine (CTVM) Royal > School of Veterinary Studies The University of Edinburgh Scotland > > ______________________________________________ > R-help at stat.math.ethz.ch mailing list > https://www.stat.math.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide! > http://www.R-project.org/posting-guide.html >