"wt.adair"<- function(y, p, K1, K2, K3, K4) { # weight oxygen saturation data, y = f(p), uniformly for # hill function, log(y/(1-y)) # # var(log(y/(1-y))) = (d/dy (log(y/(1-y)))^2 * var(y) # = (1/(y(1-y)))^2 * var(y) # # by assumption # # var(log(y/(1-y))) = constant = 1 # # therefore the residuals^2 should be weighted by # # wt^2 = 1/var(y) # = (1/(y(1-y)))^2 # wt <- 1/(y * (1 - y)) resp <- (K1 * p + 3 * K1 * K2 * p^2 + 3 * K1 * K2 * K3 * p^3 + K1 * K2 * K3 * K4 * p^4)/(1 + 4 * K1 * p + 6 * K1 * K2 * p^2 + 4 * K1 * K2 * K3 * p^3 + K1 * K2 * K3 * K4 * p^4) (y - resp) * wt } "wt.mwc"<- function(y, p, L, Kt, Kr) { # weight oxygen saturation data, y = f(p), uniformly for # hill function, log(y/(1-y)) # # var(log(y/(1-y))) = (d/dy (log(y/(1-y)))^2 * var(y) # = (1/(y(1-y)))^2 * var(y) # # by assumption # # var(log(y/(1-y))) = constant = 1 # # therefore the residuals^2 should be weighted by # # wt^2 = 1/var(y) # = (1/(y(1-y)))^2 # wt <- 1/(y * (1 - y)) pred <- (L/Kt * p * (1 + p/Kt)^3 + p/Kr * (1 + p/Kr)^3)/(L * (1 + p/Kt)^ 4 + (1 + p/Kr)^4) (y - pred) * wt }