21
Reaching the 99% Relevant and useful statistical software for ecologists Aaron M. Ellison Harvard University, Harvard Forest

Aaron Ellison Keynote: Reaching the 99%

Embed Size (px)

Citation preview

Page 1: Aaron Ellison Keynote: Reaching the 99%

Reaching the 99% Relevant and useful statistical software for ecologists

Aaron M. Ellison

Harvard University, Harvard Forest

Page 2: Aaron Ellison Keynote: Reaching the 99%
Page 3: Aaron Ellison Keynote: Reaching the 99%
Page 4: Aaron Ellison Keynote: Reaching the 99%
Page 5: Aaron Ellison Keynote: Reaching the 99%
Page 6: Aaron Ellison Keynote: Reaching the 99%
Page 7: Aaron Ellison Keynote: Reaching the 99%
Page 8: Aaron Ellison Keynote: Reaching the 99%
Page 9: Aaron Ellison Keynote: Reaching the 99%

All ESA papers R SAS JMP SPSS WinBugs OpenBugs JAGS Minitab Ecopath PEcAn Kepler INLA

05

00

10

00

15

00

Page 10: Aaron Ellison Keynote: Reaching the 99%

pomp (requires methods, mvtnorm, subplex, deSolve)

rjags (requires coda)

rINLA (requires sp; recommends numDeriv, Rgraphviz, fields, rgl, mvtnorm, multicore, pixmap)

rstan (requires Rcpp, Inline; also C++ compiler)

pymc PyStan

Page 11: Aaron Ellison Keynote: Reaching the 99%
Page 12: Aaron Ellison Keynote: Reaching the 99%
Page 13: Aaron Ellison Keynote: Reaching the 99%

changes to the master.txt Assigned 15 months to cellulose 1bx,3bx,6ad,6bd,7ac, and 3 months to

cellulose 7bd with missing month value. This means each subplot is

sampled in every time period.

Changed all "dc" subplots to "bc", since those were missing from all

plot 5. 2008-2010

2014

2012

Page 14: Aaron Ellison Keynote: Reaching the 99%
Page 15: Aaron Ellison Keynote: Reaching the 99%
Page 16: Aaron Ellison Keynote: Reaching the 99%
Page 17: Aaron Ellison Keynote: Reaching the 99%

filled.contour3 <- function (x = seq(0, 1, length.out = nrow(z)),

y = seq(0, 1, length.out = ncol(z)), z, xlim = range(x, finite = TRUE),

ylim = range(y, finite = TRUE), zlim = range(z, finite = TRUE), levels = pretty(zlim, nlevels), nlevels = 20, color.palette = cm.colors,

col = color.palette(length(levels) - 1), plot.title, plot.axes, key.title, key.axes, asp = NA, xaxs = "i", yaxs = "i", las = 1,

axes = TRUE, frame.plot = axes,mar, ...)

{

# modification by Ian Taylor of the filled.contour function

# to remove the key and facilitate overplotting with contour()

# further modified by Carey McGilliard and Bridget Ferris

# to allow multiple plots on one page

if (missing(z)) {

if (!missing(x)) { if (is.list(x)) {

z <- x$z

y <- x$y

x <- x$x

}

else { z <- x

x <- seq.int(0, 1, length.out = nrow(z))

}

}

else stop("no 'z' matrix specified")

}

else if (is.list(x)) {

y <- x$y x <- x$x

}

if (any(diff(x) <= 0) || any(diff(y) <= 0))

stop("increasing 'x' and 'y' values expected")

# mar.orig <- (par.orig <- par(c("mar", "las", "mfrow")))$mar

# on.exit(par(par.orig))

# w <- (3 + mar.orig[2]) * par("csi") * 2.54

# par(las = las)

# mar <- mar.orig

plot.new() # par(mar=mar)

plot.window(xlim, ylim, "", xaxs = xaxs, yaxs = yaxs, asp = asp)

if (!is.matrix(z) || nrow(z) <= 1 || ncol(z) <= 1)

stop("no proper 'z' matrix specified") if (!is.double(z))

storage.mode(z) <- "double"

.Internal(filledcontour(as.double(x), as.double(y), z, as.double(levels),

col = col))

#AME 1/15/2014: in R 3.0, should be

# .filled.contour(as.double(x), as.double(y), z, as.double(levels),

# col = col)

if (missing(plot.axes)) {

if (axes) {

title(main = "", xlab = "", ylab = "")

Axis(x, side = 1)

Axis(y, side = 2)

}

}

else plot.axes

if (frame.plot)

box()

if (missing(plot.title))

title(...)

else plot.title

invisible()

}

This happens if you use a non-standard API.

You are allowed to do that, but cannot expect

that it is maintained.

The C code underlying base graphics has been

migrated to the graphics package (and hence

no longer uses .Internal() calls).

Page 18: Aaron Ellison Keynote: Reaching the 99%

Reproducible Traceable

Usable Comparable

Page 19: Aaron Ellison Keynote: Reaching the 99%
Page 20: Aaron Ellison Keynote: Reaching the 99%

© L

on

Sch

lein

ing

Page 21: Aaron Ellison Keynote: Reaching the 99%