[med-svn] [r-cran-ellipse] 02/04: New upstream version 0.3-8

Andreas Tille tille at debian.org
Fri Sep 29 12:26:17 UTC 2017


This is an automated email from the git hooks/post-receive script.

tille pushed a commit to branch master
in repository r-cran-ellipse.

commit fa0bf4d2ec559323487a3712a7a3af155689a9e6
Author: Andreas Tille <tille at debian.org>
Date:   Fri Sep 29 14:23:33 2017 +0200

    New upstream version 0.3-8
---
 DESCRIPTION                |  23 ++++++++++
 MD5                        |  25 ++++++++++
 NAMESPACE                  |  10 ++++
 R/ellipse.R                |   2 +
 R/ellipse.arima0.R         |   6 +++
 R/ellipse.default.R        |  25 ++++++++++
 R/ellipse.glm.R            |  11 +++++
 R/ellipse.lm.R             |   8 ++++
 R/ellipse.nls.R            |   8 ++++
 R/ellipse.profile.R        |  74 ++++++++++++++++++++++++++++++
 R/ellipse.profile.glm.R    |   9 ++++
 R/ellipse.profile.nls.R    |   6 +++
 R/pairs.profile.R          | 111 +++++++++++++++++++++++++++++++++++++++++++++
 R/plotcorr.R               | 102 +++++++++++++++++++++++++++++++++++++++++
 README                     |  29 ++++++++++++
 debian/changelog           |   5 --
 debian/compat              |   1 -
 debian/control             |  23 ----------
 debian/copyright           |  31 -------------
 debian/rules               |   3 --
 debian/source/format       |   1 -
 debian/upstream/metadata   |  10 ----
 debian/watch               |   2 -
 man/ellipse-package.Rd     |  46 +++++++++++++++++++
 man/ellipse.Rd             |  78 +++++++++++++++++++++++++++++++
 man/ellipse.arima0.Rd      |  51 +++++++++++++++++++++
 man/ellipse.glm.Rd         |  67 +++++++++++++++++++++++++++
 man/ellipse.lm.Rd          |  51 +++++++++++++++++++++
 man/ellipse.nls.Rd         |  54 ++++++++++++++++++++++
 man/ellipse.profile.Rd     |  70 ++++++++++++++++++++++++++++
 man/ellipse.profile.glm.Rd |  82 +++++++++++++++++++++++++++++++++
 man/ellipse.profile.nls.Rd |  66 +++++++++++++++++++++++++++
 man/pairs.profile.Rd       |  74 ++++++++++++++++++++++++++++++
 man/plotcorr.Rd            |  81 +++++++++++++++++++++++++++++++++
 34 files changed, 1169 insertions(+), 76 deletions(-)

