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.