oscar linares
2009-Nov-29 13:51 UTC
[R] Plotting observed vs. Predicted values, change of symbols
Dear Wiz[R]ds, I am deeply grateful for the help from Duncan Murdoch, Gray Calhoun, and others. We are almost there. For whatever reason, I can't change the symbol from a circle to a triangle in the upright posture plots. Any ideas? I have included the problem in full. # tritiated (3H)-Norepinephrine(NE) disappearance from plasma # concentrations supine and upright # supine datasu <- data.frame( time=c(0,1,2,4,6,8,10,15,20), concsu=c(385.61,265.88,173.87,99.47,66.7,55.27,48.29,39.85,40.66) ) # upright dataup <- data.frame( time=c(0,1,2,4,6,8,10,15,20), concup=c(767.27,529.03,328.13,225.94,164,151.1,132.02,121.15,70.88) ) # fit supine wt.su<- function(resp, time,A1,a1,A2,a2) { pred <- A1*exp(-a1*time)+A2*exp(-a2*time) (resp - pred) / sqrt(pred) } fit.wt.su <- nls( ~ wt.su(concsu, time,A1,a1,A2,a2), data=datasu, start=list(A1=500,a1=1,A2=100,a2=0.2), trace = TRUE) summary(fit.wt.su) # fit upright wt.up<- function(resp, time,B1,b1,B2,b2) { pred <- B1*exp(-b1*time)+B2*exp(-b2*time) (resp - pred) / sqrt(pred) } fit.wt.up <- nls( ~ wt.up(concup, time,B1,b1,B2,b2), data=dataup, start=list(B1=500,b1=1,B2=100,b2=0.1), trace = TRUE) summary(fit.wt.up) # Function that returns predicted values and graphics # by Duncan Murdoch predictionssu <- 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) } predictionsup <- function(fit, time) { params <- summary(fit)$coefficients[, 1] B1 <- params["B1"] b1 <- params["b1"] B2 <- params["B2"] b2 <- params["b2"] B1*exp(-b1*time)+B2*exp(-b2*time) } # plot observed and predicted values supine and upright in # each plot type (linear and smi-log) # Need upright in same plots (e.g., dashed line) par(cex.lab=1.2,cex.axis=1.3) par(mfrow=c(2,1)) plot(c(datasu$concsu, dataup$concup) ~ c(datasu$time, dataup$time), xlab "Time (minutes)", ylab = "3H-NE (dpm/ml)", main="3H-NE Post-infusion Plasma Disappearance Curves", ylim=c(0,1000),cex=1.25, pch=16,col=1) lines(times, predictionssu(fit.wt.su, times)) lines(times, predictionsup(fit.wt.up, times), lty = "dashed") plot(c(datasu$concsu, dataup$concup) ~ c(datasu$time, dataup$time), xlab "Time (minutes)", ylab = "3H-NE (dpm/ml)", log = "y", ylim=c(1,1000),cex=1.25, pch=16,col=1) lines(times, predictionssu(fit.wt.su, times)) lines(times, predictionsup(fit.wt.up, times), lty = "dashed") Deeply grateful in advance... -- Oscar Oscar A. Linares, MD Translational Medicine Unit LaPlaisance Bay, Bolles Harbor Monroe, Michigan 48161 Department of Medicine, University of Toledo College of Medicine Toledo, OH 43606-3390 Department of Internal Medicine, The Detroit Medical Center (DMC) Harper University Hospital Wayne State University School of Medicine Detroit, Michigan 48201 [[alternative HTML version deleted]]
David Winsemius
2009-Nov-29 14:23 UTC
[R] Plotting observed vs. Predicted values, change of symbols
On Nov 29, 2009, at 8:51 AM, oscar linares wrote:> Dear Wiz[R]ds, > > I am deeply grateful for the help from Duncan Murdoch, Gray Calhoun, > and > others. We are almost there. For whatever reason, I can't change the > symbol > from a circle to a triangle in the upright posture plots.> Any ideas? I have > included the problem in full. > > # tritiated (3H)-Norepinephrine(NE) disappearance from plasma > # concentrations supine and upright > # supine > datasu <- data.frame( > time=c(0,1,2,4,6,8,10,15,20), > concsu=c(385.61,265.88,173.87,99.47,66.7,55.27,48.29,39.85,40.66) > ) > # upright > dataup <- data.frame( > time=c(0,1,2,4,6,8,10,15,20), > concup=c(767.27,529.03,328.13,225.94,164,151.1,132.02,121.15,70.88) > ) > > # fit supine > wt.su<- function(resp, time,A1,a1,A2,a2) > { > pred <- A1*exp(-a1*time)+A2*exp(-a2*time) > (resp - pred) / sqrt(pred) > } > > fit.wt.su <- nls( ~ wt.su(concsu, time,A1,a1,A2,a2), data=datasu, > start=list(A1=500,a1=1,A2=100,a2=0.2), > trace = TRUE) > > summary(fit.wt.su) > > # fit upright > wt.up<- function(resp, time,B1,b1,B2,b2) > { > pred <- B1*exp(-b1*time)+B2*exp(-b2*time) > (resp - pred) / sqrt(pred) > } > > fit.wt.up <- nls( ~ wt.up(concup, time,B1,b1,B2,b2), data=dataup, > start=list(B1=500,b1=1,B2=100,b2=0.1), > trace = TRUE) > > summary(fit.wt.up) > > # Function that returns predicted values and graphics > # by Duncan Murdoch > > predictionssu <- 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) > } > > predictionsup <- function(fit, time) { > params <- summary(fit)$coefficients[, 1] > B1 <- params["B1"] > b1 <- params["b1"] > B2 <- params["B2"] > b2 <- params["b2"] > > B1*exp(-b1*time)+B2*exp(-b2*time) > } > > # plot observed and predicted values supine and upright in > # each plot type (linear and smi-log) > > # Need upright in same plots (e.g., dashed line) > par(cex.lab=1.2,cex.axis=1.3) > > par(mfrow=c(2,1)) > plot(c(datasu$concsu, dataup$concup) ~ c(datasu$time, dataup$time), > xlab > "Time (minutes)", > ylab = "3H-NE (dpm/ml)", main="3H-NE Post-infusion Plasma > Disappearance > Curves", ylim=c(0,1000),cex=1.25, pch=16,col=1) > > lines(times, predictionssu(fit.wt.su, times))I don't think this is a complete presentation. My system thinks "times" is a function from the chron package, so either you have a numeric object named "times" or you are putting in "times" when you meant "time". I did try dropping the "s" but still get the same error: lines(time, predictionssu(fit.wt.su, time)) Error in -a1 * time : non-numeric argument to binary operator> lines(times, predictionsup(fit.wt.up, times), lty = "dashed") > > plot(c(datasu$concsu, dataup$concup) ~ c(datasu$time, dataup$time), > xlab > "Time (minutes)", > ylab = "3H-NE (dpm/ml)", log = "y", ylim=c(1,1000),cex=1.25, > pch=16,col=1) > > lines(times, predictionssu(fit.wt.su, times)) > lines(times, predictionsup(fit.wt.up, times), lty = "dashed") > > Deeply grateful in advance... > -- > Oscar > Oscar A. Linares, MD > Translational Medicine Unit > LaPlaisance Bay, Bolles Harbor > Monroe, Michigan 48161 > > Department of Medicine, > University of Toledo College of Medicine > Toledo, OH 43606-3390 > > Department of Internal Medicine, > The Detroit Medical Center (DMC) > Harper University Hospital > Wayne State University School of Medicine > Detroit, Michigan 48201 > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at 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.David Winsemius, MD Heritage Laboratories West Hartford, CT
David Winsemius
2009-Nov-29 14:35 UTC
[R] Plotting observed vs. Predicted values, change of symbols
On Nov 29, 2009, at 8:51 AM, oscar linares wrote:> Dear Wiz[R]ds, > > I am deeply grateful for the help from Duncan Murdoch, Gray Calhoun, > and > others. We are almost there. For whatever reason, I can't change the > symbol > from a circle to a triangle in the upright posture plots. Any ideas? > I have > included the problem in full. > > # tritiated (3H)-Norepinephrine(NE) disappearance from plasma > # concentrations supine and upright > # supine > datasu <- data.frame( > time=c(0,1,2,4,6,8,10,15,20), > concsu=c(385.61,265.88,173.87,99.47,66.7,55.27,48.29,39.85,40.66) > ) > # upright > dataup <- data.frame( > time=c(0,1,2,4,6,8,10,15,20), > concup=c(767.27,529.03,328.13,225.94,164,151.1,132.02,121.15,70.88) > ) > > # fit supine > wt.su<- function(resp, time,A1,a1,A2,a2) > { > pred <- A1*exp(-a1*time)+A2*exp(-a2*time) > (resp - pred) / sqrt(pred) > } > > fit.wt.su <- nls( ~ wt.su(concsu, time,A1,a1,A2,a2), data=datasu, > start=list(A1=500,a1=1,A2=100,a2=0.2), > trace = TRUE) > > summary(fit.wt.su) > > # fit upright > wt.up<- function(resp, time,B1,b1,B2,b2) > { > pred <- B1*exp(-b1*time)+B2*exp(-b2*time) > (resp - pred) / sqrt(pred) > } > > fit.wt.up <- nls( ~ wt.up(concup, time,B1,b1,B2,b2), data=dataup, > start=list(B1=500,b1=1,B2=100,b2=0.1), > trace = TRUE) > > summary(fit.wt.up) > > # Function that returns predicted values and graphics > # by Duncan Murdoch > > predictionssu <- 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) > } > > predictionsup <- function(fit, time) { > params <- summary(fit)$coefficients[, 1] > B1 <- params["B1"] > b1 <- params["b1"] > B2 <- params["B2"] > b2 <- params["b2"] > > B1*exp(-b1*time)+B2*exp(-b2*time) > } > > # plot observed and predicted values supine and upright in > # each plot type (linear and smi-log) > > # Need upright in same plots (e.g., dashed line) > par(cex.lab=1.2,cex.axis=1.3) > > par(mfrow=c(2,1)) > plot(c(datasu$concsu, dataup$concup) ~ c(datasu$time, dataup$time), > xlab > "Time (minutes)", > ylab = "3H-NE (dpm/ml)", main="3H-NE Post-infusion Plasma > Disappearance > Curves", ylim=c(0,1000),cex=1.25, pch=16,col=1)Try: ..., pch=c(rep(2,length(datasu$concsu)), rep(17,length(datasu $concsu)) ), ... (open triangles and filled triangles)> > lines(times, predictionssu(fit.wt.su, times)) > lines(times, predictionsup(fit.wt.up, times), lty = "dashed") > > plot(c(datasu$concsu, dataup$concup) ~ c(datasu$time, dataup$time), > xlab > "Time (minutes)", > ylab = "3H-NE (dpm/ml)", log = "y", ylim=c(1,1000),cex=1.25, > pch=16,col=1) > > lines(times, predictionssu(fit.wt.su, times)) > lines(times, predictionsup(fit.wt.up, times), lty = "dashed") > > Deeply grateful in advance... > -- > Oscar > Oscar A. Linares, MD > Translational Medicine Unit > LaPlaisance Bay, Bolles Harbor > Monroe, Michigan 48161 > > Department of Medicine, > University of Toledo College of Medicine > Toledo, OH 43606-3390 > > Department of Internal Medicine, > The Detroit Medical Center (DMC) > Harper University Hospital > Wayne State University School of Medicine > Detroit, Michigan 48201 > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at 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.David Winsemius, MD Heritage Laboratories West Hartford, CT
David Winsemius
2009-Nov-29 15:21 UTC
[R] Plotting observed vs. Predicted values, change of symbols
On Nov 29, 2009, at 10:09 AM, oscar linares wrote:> Dear David, > > You are correct, I had a bug, here it is fixed. Note the times vector. > > # Need upright in same plots (e.g., dashed line) > times <- seq(0,20, len=100) > par(cex.lab=1.2,cex.axis=1.3) > > par(mfrow=c(2,1)) > plot(c(datasu$concsu, dataup$concup) ~ c(datasu$time, dataup$time), > xlab = "Time (minutes)", > ylab = "3H-NE (dpm/ml)", main="3H-NE Post-infusion Plasma > Disappearance Curves", ylim=c(0,1000),cex=1.25, pch=16,col=1) > > lines(times, predictionssu(fit.wt.su, times)) > lines(times, predictionsup(fit.wt.up, times), lty = "dashed") > > plot(c(datasu$concsu, dataup$concup) ~ c(datasu$time, dataup$time), > xlab = "Time (minutes)", > ylab = "3H-NE (dpm/ml)", log = "y", ylim=c(1,1000),cex=1.25, > pch=16,col=1) > > lines(times, predictionssu(fit.wt.su, times)) > lines(times, predictionsup(fit.wt.up, times), lty = "dashed") >So the plotting section with the requested modifications for the plotting character parameter would be: # plot observed and predicted values supine and upright in # each plot type (linear and smi-log) # Need upright in same plots (e.g., dashed line) par(cex.lab=1.2,cex.axis=1.3) times <- seq(0,20, len=100) par(cex.lab=1.2,cex.axis=1.3) par(mfrow=c(2,1)) plot(c(datasu$concsu, dataup$concup) ~ c(datasu$time, dataup$time), xlab "Time (minutes)", ylab = "3H-NE (dpm/ml)", main="3H-NE Post-infusion Plasma Disappearance Curves", ylim=c(0,1000),cex=1.25, pch=c(rep(2,length(datasu$concsu)), rep(17,length(datasu$concsu)) ), col=1) lines(times, predictionssu(fit.wt.su, times)) lines(times, predictionsup(fit.wt.up, times), lty = "dashed") plot(c(datasu$concsu, dataup$concup) ~ c(datasu$time, dataup$time), xlab "Time (minutes)", ylab = "3H-NE (dpm/ml)", log = "y", ylim=c(1,1000),cex=1.25, pch=c(rep(2,length(datasu$concsu)), rep(17,length(datasu $concsu)) ),col=1);lines(times, predictionssu(fit.wt.su, times)) lines(times, predictionsup(fit.wt.up, times), lty = "dashed")> > > On Sun, Nov 29, 2009 at 9:23 AM, David Winsemius <dwinsemius@comcast.net > > wrote: > > On Nov 29, 2009, at 8:51 AM, oscar linares wrote: > > Dear Wiz[R]ds, > > I am deeply grateful for the help from Duncan Murdoch, Gray Calhoun, > and > others. We are almost there. For whatever reason, I can't change the > symbol > from a circle to a triangle in the upright posture plots. > > Any ideas? I have > included the problem in full. > > # tritiated (3H)-Norepinephrine(NE) disappearance from plasma > # concentrations supine and upright > # supine > datasu <- data.frame( > time=c(0,1,2,4,6,8,10,15,20), > concsu=c(385.61,265.88,173.87,99.47,66.7,55.27,48.29,39.85,40.66) > ) > # upright > dataup <- data.frame( > time=c(0,1,2,4,6,8,10,15,20), > concup=c(767.27,529.03,328.13,225.94,164,151.1,132.02,121.15,70.88) > ) > > # fit supine > wt.su<- function(resp, time,A1,a1,A2,a2) > { > pred <- A1*exp(-a1*time)+A2*exp(-a2*time) > (resp - pred) / sqrt(pred) > } > > fit.wt.su <- nls( ~ wt.su(concsu, time,A1,a1,A2,a2), data=datasu, > start=list(A1=500,a1=1,A2=100,a2=0.2), > trace = TRUE) > > summary(fit.wt.su) > > # fit upright > wt.up<- function(resp, time,B1,b1,B2,b2) > { > pred <- B1*exp(-b1*time)+B2*exp(-b2*time) > (resp - pred) / sqrt(pred) > } > > fit.wt.up <- nls( ~ wt.up(concup, time,B1,b1,B2,b2), data=dataup, > start=list(B1=500,b1=1,B2=100,b2=0.1), > trace = TRUE) > > summary(fit.wt.up) > > # Function that returns predicted values and graphics > # by Duncan Murdoch > > predictionssu <- 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) > } > > predictionsup <- function(fit, time) { > params <- summary(fit)$coefficients[, 1] > B1 <- params["B1"] > b1 <- params["b1"] > B2 <- params["B2"] > b2 <- params["b2"] > > B1*exp(-b1*time)+B2*exp(-b2*time) > } > > # plot observed and predicted values supine and upright in > # each plot type (linear and smi-log) > > # Need upright in same plots (e.g., dashed line) > par(cex.lab=1.2,cex.axis=1.3) > > par(mfrow=c(2,1)) > plot(c(datasu$concsu, dataup$concup) ~ c(datasu$time, dataup$time), > xlab > "Time (minutes)", > ylab = "3H-NE (dpm/ml)", main="3H-NE Post-infusion Plasma > Disappearance > Curves", ylim=c(0,1000),cex=1.25, pch=16,col=1) > > lines(times, predictionssu(fit.wt.su, times)) > > I don't think this is a complete presentation. My system thinks > "times" is a function from the chron package, so either you have a > numeric object named "times" or you are putting in "times" when you > meant "time". I did try dropping the "s" but still get the same > error: > lines(time, predictionssu(fit.wt.su, time)) > Error in -a1 * time : non-numeric argument to binary operator > > lines(times, predictionsup(fit.wt.up, times), lty = "dashed") > > plot(c(datasu$concsu, dataup$concup) ~ c(datasu$time, dataup$time), > xlab > "Time (minutes)", > ylab = "3H-NE (dpm/ml)", log = "y", ylim=c(1,1000),cex=1.25, > pch=16,col=1) > > lines(times, predictionssu(fit.wt.su, times)) > lines(times, predictionsup(fit.wt.up, times), lty = "dashed") > > Deeply grateful in advance... > -- > Oscar > Oscar A. Linares, MD > Translational Medicine Unit > LaPlaisance Bay, Bolles Harbor > Monroe, Michigan 48161 > > Department of Medicine, > University of Toledo College of Medicine > Toledo, OH 43606-3390 > > Department of Internal Medicine, > The Detroit Medical Center (DMC) > Harper University Hospital > Wayne State University School of Medicine > Detroit, Michigan 48201 > > [[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. > > David Winsemius, MD > Heritage Laboratories > West Hartford, CT > > > > > -- > Oscar > Oscar A. Linares, MD > Translational Medicine Unit > LaPlaisance Bay, Bolles Harbor > Monroe, Michigan 48161 > > Department of Medicine, > University of Toledo College of Medicine > Toledo, OH 43606-3390 > > Department of Internal Medicine, > The Detroit Medical Center (DMC) > Harper University Hospital > Wayne State University School of Medicine > Detroit, Michigan 48201David Winsemius, MD Heritage Laboratories West Hartford, CT [[alternative HTML version deleted]]