diff --git a/DESCRIPTION b/DESCRIPTION
new file mode 100644
index 0000000..d457e87
--- /dev/null
+++ b/DESCRIPTION
@@ -0,0 +1,23 @@
+Package: ellipse
+Version: 0.3-8
+Date: 2013-04-13
+Title: Functions for drawing ellipses and ellipse-like confidence
+        regions
+Author: Duncan Murdoch <murdoch at stats.uwo.ca> and E. D. Chow (porting
+        to R by Jesus M. Frias Celayeta <iosu at bureau.ucc.ie>)
+Maintainer: Duncan Murdoch <murdoch at stats.uwo.ca>
+Description: This package contains various routines for drawing
+        ellipses and ellipse-like confidence regions, implementing the
+        plots described in Murdoch and Chow (1996), A graphical display
+        of large correlation matrices, The American Statistician 50,
+        178-180. There are also routines implementing the profile plots
+        described in Bates and Watts (1988), Nonlinear Regression
+        Analysis and its Applications.
+Depends: R (>= 2.0.0),graphics,stats
+Suggests: MASS
+LazyLoad: yes
+License: GPL (>= 2)
+Packaged: 2013-04-13 14:23:12 UTC; murdoch
+NeedsCompilation: no
+Repository: CRAN
+Date/Publication: 2013-04-13 18:32:27
diff --git a/MD5 b/MD5
new file mode 100644
index 0000000..34ed9cf
--- /dev/null
+++ b/MD5
@@ -0,0 +1,25 @@
+5cb6594dd0fec32696b1c795ff04253a *DESCRIPTION
+c0f8e06aa745d323551c9c17bc5080c4 *NAMESPACE
+73fea51373da9bbc4ff85c413745b526 *R/ellipse.R
+4be8275a614fcb4065c37b8762941247 *R/ellipse.arima0.R
+caee0c1cfc23e089ee9ba8f4b4798039 *R/ellipse.default.R
+3c552169931b0006165ac5b1ae888eb3 *R/ellipse.glm.R
+f3a81546119e55c3f45191add9fea049 *R/ellipse.lm.R
+84a3d7dd1aa99c82424453da914feaaa *R/ellipse.nls.R
+1f6cc6a9602728096e1a5c17db75a3d1 *R/ellipse.profile.R
+179ff82c9db9ac24d7c28250d7dbd4ac *R/ellipse.profile.glm.R
+e9db7c17f6821149220b411bfd6441a6 *R/ellipse.profile.nls.R
+84c9bed516bd61a0b4d5a0a6aadda792 *R/pairs.profile.R
+f410502cb27f5f2cfaee61bcf133abe3 *R/plotcorr.R
+99f607a6fdc968d3ac4feeda1f11bbd7 *README
+c72cbb10c7117b72c4661f1e985e20e4 *man/ellipse-package.Rd
+a20be12fc0bc7bd5f179a90dcacfa291 *man/ellipse.Rd
+2a7bc110f3041d43ddd9ae601bf81912 *man/ellipse.arima0.Rd
+13796f5667a8b5b3c3eda8778ec508b1 *man/ellipse.glm.Rd
+8de4342bb0e4fd05f84cd2f244d3a58a *man/ellipse.lm.Rd
+a44b6aebadb5c6335f6e711b23152475 *man/ellipse.nls.Rd
+0f2ec2da5cb8932fd631826ca008e366 *man/ellipse.profile.Rd
+7c26b34627f1934d7b601edc1fa43b79 *man/ellipse.profile.glm.Rd
+a23b5bebb2dc3e1e01018fa9721db2f8 *man/ellipse.profile.nls.Rd
+966139fb90ef34fc4cf99889dde5005d *man/pairs.profile.Rd
+a5e1d2e0c9bdebccc53aa17b95d7f4a4 *man/plotcorr.Rd
diff --git a/NAMESPACE b/NAMESPACE
new file mode 100644
index 0000000..c5d227f
--- /dev/null
+++ b/NAMESPACE
@@ -0,0 +1,10 @@
+export(ellipse,plotcorr)
+S3method(ellipse,arima0)
+S3method(ellipse,default)
+S3method(ellipse,glm)
+S3method(ellipse,lm)
+S3method(ellipse,nls)
+S3method(ellipse,profile)
+S3method(ellipse,profile.glm)
+S3method(ellipse,profile.nls)
+S3method(pairs,profile)
diff --git a/R/ellipse.R b/R/ellipse.R
new file mode 100644
index 0000000..23e32be
--- /dev/null
+++ b/R/ellipse.R
@@ -0,0 +1,2 @@
+"ellipse" <-function (x, ...) 
+  UseMethod("ellipse")
diff --git a/R/ellipse.arima0.R b/R/ellipse.arima0.R
new file mode 100644
index 0000000..fc616c6
--- /dev/null
+++ b/R/ellipse.arima0.R
@@ -0,0 +1,6 @@
+ellipse.arima0<-
+  function(x, which = c(1, 2), level = 0.95, t = sqrt(qchisq(level, 2)), ...)
+{
+        ellipse.default(x$var.coef[which, which], centre = x$coef[which], t = t, ...)
+}
+
diff --git a/R/ellipse.default.R b/R/ellipse.default.R
new file mode 100644
index 0000000..972068a
--- /dev/null
+++ b/R/ellipse.default.R
@@ -0,0 +1,25 @@
+"ellipse.default" <-
+  function (x, scale = c(1, 1), centre = c(0, 0), level = 0.95, 
+            t = sqrt(qchisq(level, 2)), which = c(1, 2), npoints = 100, ...) 
+{
+  names <- c("x", "y")
+  if (is.matrix(x)) {
+    xind <- which[1]
+    yind <- which[2]
+    r <- x[xind, yind]
+    if (missing(scale)) {
+      scale <- sqrt(c(x[xind, xind], x[yind, yind]))
+      if (scale[1] > 0) r <- r/scale[1]
+      if (scale[2] > 0) r <- r/scale[2]
+    }
+    if (!is.null(dimnames(x)[[1]])) 
+      names <- dimnames(x)[[1]][c(xind, yind)]
+  }
+  else r <- x
+  r <- min(max(r,-1),1)  # clamp to -1..1, in case of rounding errors
+  d <- acos(r)
+  a <- seq(0, 2 * pi, len = npoints)
+  matrix(c(t * scale[1] * cos(a + d/2) + centre[1], t * scale[2] * 
+           cos(a - d/2) + centre[2]), npoints, 2, dimnames = list(NULL, 
+                                                    names))
+}
diff --git a/R/ellipse.glm.R b/R/ellipse.glm.R
new file mode 100644
index 0000000..653d423
--- /dev/null
+++ b/R/ellipse.glm.R
@@ -0,0 +1,11 @@
+"ellipse.glm" <-
+  function (x, which = c(1, 2), level = 0.95, t, npoints = 100, dispersion, ...) 
+{
+  s <- summary(x)
+  est.disp <- missing(dispersion) & !(x$family$family %in% c('poisson','binomial'))
+  if (missing(dispersion)) dispersion <- s$dispersion
+  if (missing(t)) t <- ifelse(est.disp,sqrt(2 * qf(level, 2, s$df[2])),
+			                           sqrt(qchisq(level, 2)))
+  ellipse.default(dispersion * s$cov.unscaled[which, which], 
+                  centre = x$coefficients[which], t = t, npoints = npoints, ...)
+}
diff --git a/R/ellipse.lm.R b/R/ellipse.lm.R
new file mode 100644
index 0000000..d9e8ed2
--- /dev/null
+++ b/R/ellipse.lm.R
@@ -0,0 +1,8 @@
+"ellipse.lm" <-
+  function (x, which = c(1, 2), level = 0.95, t = sqrt(2 * qf(level, 
+                                                2, x$df.residual)), ...) 
+{
+  s <- summary(x)
+  ellipse.default(s$sigma^2 * s$cov.unscaled[which, which], 
+                  centre = x$coefficients[which], t = t, ...)
+}
diff --git a/R/ellipse.nls.R b/R/ellipse.nls.R
new file mode 100644
index 0000000..dc68cba
--- /dev/null
+++ b/R/ellipse.nls.R
@@ -0,0 +1,8 @@
+"ellipse.nls" <-
+  function (x, which = c(1, 2), level = 0.95, t = sqrt(2 * qf(level, 
+                                                2, s$df[2])), ...) 
+{
+  s <- summary(x)
+  ellipse.default(s$sigma^2 * s$cov.unscaled[which, which], 
+                  centre = x$m$getPars()[which], t = t, ...)
+}
diff --git a/R/ellipse.profile.R b/R/ellipse.profile.R
new file mode 100644
index 0000000..1b3f4aa
--- /dev/null
+++ b/R/ellipse.profile.R
@@ -0,0 +1,74 @@
+"ellipse.profile" <-
+  function (x, which = c(1, 2), level = 0.95, t = sqrt(qchisq(level, 
+                                                2)), npoints = 100, ...) 
+{
+  aa <- x[[which[1]]][[2]][, which[1]]
+  ar <- x[[which[1]]][[2]][, which[2]]
+  ra <- x[[which[2]]][[2]][, which[1]]
+  rr <- x[[which[2]]][[2]][, which[2]]
+  atau <- x[[which[1]]][[1]]
+  rtau <- x[[which[2]]][[1]]
+  arange <- range(c(aa, ra))
+  rrange <- range(c(ar, rr))
+  atau <- atau/t
+  rtau <- rtau/t
+  getad <- function(tau1, tau2) {
+    if (abs(tau1) > 1) 
+      tau1 <- tau1/abs(tau1)
+    if (abs(tau2) > 1) 
+      tau2 <- tau2/abs(tau2)
+    acos1 <- acos(tau1)
+    acos2 <- acos(tau2)
+    d <- abs(acos1 - acos2)
+    a <- (acos1 + acos2)/2
+    if (acos1 < acos2) 
+      a <- -a
+    c(a, d)
+  }
+  myapprox <- function(x, y, where) {
+    good <- is.finite(x) & is.finite(y)
+    x <- x[good]
+    y <- y[good]
+    if (length(x) > 1) {
+      result <- approx(x[good], y[good], where)$y
+      bad <- is.na(result)
+      if (any(bad)) {
+        for (i in 1:length(result)) {
+          if (bad[i]) {
+            if (where[i] > x[length(x)]) {
+              x1 <- x[length(x) - 1]
+              y1 <- y[length(x) - 1]
+              x2 <- x[length(x)]
+              y2 <- y[length(x)]
+            }
+            else if (where[i] < x[1]) {
+              x1 <- x[1]
+              y1 <- y[1]
+              x2 <- x[2]
+              y2 <- y[2]
+            }
+            else stop("Unexpected NA")
+            result[i] <- y1 + (where[i] - x1)/(x2 - x1) * 
+              (y2 - y1)
+          }
+        }
+      }
+    }
+    else result <- rep(y, length(where))
+    result
+  }
+  ad <- matrix(NA, nrow = 5, ncol = 2)
+  ad[1, ] <- getad(1, myapprox(rr, rtau, myapprox(aa, ar, myapprox(atau, aa, 1))))
+  ad[2, ] <- getad(myapprox(aa, atau, myapprox(rr, ra, myapprox(rtau, rr, 1))), 1)
+  ad[3, ] <- getad(-1, myapprox(rr, rtau, myapprox(aa, ar, myapprox(atau, aa, -1))))
+  ad[4, ] <- getad(myapprox(aa, atau, myapprox(rr, ra, myapprox(rtau, rr, -1))), -1)
+  i <- order(ad[1:4, 1])
+  ad[1:4, ] <- ad[i, ]
+  ad[5, 1] <- ad[1, 1] + 2 * pi
+  ad[5, 2] <- ad[1, 2]
+  ad <- ad[!duplicated(ad[, 1]), ]
+  adv <- spline(ad, n = npoints, method= "periodic")
+  avals <- adv$x
+  dvals <- adv$y
+  matrix(c(myapprox(atau, aa, cos(avals + dvals/2)), myapprox(rtau,  rr, cos(avals - dvals/2))), length(avals), 2, dimnames = list(NULL, names(x[which])))
+}
diff --git a/R/ellipse.profile.glm.R b/R/ellipse.profile.glm.R
new file mode 100644
index 0000000..6e77d8a
--- /dev/null
+++ b/R/ellipse.profile.glm.R
@@ -0,0 +1,9 @@
+"ellipse.profile.glm" <-
+  function (x, which = c(1, 2), level = 0.95, t, npoints = 100, dispersion, ...) 
+{
+  if (missing(dispersion)) dispersion <- ifelse(attr(x,"original.fit")$family$family %in% c('poisson','binomial'),
+			                                      1, NA)
+  if (missing(t)) t <- ifelse(is.na(dispersion),sqrt(2 * qf(level, 2, attr(x,"summary")$df[2])),
+			                                    sqrt(qchisq(level, 2)*dispersion/attr(x,"summary")$dispersion))
+  ellipse.profile(x, which = which, level = level, t = t, npoints = npoints)
+}
diff --git a/R/ellipse.profile.nls.R b/R/ellipse.profile.nls.R
new file mode 100644
index 0000000..ecb67a6
--- /dev/null
+++ b/R/ellipse.profile.nls.R
@@ -0,0 +1,6 @@
+"ellipse.profile.nls" <-
+  function (x, which = c(1, 2), level = 0.95, t = sqrt(2 * qf(level, 2, attr(x, 
+                               "summary")$df[2])), npoints = 100, ...) 
+{
+  ellipse.profile(x, which = which, level = level, t = t, npoints = npoints)
+}
diff --git a/R/pairs.profile.R b/R/pairs.profile.R
new file mode 100644
index 0000000..fef18e3
--- /dev/null
+++ b/R/pairs.profile.R
@@ -0,0 +1,111 @@
+"pairs.profile" <-
+  function (x, labels = c(names(x), "Profile tau"), panel = lines, 
+            invert = TRUE, plot.tau = TRUE, plot.trace = TRUE, plot.sketch = TRUE, 
+            plot.ellipse = FALSE, level = 0.95, ...) 
+{
+  doaxis <- function(which, dolabel = TRUE) axis(which, labels = dolabel) # outer = TRUE, line = -0.5, labels = dolabel)
+  setup <- function(x, y, ...) plot(range(x[!is.na(x)]), 
+                                       range(y[!is.na(y)]), type = "n", axes = FALSE, ...)
+  if (is.character(panel)) 
+    panel <- get(panel, mode = "function")
+  n <- length(x)
+  if (plot.tau) 
+    n <- n + 1
+  oldpar <- par("oma", "mar", "cex", "tck", "mgp", "mex", 
+                "mfrow")
+  oldcex <- par("cex")
+  CEX <- oldcex * max(7.7/(2 * n + 3), 0.6)
+  par(mfrow = c(n, n), mgp = c(2, 0.8, 0), oma = rep(3, 4), 
+      mar = rep(0.5, 4), tck = -0.03/n)
+  on.exit({
+    par(oldpar)
+  })
+  par(cex = CEX)
+  if (length(labels) < n) 
+    labels <- paste(deparse(substitute(x)), "[,", 1:n, "]", 
+                    sep = "")
+  if (par("pty") == "s") {
+    dif <- diff(par("fin"))/2
+    if (dif > 0) 
+      par(omi = c(dif * n, 0, dif * n, 0) + par("omi"))
+    else par(omi = c(0, (-dif) * n, 0, (-dif) * n) + par("omi"))
+  }
+  alltau <- unlist(lapply(x, function(x) x[[1]]), use.names = FALSE)
+  order <- if (invert) 
+    1:n
+  else n:1
+  for (i in order) {
+    for (j in 1:n) {
+      if (i <= length(x)) {
+          icomp <- x[[i]]
+	  ipars <- as.matrix(icomp[[2]])
+      }
+      if (j <= length(x)) {
+          jcomp <- x[[j]]
+	  jpars <- as.matrix(jcomp[[2]])
+      }
+      xx1 <- NA
+      xx2 <- NA
+      yy1 <- NA
+      yy2 <- NA
+      if (i <= length(x)) {
+        yy1 <- ipars[, i]
+        if (j <= length(x)) {
+          xx1 <- ipars[, j]
+          xx2 <- jpars[, j]
+          yy2 <- jpars[, i]
+        }
+        else {
+          xx1 <- icomp[[1]]
+        }
+      }
+      else {
+        yy1 <- jcomp[[1]]
+        if (j <= length(x)) {
+          xx1 <- jpars[, j]
+        }
+      }
+      xx <- c(xx1, NA, xx2)
+      yy <- c(yy1, NA, yy2)
+      if (i <= length(x)) {
+        if (j <= length(x)) 
+          setup(xx, yy, ...)
+        else setup(alltau, yy, ...)
+      }
+      else {
+        if (j <= length(x)) 
+          setup(xx, alltau, ...)
+        else setup(alltau, alltau)
+      }
+      box()
+      if (i == 1) 
+        doaxis(3, j%%2 == 0)
+      if (i == n) 
+        doaxis(1, j%%2 == 1)
+      if (j == 1) 
+        doaxis(2, i%%2 == 0)
+      if (j == n) 
+        doaxis(4, i%%2 == 1)
+      if (i != j) {
+        if ((i <= length(x)) && (j <= length(x))) {
+          if (plot.trace) 
+            panel(xx, yy, ...)
+          if (plot.sketch) 
+            for (l in level) panel(ellipse(x, which = c(j, 
+                                                i), level = l), ...)
+          if (plot.ellipse && !is.null(fit <- attr(x, 
+                                                   "original.fit"))) 
+            for (l in level) panel(ellipse(fit, which = c(j, 
+                                                  i), level = l), ...)
+        }
+        else if (plot.tau) 
+          panel(xx, yy, ...)
+      }
+      else {
+        par(usr = c(0, 1, 0, 1))
+        text(0.5, 0.5, labels[i], cex = 1.5 * CEX)
+      }
+    }
+  }
+  invisible()
+}
diff --git a/R/plotcorr.R b/R/plotcorr.R
new file mode 100644
index 0000000..594b4af
--- /dev/null
+++ b/R/plotcorr.R
@@ -0,0 +1,102 @@
+"plotcorr" <-
+  function (corr, outline = TRUE, col = 'grey', numbers = FALSE, type = c("full","lower","upper"),
+            diag = (type == "full"), bty = "n", axes = FALSE, xlab = "", ylab = "", asp = 1,
+            cex.lab = par("cex.lab"), cex = 0.75*par("cex"), mar = 0.1 + c(2,2,4,2), ...)
+{
+    savepar <- par(pty = "s", mar = mar)
+    on.exit(par(savepar))
+
+    if (is.null(corr)) return(invisible())
+    if ((!is.matrix(corr)) || (round(min(corr, na.rm = TRUE), 6) < -1) 
+			   || (round(max(corr, na.rm = TRUE), 6) > 1)) 
+	stop("Need a correlation matrix")
+
+    plot.new()
+    par(new = TRUE)
+
+    rowdim <- dim(corr)[1]
+    coldim <- dim(corr)[2]
+
+    rowlabs <- dimnames(corr)[[1]]
+    collabs <- dimnames(corr)[[2]]
+    if (is.null(rowlabs)) rowlabs <- 1:rowdim
+    if (is.null(collabs)) collabs <- 1:coldim
+    rowlabs <- as.character(rowlabs)
+    collabs <- as.character(collabs)
+
+    col <- rep(col, length = length(corr))
+    dim(col) <- dim(corr)
+
+    type <- match.arg(type)
+    
+    cols <- 1:coldim
+    rows <- 1:rowdim
+    
+    xshift <- 0
+    yshift <- 0
+    
+    if (!diag) {
+      if (type == "upper") {
+	cols <- 2:coldim
+	rows <- 1:(rowdim - 1)
+	xshift <- 1
+      } else if (type == "lower") {
+        cols <- 1:(coldim-1)
+        rows <- 2:rowdim
+        yshift <- -1
+      }
+    }
+    
+    maxdim <- max(length(rows), length(cols))
+
+    plt <- par('plt')
+    xlabwidth <- max(strwidth(rowlabs[rows],units='figure',cex=cex.lab))/(plt[2]-plt[1])
+    xlabwidth <- xlabwidth*maxdim/(1-xlabwidth)
+    ylabwidth <- max(strwidth(collabs[cols],units='figure',cex=cex.lab))/(plt[4]-plt[3])
+    ylabwidth <- ylabwidth*maxdim/(1-ylabwidth)
+
+    plot(c(-xlabwidth-0.5, maxdim + 0.5), c(0.5, maxdim + 1 + ylabwidth), 
+	 type = "n", bty = bty, axes = axes, xlab = "", ylab = "", asp = asp, 
+	 cex.lab = cex.lab, ...)
+    text(rep(0, length(rows)), length(rows):1, labels = rowlabs[rows], adj = 1, cex = cex.lab)
+    text(cols-xshift, rep(length(rows) + 1, length(cols)), labels = collabs[cols], 
+	 srt = 90, adj = 0, cex = cex.lab)
+    mtext(xlab,1,0)
+    mtext(ylab,2,0) 
+    mat <- diag(c(1, 1))
+    plotcorrInternal <- function()
+    {
+      if (i == j && !diag) return()
+      if (!numbers) {
+        mat[1, 2] <- corr[i, j]
+        mat[2, 1] <- mat[1, 2]
+        ell <- ellipse(mat, t = 0.43)
+        ell[, 1] <- ell[, 1] + j - xshift
+        ell[, 2] <- ell[, 2] + length(rows) + 1 - i - yshift
+        polygon(ell, col = col[i, j])
+        if (outline) lines(ell)
+      } else {
+        text(j + 0.3 - xshift, length(rows) + 1 - i - yshift, round(10 * corr[i, j], 0),
+             adj = 1, cex = cex)
+      }
+    }
+    for (i in 1:dim(corr)[1]) {
+      for (j in 1:dim(corr)[2]) {
+        if (type == "full") {
+          plotcorrInternal()
+        } else if (type == "lower" && (i >= j)) {
+          plotcorrInternal()
+        } else if (type == "upper" && (i <= j)) {
+          plotcorrInternal()
+        }
+      }
+    }
+    invisible()
+}
+
+
+
+
+
+
+
diff --git a/README b/README
new file mode 100644
index 0000000..77c1030
--- /dev/null
+++ b/README
@@ -0,0 +1,29 @@
+This package contains ellipse drawing routines designed for pairwise
+confidence regions, including distorted ellipses for nonlinear
+regression regions.  It also includes a routine "plotcorr" for 
+plotting correlation matrices using ellipses.
+
+The examples require the MASS, nls and ts packages.
+
+Release History:
+
+0.2.12 (Jan 2004) - Bug fix for missing values in plotcorr, doc error
+
+0.2.14 (Aug 2004) - Allowed separate colors for each ellipse in plotcorr
+		    and fixed some .Rd errors.
+
+0.2.15 (May 2005) - Allowed plotcorr to plot just upper or lower triangle
+		    of matrix.
+		    
+0.3.1 (June 2005) - Added NAMESPACE, package overview topic
+
+0.3.2 (Feb 2006)  - Remove deprecated install.R
+
+0.3.3 (Nov 2006)  - Nicer colors in plotcorr() example (from Gregor Gorjanc)
+
+0.3.4 (Nov 2006)  - Update to strict test compliance
+
+0.3.5 (Sep 2007)  - License clarification
+
+0.3.6 (Apr 2009)  - Bug fix:  ... was not being passed from methods to
+		    ellipse.default().
\ No newline at end of file
diff --git a/debian/changelog b/debian/changelog
deleted file mode 100644
index 86febc7..0000000
--- a/debian/changelog
+++ /dev/null
@@ -1,5 +0,0 @@
-r-cran-ellipse (0.3-8-1) unstable; urgency=low
-
-  * Initial release (closes: #829219)
-
- -- Andreas Tille <tille at debian.org>  Fri, 01 Jul 2016 17:03:20 +0200
diff --git a/debian/compat b/debian/compat
deleted file mode 100644
index ec63514..0000000
--- a/debian/compat
+++ /dev/null
@@ -1 +0,0 @@
-9
diff --git a/debian/control b/debian/control
deleted file mode 100644
index e82e31e..0000000
--- a/debian/control
+++ /dev/null
@@ -1,23 +0,0 @@
-Source: r-cran-ellipse
-Maintainer: Debian Med Packaging Team <debian-med-packaging at lists.alioth.debian.org>
-Uploaders: Andreas Tille <tille at debian.org>
-Section: gnu-r
-Priority: optional
-Build-Depends: debhelper (>= 9),
-               cdbs,
-               r-base-dev
-Standards-Version: 3.9.8
-Vcs-Browser: https://anonscm.debian.org/viewvc/debian-med/trunk/packages/R/r-cran-ellipse/trunk/
-Vcs-Svn: svn://anonscm.debian.org/debian-med/trunk/packages/R/r-cran-ellipse/trunk/
-Homepage: https://cran.r-project.org/web/packages/ellipse
-
-Package: r-cran-ellipse
-Architecture: all
-Depends: ${misc:Depends},
-         ${R:Depends}
-Description: GNU R functions for drawing ellipses and ellipse-like confidence regions
- This package contains various routines for drawing ellipses and ellipse-
- like confidence regions, implementing the plots described in Murdoch and
- Chow (1996). There are also routines implementing the profile plots
- described in Bates and Watts (1988), Nonlinear Regression Analysis and
- its Applications.
diff --git a/debian/copyright b/debian/copyright
deleted file mode 100644
index 3810827..0000000
--- a/debian/copyright
+++ /dev/null
@@ -1,31 +0,0 @@
-Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
-Upstream-Name: ellipse
-Upstream-Contact: Duncan Murdoch <murdoch at stats.uwo.ca>
-Source: https://cran.r-project.org/web/packages/ellipse
-
-Files: *
-Copyright: 2010-2013 Duncan Murdoch <murdoch at stats.uwo.ca>, E. D. Chow
-           porting to R by Jesus M. Frias Celayeta
-License: GPL-2+
-
-Files: debian/*
-Copyright: 2016 Andreas Tille <tille at debian.org>
-License: GPL-2+
-
-License: GPL-2+
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
- .
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
- .
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- .
- On Debian systems, the complete text of the GNU General Public
- License can be found in `/usr/share/common-licenses/GPL-2'.
diff --git a/debian/rules b/debian/rules
deleted file mode 100755
index 2fbba2d..0000000
--- a/debian/rules
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/usr/bin/make -f
-
-include /usr/share/R/debian/r-cran.mk
diff --git a/debian/source/format b/debian/source/format
deleted file mode 100644
index 163aaf8..0000000
--- a/debian/source/format
+++ /dev/null
@@ -1 +0,0 @@
-3.0 (quilt)
diff --git a/debian/upstream/metadata b/debian/upstream/metadata
deleted file mode 100644
index d8680ef..0000000
--- a/debian/upstream/metadata
+++ /dev/null
@@ -1,10 +0,0 @@
-Reference:
-  Author: D. J. Murdocha and E. D. Chowa
-  Title: A Graphical Display of Large Correlation Matrices
-  Journal: The American Statistician
-  Year: 1996
-  Volume: 50
-  Number: 2
-  Pages: 178-180
-  DOI: 10.1080/00031305.1996.10474371
-  URL: http://www.tandfonline.com/doi/abs/10.1080/00031305.1996.10474371
diff --git a/debian/watch b/debian/watch
deleted file mode 100644
index 6466b24..0000000
--- a/debian/watch
+++ /dev/null
@@ -1,2 +0,0 @@
-version=3
-http://cran.r-project.org/src/contrib/ellipse_([-\d.]*)\.tar\.gz
diff --git a/man/ellipse-package.Rd b/man/ellipse-package.Rd
new file mode 100644
index 0000000..9ee92ae
--- /dev/null
+++ b/man/ellipse-package.Rd
@@ -0,0 +1,46 @@
+\name{ellipse-package}
+\alias{ellipse-package}
+\docType{package}
+\title{
+Functions for drawing ellipses and ellipse-like confidence
+regions
+}
+\description{
+This package contains various routines for drawing
+ellipses and ellipse-like confidence regions, implementing the
+plots described in Murdoch and Chow (1996).
+
+There are also routines implementing
+the profile plots described in Bates and Watts (1988).
+}
+\details{
+There are three groups of routines in the ellipse package.  The first
+consists of those involved with \code{\link{plotcorr}}, which implements the plots
+described in Murdoch and Chow (1996). These display correlations using
+ellipses, whose shape is that of the contours of a bivariate normal
+distribution with matching correlation.
+    
+The second group implements a version of the profile plots described in
+Bates and Watts (1988); see \code{\link{ellipse.profile}} and \code{\link{pairs.profile}}.
+
+The last group provide the basis for the others, drawing ellipses based on
+various S objects, including scalar correlations, covariance matrices
+\code{\link{arima}}, \code{\link{lm}}, and \code{\link{nls}} fits:  see \code{\link{ellipse}}.
+
+}
+\author{
+Duncan Murdoch <murdoch at stats.uwo.ca> and E. D. Chow (porting
+to R by Jesus M. Frias Celayeta <iosu at bureau.ucc.ie>)
+
+Maintainer: Duncan Murdoch <murdoch at stats.uwo.ca>
+}
+\references{
+Bates, D.M. and Watts, D.G. (1988).
+Nonlinear Regression Analysis and its Applications.  Wiley.
+
+Murdoch, D.J. and Chow, E.D. (1996). A graphical
+display of large correlation matrices. The American
+Statistician 50, 178-180. 
+}
+\keyword{ package }
+\keyword{ dplot }
diff --git a/man/ellipse.Rd b/man/ellipse.Rd
new file mode 100644
index 0000000..b0b26f8
--- /dev/null
+++ b/man/ellipse.Rd
@@ -0,0 +1,78 @@
+\name{ellipse}
+\alias{ellipse}
+\alias{ellipse.default}
+\title{
+Make an ellipse
+}
+\description{
+A generic function returning an ellipse or other outline of a confidence region
+for two parameters.  
+}
+\usage{
+ellipse(x, \dots)
+\method{ellipse}{default}(x, scale = c(1, 1), centre = c(0, 0), level = 0.95, 
+    t = sqrt(qchisq(level, 2)), which = c(1, 2), npoints = 100, \dots)
+}
+\arguments{
+\item{x}{
+An object. In the default method the parameter \code{x} should be a correlation between -1 and 1 or a
+square positive definite matrix at least 2x2
+in size. It will be treated as the correlation or covariance 
+of a multivariate normal distribution.
+}
+\item{\dots}{
+Descendant methods may require additional parameters.
+}
+\item{scale}{
+If \code{x} is a correlation matrix, then the standard deviations of each
+parameter can be given in the scale parameter.  This defaults to \code{c(1, 1)},
+so no rescaling will be done.
+}
+\item{centre}{
+The centre of the ellipse will be at this position.
+}
+\item{level}{
+The confidence level of a pairwise confidence region.  The default is
+0.95, for a 95\% region.  This is used to control the size of the ellipse
+being plotted.  A vector of levels may be used.
+}
+\item{t}{
+The size of the ellipse may also be controlled by specifying the value
+of a t-statistic on its boundary.  This defaults to the appropriate
+value for the confidence region.
+}
+\item{which}{
+This parameter selects which pair of variables from the matrix will be
+plotted.  The default is the first 2.
+}
+\item{npoints}{
+The number of points used in the ellipse.  Default is 100.
+}
+}
+\value{
+An \code{npoints} x \code{2} matrix is returned with columns named according to the
+row names of the matrix \code{x} (default \code{'x'} and \code{'y'}), suitable
+for plotting.
+}
+\details{
+The default method uses the 
+\code{(cos(theta + d/2), cos(theta - d/2))} parametrization of an ellipse, where 
+\code{cos(d)} is the correlation of the parameters.
+}
+\seealso{
+\code{\link{ellipse.lm}}, \code{\link{ellipse.nls}}, 
+\code{\link{ellipse.profile}}, \code{\link{ellipse.profile.nls}},
+\code{\link{ellipse.arima0}},
+\code{\link{plotcorr}}
+}
+\references{
+Murdoch, D.J. and Chow, E.D. (1996). A graphical display of large 
+correlation matrices. The American Statistician 50, 178-180. 
+}
+\examples{
+# Plot an ellipse corresponding to a 95\% probability region for a
+# bivariate normal distribution with mean 0, unit variances and 
+# correlation 0.8.
+plot(ellipse(0.8), type = 'l')
+}
+\keyword{dplot}
diff --git a/man/ellipse.arima0.Rd b/man/ellipse.arima0.Rd
new file mode 100644
index 0000000..98ddbab
--- /dev/null
+++ b/man/ellipse.arima0.Rd
@@ -0,0 +1,51 @@
+\name{ellipse.arima0}
+\alias{ellipse.arima0}
+\title{
+Outline an approximate pairwise confidence region 
+}
+\description{
+This function produces the ellipsoidal outline of an approximate 
+pairwise confidence region for an ARIMA model fit.
+}
+\usage{
+\method{ellipse}{arima0}(x, which = c(1, 2), level = 0.95, t = sqrt(qchisq(level, 2)), \dots)
+}
+\arguments{
+\item{x}{
+The first argument should be an \code{arima0} object, usually resulting from a call
+to \code{arima0()}.
+}
+\item{which}{
+Which selects the pair of parameters to be plotted.  The default is the
+first two.
+}
+\item{level}{
+The confidence level of the region.  Default 95\%.
+}
+\item{t}{
+The t statistic on the boundary of the ellipse.
+}
+\item{\dots}{
+Other \code{ellipse.default} parameters may also be used.
+}}
+\value{
+A matrix with columns \code{x} and \code{y} to outline the confidence region.
+}
+\details{
+The \code{summary} function is used to obtain the approximate covariance matrix of the
+fitted parameters.
+}
+\seealso{
+\code{\link{ellipse}}
+}
+\examples{
+data(USAccDeaths)
+fit <- arima0(USAccDeaths, order = c(0, 1, 1), seasonal = list(order = c(0, 1, 1)))
+# Plot the approximate 95\% confidence region for the first two parameters
+# of the model
+plot(ellipse(fit), type = 'l')
+points(fit$coef[1], fit$coef[2])
+}
+\keyword{dplot}
+\keyword{ts}
+
diff --git a/man/ellipse.glm.Rd b/man/ellipse.glm.Rd
new file mode 100644
index 0000000..b5420f5
--- /dev/null
+++ b/man/ellipse.glm.Rd
@@ -0,0 +1,67 @@
+\name{ellipse.glm}
+\alias{ellipse.glm}
+\title{
+Outline an approximate pairwise confidence region 
+}
+\description{
+This function produces the ellipsoidal outline of an approximate 
+pairwise confidence region for a generalized linear model fit.
+}
+\usage{
+\method{ellipse}{glm}(x, which = c(1, 2), level = 0.95, t, npoints = 100, 
+        dispersion, \dots)
+}
+\arguments{
+\item{x}{
+The first argument should be a \code{glm} object, usually resulting from a call
+to \code{glm()}.
+}
+\item{which}{
+Which selects the pair of parameters to be plotted.  The default is the
+first two.
+}
+\item{level}{
+The confidence level of the region.  Default 95\%.
+}
+\item{t}{
+The t statistic on the boundary of the ellipse.  For Binomial or Poisson
+families, \code{sqrt(qchisq(level, 2))} is used; for other distributions,
+\code{sqrt(2*qf(level, 2, df))} where \code{df} is the residual degrees of freedom.
+}
+\item{npoints}{
+How many points to return in the ellipse.
+}
+\item{dispersion}{
+The value of dispersion to use.  If specified, it is treated as fixed,
+and the chi-square limits for \code{t} are used. If missing, it is 
+taken from \code{summary(x)}.
+}
+\item{\dots}{
+Other \code{ellipse.default} parameters may also be used.
+}}
+\value{
+A matrix with columns named according to which to outline the confidence region.
+}
+\details{
+The summary function is used to obtain the approximate covariance matrix of the
+fitted parameters, the dispersion estimate, and the degrees of freedom.
+}
+\seealso{
+\code{\link{ellipse.default}}
+}
+\examples{     
+## Dobson (1990) Page 93: Randomized Controlled Trial :
+
+     counts <- c(18,17,15,20,10,20,25,13,12)
+     outcome <- gl(3,1,9)
+     treatment <- gl(3,3)
+     glm.D93 <- glm(counts ~ outcome + treatment, family=poisson())
+
+# Plot an approximate 95 \% confidence region for the two Outcome parameters
+
+	plot(ellipse(glm.D93, which = c(2,3)), type = 'l')
+	points(glm.D93$coefficients[2], glm.D93$coefficients[3])
+}
+\keyword{dplot}
+\keyword{regression}
+
diff --git a/man/ellipse.lm.Rd b/man/ellipse.lm.Rd
new file mode 100644
index 0000000..7a97563
--- /dev/null
+++ b/man/ellipse.lm.Rd
@@ -0,0 +1,51 @@
+\name{ellipse.lm}
+\alias{ellipse.lm}
+\title{
+Outline a pairwise confidence region for a linear model fit.
+}
+\description{
+This function produces the ellipsoidal outline of a pairwise confidence
+region for a linear model fit.
+}
+\usage{
+\method{ellipse}{lm}(x, which = c(1, 2), level = 0.95, 
+    t = sqrt(2 * qf(level, 2, x$df.residual)), \dots)
+}
+\arguments{
+\item{x}{
+The first argument should be an \code{lm} object, usually resulting from a call
+to \code{lm()}.
+}
+\item{which}{
+Which selects the pair of parameters to be plotted.  The default is the
+first two.
+}
+\item{level}{
+The confidence level of the region.  Default 95\%.
+}
+\item{t}{
+The t statistic on the boundary of the ellipse.
+}
+\item{\dots}{
+Other \code{ellipse.default} parameters may also be used.
+}}
+\value{
+A matrix with columns \code{x} and \code{y} to outline the confidence region.
+}
+\details{
+The summary function is used to obtain the covariance matrix of the
+fitted parameters.
+}
+\seealso{
+\code{\link{ellipse.default}}
+}
+\examples{
+# Plot the estimate and joint 90\% confidence region for the displacement and cylinder
+# count linear coefficients in the mtcars dataset
+data(mtcars)
+fit <- lm(mpg ~ disp + cyl , mtcars)
+plot(ellipse(fit, which = c('disp', 'cyl'), level = 0.90), type = 'l')
+points(fit$coefficients['disp'], fit$coefficients['cyl'])
+}
+\keyword{dplot}
+\keyword{regression}
diff --git a/man/ellipse.nls.Rd b/man/ellipse.nls.Rd
new file mode 100644
index 0000000..a706005
--- /dev/null
+++ b/man/ellipse.nls.Rd
@@ -0,0 +1,54 @@
+\name{ellipse.nls}
+\alias{ellipse.nls}
+\title{
+Outline an approximate pairwise confidence region 
+}
+\description{
+This function produces the ellipsoidal outline of an approximate 
+pairwise confidence region for a nonlinear model fit.
+}
+\usage{
+\method{ellipse}{nls}(x, which = c(1, 2), level = 0.95, 
+    t = sqrt(2 * qf(level, 2, s$df[2])), \dots)
+}
+\arguments{
+\item{x}{
+The first argument should be an \code{nls} object, usually resulting from a call
+to \code{nls()}.
+}
+\item{which}{
+Which selects the pair of parameters to be plotted.  The default is the
+first two.
+}
+\item{level}{
+The confidence level of the region.  Default 95\%.
+}
+\item{t}{
+The t statistic on the boundary of the ellipse.
+}
+\item{\dots}{
+Other \code{ellipse.default} parameters may also be used.
+}}
+\value{
+A matrix with columns \code{x} and \code{y} to outline the confidence region.
+}
+\details{
+The summary function is used to obtain the approximate covariance matrix of the
+fitted parameters.
+}
+\seealso{
+\code{\link{ellipse.default}}, \code{\link{ellipse.profile}}
+}
+\examples{
+# Plot an approximate 95\% confidence region for the weight and displacement
+# parameters in the Michaelis Menten model
+data(Puromycin)
+fit <- nls(rate ~ Vm*conc/(K + conc), data = Puromycin, subset = state=="treated", 
+    start = list(K = 0.05, Vm = 200))
+plot(ellipse(fit,which=c('Vm','K')), type = 'l')
+params <- fit$m$getPars()
+points(params['Vm'],params['K'])
+}
+\keyword{dplot}
+\keyword{nonlinear}
+
diff --git a/man/ellipse.profile.Rd b/man/ellipse.profile.Rd
new file mode 100644
index 0000000..fa95eec
--- /dev/null
+++ b/man/ellipse.profile.Rd
@@ -0,0 +1,70 @@
+\name{ellipse.profile}
+\alias{ellipse.profile}
+\title{
+Pairwise profile sketch
+}
+\description{
+This routine approximates a contour of a function based on the profile
+of that function.
+}
+\usage{
+\method{ellipse}{profile}(x, which = c(1, 2), level = 0.95, t = sqrt(qchisq(level, 2)), 
+    npoints = 100, \dots)
+}
+\arguments{
+\item{x}{
+An object of class \code{\link{profile}}, e.g. from 
+\link[MASS:confint]{profile.glm} in the MASS package.
+}
+\item{which}{
+Which pair of parameters to use.
+}
+\item{level}{
+The \code{ellipse.profile} function defaults assume that the profiled
+function is -2 times the log likelihood of a regular model. 
+With this assumption the \code{level} argument
+specifies the confidence level for an asymptotic confidence region.
+}
+\item{t}{
+The square root of the value to be contoured.
+}
+\item{npoints}{
+How many points to use in the ellipse.
+}
+\item{\dots}{
+Extra arguments are not used.
+}
+}
+\value{
+An \code{npoints} x \code{2} matrix with columns having the chosen parameter names, 
+which approximates a contour of the function that was profiled.
+}
+\details{
+This function uses the 4 point approximation to the contour as described
+in Appendix 6 of Bates and Watts (1988).  It produces the exact contour for
+quadratic surfaces, and good approximations for mild deviations from
+quadratic.  If the surface is multimodal, the algorithm is likely to
+produce nonsense.
+}
+\references{
+Bates and Watts (1988) Nonlinear Regression Analysis \& its Applications
+}
+\seealso{
+\code{\link{profile}}, \code{\link{ellipse.nls}}
+}
+\examples{
+# Plot an approximate 95\% confidence region for the Puromycin
+# parameters Vm and K, and overlay the ellipsoidal region
+
+data(Puromycin)
+Purboth <- nls(formula = rate ~ ((Vm + delV * (state == "treated"))
+  * conc)/(K + conc), data = Puromycin,
+  start = list(Vm = 160, delV = 40, K = 0.05))
+Pur.prof <- profile(Purboth)
+plot(ellipse(Pur.prof, which = c('Vm', 'K')), type = 'l')
+lines(ellipse(Purboth, which = c('Vm', 'K')), lty = 2)
+params <- Purboth$m$getPars()
+points(params['Vm'],params['K'])
+}
+\keyword{dplot}
+\keyword{models}
diff --git a/man/ellipse.profile.glm.Rd b/man/ellipse.profile.glm.Rd
new file mode 100644
index 0000000..b51659f
--- /dev/null
+++ b/man/ellipse.profile.glm.Rd
@@ -0,0 +1,82 @@
+\name{ellipse.profile.glm}
+\alias{ellipse.profile.glm}
+\title{
+Pairwise profile sketch	for GLM profiles
+}
+\description{
+This routine approximates a pairwise confidence region for a glm
+model.
+}
+\usage{
+\method{ellipse}{profile.glm}(x, which = c(1, 2), level = 0.95, t, 
+    npoints = 100, dispersion, \dots)
+}
+\arguments{
+\item{x}{
+An object of class \code{\link[MASS]{profile.glm}}.
+}
+\item{which}{
+Which pair of parameters to use.
+}
+\item{level}{
+The \code{level} argument
+specifies the confidence level for an asymptotic confidence region.
+}
+\item{t}{
+The square root of the value to be contoured.  By default, this is \code{qchisq(level, 2)}
+for models with fixed dispersion (i.e. binomial and Poisson), and \code{2 * qf(level, 2, df)} for other models,
+where \code{df} is the residual degrees of freedom.
+}
+\item{npoints}{
+How many points to use in the ellipse.
+}
+\item{dispersion}{
+If specified, fixed dispersion is assumed, otherwise the dispersion is taken from the model.
+}
+\item{\dots}{
+Extra parameters which are not used (for compatibility with the generic).
+}
+}
+\value{
+An \code{npoints} x \code{2} matrix with columns having the chosen parameter names, 
+which approximates a contour of the function that was profiled.
+}
+\details{
+This function uses the 4 point approximation to the contour as described
+in Appendix 6 of Bates and Watts (1988).  It produces the exact contour for
+quadratic surfaces, and good approximations for mild deviations from
+quadratic.  If the surface is multimodal, the algorithm is likely to
+produce nonsense.
+}
+\references{
+Bates and Watts (1988) Nonlinear Regression Analysis \& its Applications
+}
+\seealso{
+\code{\link{profile}}, \code{\link{glm}}, \code{\link{ellipse.glm}}
+}
+\examples{
+## MASS has a pairs.profile function that conflicts with ours, so
+## do a little trickery here
+	 noMASS <- is.na(match('package:MASS', search()))
+	 if (noMASS) require(MASS)
+
+## Dobson (1990) Page 93: Randomized Controlled Trial :
+
+     counts <- c(18,17,15,20,10,20,25,13,12)
+     outcome <- gl(3,1,9)
+     treatment <- gl(3,3)
+     glm.D93 <- glm(counts ~ outcome + treatment, family=poisson())
+
+##  Plot an approximate 95\% confidence region for the two outcome variables
+     prof.D93 <- profile(glm.D93)
+     plot(ellipse(prof.D93, which = 2:3), type = 'l')
+     lines(ellipse(glm.D93, which = 2:3), lty = 2)
+     params <- glm.D93$coefficients
+     points(params[2],params[3])
+     
+##  Clean up our trickery
+	 if (noMASS) detach('package:MASS')
+	 
+}
+\keyword{dplot}
+\keyword{models}
diff --git a/man/ellipse.profile.nls.Rd b/man/ellipse.profile.nls.Rd
new file mode 100644
index 0000000..132c6b0
--- /dev/null
+++ b/man/ellipse.profile.nls.Rd
@@ -0,0 +1,66 @@
+\name{ellipse.profile.nls}
+\alias{ellipse.profile.nls}
+\title{
+Pairwise profile sketch
+}
+\description{
+This routine approximates a pairwise confidence region for a nonlinear regression
+model.
+}
+\usage{
+\method{ellipse}{profile.nls}(x, which = c(1, 2), level = 0.95, t = sqrt(2 * qf(level, 2, attr(x, "summary")$df[2])), 
+    npoints = 100, \dots)
+}
+\arguments{
+\item{x}{
+An object of class \code{\link{profile.nls}}.
+}
+\item{which}{
+Which pair of parameters to use.
+}
+\item{level}{
+The \code{level} argument
+specifies the confidence level for an asymptotic confidence region.
+}
+\item{t}{
+The square root of the value to be contoured.
+}
+\item{npoints}{
+How many points to use in the ellipse.
+}
+\item{\dots}{
+Extra parameters which are not used (for compatibility with the generic).
+}
+}
+\value{
+An \code{npoints} x \code{2} matrix with columns having the chosen parameter names, 
+which approximates a contour of the function that was profiled.
+}
+\details{
+This function uses the 4 point approximation to the contour as described
+in Appendix 6 of Bates and Watts (1988).  It produces the exact contour for
+quadratic surfaces, and good approximations for mild deviations from
+quadratic.  If the surface is multimodal, the algorithm is likely to
+produce nonsense.
+}
+\references{
+Bates and Watts (1988) Nonlinear Regression Analysis \& its Applications
+}
+\seealso{
+\code{\link{profile}}, \code{\link{ellipse.nls}}
+}
+\examples{
+# Plot an approximate 95\% confidence region for the Puromycin
+# parameters Vm and K, and overlay the ellipsoidal region
+data(Puromycin)
+Purboth <- nls(formula = rate ~ ((Vm + delV * (state == "treated"))
+  * conc)/(K + conc), data = Puromycin,
+  start = list(Vm = 160, delV = 40, K = 0.05))
+Pur.prof <- profile(Purboth)
+plot(ellipse(Pur.prof, which = c('Vm', 'K')), type = 'l')
+lines(ellipse(Purboth, which = c('Vm', 'K')), lty = 2)
+params <- Purboth$m$getPars()
+points(params['Vm'],params['K'])
+}
+\keyword{dplot}
+\keyword{models}
diff --git a/man/pairs.profile.Rd b/man/pairs.profile.Rd
new file mode 100644
index 0000000..77ecb00
--- /dev/null
+++ b/man/pairs.profile.Rd
@@ -0,0 +1,74 @@
+\name{pairs.profile}
+\alias{pairs.profile}
+\title{
+Profile pairs
+}
+\description{
+This function produces pairwise plots of profile traces, profile
+sketches, and ellipse approximations to confidence intervals.
+}
+\usage{
+\method{pairs}{profile}(x, labels = c(names(x), "Profile tau"), panel = lines, invert = TRUE, 
+    plot.tau = TRUE, plot.trace = TRUE, plot.sketch = TRUE, 
+	plot.ellipse = FALSE, level = 0.95, \dots)
+}
+\arguments{
+\item{x}{
+An object of class \code{profile}, generally the result of the \code{profile()}
+function.
+}
+\item{labels}{
+The labels to use for each variable.  These default to the variable
+names.
+}
+\item{panel}{
+The function to use to draw the sketch in each panel.
+}
+\item{invert}{
+Whether to swap the axes so things look better.
+}
+\item{plot.tau}{
+Whether to do the profile tau (profile t) plots.
+}
+\item{plot.trace}{
+Whether to do the profile trace plots.
+}
+\item{plot.sketch}{
+Whether to do the profile sketch plots.
+}
+\item{plot.ellipse}{
+Whether to do the ellipse approximations.
+}
+\item{level}{
+The nominal confidence level for the profile sketches and ellipses.
+}
+\item{\dots}{
+Other plotting parameters.
+}}
+\section{Side Effects}{
+Produces a plot on the current device for each pair of variables in the
+profile object.
+}
+\details{
+This function implements the plots used in Bates and Watts (1988) for
+nonlinear regression diagnostics.
+}
+\references{
+Bates and Watts (1988), Nonlinear Regression Analysis \& its
+Applications.
+}
+\seealso{
+\code{\link{profile}}, \code{\link{ellipse.profile}}, \code{\link{ellipse.nls}}
+}
+\examples{
+ # Plot everything for the Puromycin data
+ data(Puromycin)
+ Purboth <- nls(formula = rate ~ ((Vm + delV * (state == "treated"))
+   * conc)/(K + conc), data = Puromycin,
+   start = list(Vm = 160, delV = 40, K = 0.05))
+ Pur.prof <- profile(Purboth)
+ pairs(Pur.prof, plot.ellipse = TRUE)
+}
+\keyword{dplot}
+\keyword{regression}
+\keyword{nonlinear}
diff --git a/man/plotcorr.Rd b/man/plotcorr.Rd
new file mode 100644
index 0000000..147a728
--- /dev/null
+++ b/man/plotcorr.Rd
@@ -0,0 +1,81 @@
+\name{plotcorr}
+\alias{plotcorr}
+\title{
+Plot correlation matrix ellipses
+}
+\description{
+This function plots a correlation matrix using ellipse-shaped glyphs for
+each entry.  The ellipse represents a level curve of the density of a
+bivariate normal with the matching correlation.
+}
+\usage{
+plotcorr(corr, outline = TRUE, col = 'grey', numbers = FALSE, type = c("full","lower","upper"),
+	diag = (type == "full"), bty = "n", axes = FALSE, xlab = "", ylab = "", asp = 1,
+	cex.lab = par("cex.lab"), cex = 0.75*par("cex"), mar = 0.1 + c(2,2,4,2), ...)
+}
+\arguments{
+\item{corr}{
+A matrix containing entries between \code{-1} and \code{1} to be plotted as
+correlations.
+}
+\item{outline}{
+Whether the ellipses should be outlined in the default colour.
+}
+\item{col}{
+Which colour(s) to use to fill the ellipses.
+}
+\item{numbers}{
+Whether to plot numerical correlations in place of ellipses.  If
+numbers is \code{TRUE}, then the correlations will be rounded to a single decimal
+place and placed on the plot.
+}
+\item{type}{Character. Plot \code{"full"} matrix or just \code{"upper"} or
+  \code{"lower"} triangular part of it.}
+\item{diag}{Logical. Plot diagonal elements or not. }
+\item{bty, axes, xlab, ylab, asp, mar, cex.lab, ...}{Graphical parameters
+which will be passed to \code{\link{plot}} when plotting.}
+\item{cex}{Graphical parameter
+which will be passed to \code{\link{text}} when plotting.}
+}
+\details{
+The ellipses being plotted will be tangent to a unit character square,
+with the shape chosen to match the required correlation.  If \code{numbers = FALSE},
+the \code{col} vector will be recycled to colour each of the ellipses; if
+\code{TRUE}, it will be ignored.
+}
+\references{
+Murdoch, D.J. and Chow, E.D. (1996). A graphical display of large
+correlation matrices. The American Statistician 50, 178-180.
+}
+\seealso{
+\code{\link{ellipse}}
+}
+\author{Duncan Murdoch; Gregor Gorjanc suggested the \code{type} and \code{diag}
+options.}
+\examples{
+save.par <- par(ask = interactive())
+
+# Plot the correlation matrix for the mtcars data full model fit 
+data(mtcars)
+fit <- lm(mpg ~ ., mtcars)
+plotcorr(summary(fit, correlation = TRUE)$correlation)
+
+# Plot a second figure with numbers in place of the
+# ellipses
+plotcorr(summary(fit, correlation = TRUE)$correlation, numbers = TRUE)
+
+# Colour the ellipses to emphasize the differences.  The color range
+# is based on RColorBrewer's Reds and Blues (suggested by Gregor Gorjanc)
+
+corr.mtcars <- cor(mtcars)
+ord <- order(corr.mtcars[1,])
+xc <- corr.mtcars[ord, ord]
+colors <- c("#A50F15","#DE2D26","#FB6A4A","#FCAE91","#FEE5D9","white",
+            "#EFF3FF","#BDD7E7","#6BAED6","#3182BD","#08519C")   
+plotcorr(xc, col=colors[5*xc + 6])
+
+plotcorr(xc, col=colors[5*xc + 6], type = "upper")
+plotcorr(xc, col=colors[5*xc + 6], type = "lower", diag = TRUE)
+par(save.par)
+}
+\keyword{hplot}

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/r-cran-ellipse.git



More information about the debian-med-commit mailing list