On 28/11/2009 9:25 AM, oscar linares wrote:
Dear Wiza[R]ds,

# I have the following experimentally observed data:

csdata <- data.frame(
time=c(0,1,3,9,20),
conc=c(638.697,395.69,199.00,141.58,112.16)
)

# weighting resp means response
wt.MM<- function(resp, time,A1,a1,A2,a2)
{
    pred <- A1*exp(-a1*time)+A2*exp(-a2*time)
    (resp - pred) / sqrt(pred)
}

# Fit using nls
cs.wt <- nls( ~ wt.MM(conc, time,A1,a1,A2,a2), data=csdata,
              start=list(A1=700,a1=1,A2=100,a2=0.1),
              trace = TRUE)

x<-csdata$time
y<-csdata$conc

# I want to plot the observed vs. fitted values in both linear(y) and log(y)
plots (i.e., linear and semi-log plots)
# Help appreciated...I spent over 2 hours searching archives.

Because your wt.MM doesn't return the pred values, you'll need to write a function that does. For example,

predictions <- function(fit, time) {
   params <- summary(fit)$coefficients[, 1]
   A1 <- params["A1"]
   a1 <- params["a1"]
   A2 <- params["A2"]
   a2 <- params["a2"]
   A1*exp(-a1*time)+A2*exp(-a2*time)
}

times <- seq(0,20, len=100)
par(mfrow=c(2,1))
plot(conc ~ time, data=csdata)
lines(times, predictions(cs.wt, times))
plot(conc ~ time, data=csdata, log="y")
lines(times, predictions(cs.wt, times))


Duncan Murdoch

______________________________________________
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