<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>From the bottom of the heap</title>
	<atom:link href="https://ucfagls.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://ucfagls.wordpress.com</link>
	<description>The musings of a geographer</description>
	<lastBuildDate>Fri, 17 Feb 2012 23:49:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='ucfagls.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>https://s-ssl.wordpress.com/i/buttonw-com.png</url>
		<title>From the bottom of the heap</title>
		<link>https://ucfagls.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="https://ucfagls.wordpress.com/osd.xml" title="From the bottom of the heap" />
	<atom:link rel='hub' href='https://ucfagls.wordpress.com/?pushpress=hub'/>
		<item>
		<title>I&#8217;m on peer review strike!</title>
		<link>https://ucfagls.wordpress.com/2012/01/18/im-on-peer-review-strike/</link>
		<comments>https://ucfagls.wordpress.com/2012/01/18/im-on-peer-review-strike/#comments</comments>
		<pubDate>Wed, 18 Jan 2012 11:59:26 +0000</pubDate>
		<dc:creator>ucfagls</dc:creator>
				<category><![CDATA[Science]]></category>
		<category><![CDATA[Politics]]></category>
		<category><![CDATA[OpenAccess]]></category>
		<category><![CDATA[RWA]]></category>
		<category><![CDATA[Publishing]]></category>
		<category><![CDATA[Research Works Act]]></category>
		<category><![CDATA[Journals]]></category>
		<category><![CDATA[Open Access]]></category>
		<category><![CDATA[Peer review]]></category>

		<guid isPermaLink="false">http://ucfagls.wordpress.com/?p=295</guid>
		<description><![CDATA[There has been a lot of discussion on the interweb about the support for legislation in the US by the major academic publishers that would place stifling restrictions on access to Government-funded science outputs published in their journals. In effect, &#8230; <a href="https://ucfagls.wordpress.com/2012/01/18/im-on-peer-review-strike/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ucfagls.wordpress.com&amp;blog=14744973&amp;post=295&amp;subd=ucfagls&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div class="mceTemp"></div>
<p><a href="http://commons.wikipedia.org/wiki/File:Open_Access_PLoS.svg"><img class="zemanta-img-inserted zemanta-img-configured aligncenter" title="Open Access logo and text (Source: www.plos.org)" src="http://upload.wikimedia.org/wikipedia/commons/thumb/f/f3/Open_Access_PLoS.svg/300px-Open_Access_PLoS.svg.png" alt="English: Open Access logo and text" width="300" height="120" /></a></p>
<p>There has been a lot of discussion on the interweb about the support for legislation in the US by the major academic publishers that would place stifling restrictions on access to Government-funded science outputs published in their journals. In effect, the <a title="Research Works Act at Wikipedia" href="http://en.wikipedia.org/wiki/Research_Works_Act">Research Works Act</a> would hand these same wealthy publishers a licence to print money on the back of tax payer-funded research and the tax payer-funded efforts of the scientists required to peer review the manuscripts. We the scientists do the research and peer review the manuscripts, the tax payer pays for all of this and yet the academic publishers charge upwards of £30 to access a single article and hundreds to tens of thousands of pounds for individuals and institutions to subscribe to their journals. All the publishers add is</p>
<ol>
<li>the infrastructure that allows them to track papers in peer review (which is largely web-based and rubbish),</li>
<li>the typesetting of manuscripts into final journal style form, and</li>
<li>the websites and infrastructure allowing people to get access to journals electronically (for the proper fee of course).</li>
</ol>
<p>The major publishers make <del datetime="2012-01-19T09:51:35+00:00">20-30%</del> 30-40% profit-margins on their revenues yet contribute little.</p>
<p>And yet they want more&#8230;! I&#8217;m not suggesting that the publishers should add their value without monetary reward, but they are being disingenuous when they claim to be adding significant value, which they need to recoup, to the manuscripts we supply.</p>
<p>So from today I am on strike when it comes to performing peer-review for journals from the stables of the major academic publishers. I will only review for journals that release all papers under Open Access frameworks. As such, I will now only be submitting papers to Open Access-only journals.<span id="more-295"></span></p>
<p>My first action was to decline a review request that came in a day or two ago. I was waiting on a response from John Wiley in the US before deciding whether to accept the invite or not, but as none was forthcoming I emailed the handling editor this morning to decline. Below is the email I sent setting out my reasons for my action.</p>
<pre style="font-size:10pt;">Dear XXXXX,

Apologies for the delay in replying. I was waiting on a response from
John Wiley to some queries I had about their position with regard to the
Research Works Act (RWA) in the US and Open Access to research papers in
general. I am very concerned that large academic publishers are actively
pursuing an agenda that will severely restrict the ability for
scientists around the world to conduct science in an environment of open
exchange of ideas and results.

In particular the RWA would if passed give these publishers effective
copyright over the final published record of federally-funded research,
allowing them rights to charge exorbitant fees for access to these
papers and journals, further deepening their already deep pockets.

Having not received any form of response from John Wiley in the US I am
now refusing to perform peer review of papers submitted to their
journals to demonstrate my general disgust at their support for stifling
open access to scientific papers. These publishers rely upon the free
(to them, but not to the tax payers that pay the salaries of scientists
doing the reviews) provision of peer review and I will no longer perform
such duties whilst the publishers make huge profits (upwards of 30% of
revenues) feeding off our generosity.As such I must respectfully decline
your invitation to review manuscript Ms# o20360.

Please feel free to pass this message on to Prof. XXXXX XXXXX, XXXXX
Editor in Chief, and your publisher should you so desire.

Yours,

Dr. Gavin Simpson</pre>
<p>Not sure what effect, if any, this will have; I am but a small fish in a very big pond. If more of my colleagues adopt similar strategies to handling peer review requests from the major publishers perhaps they will get the message.</p>
<p>I&#8217;ll let you know how things progress and post any response I get from the publisher or the editor of the journal in question.</p>
<p><strong>Update:</strong> The managing editor of the journal in question has replied to say that they will be passing my comments on to the journal editor-in-chief and the publisher. Will let you know if I hear anything further.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ucfagls.wordpress.com/295/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ucfagls.wordpress.com/295/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ucfagls.wordpress.com/295/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ucfagls.wordpress.com/295/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ucfagls.wordpress.com/295/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ucfagls.wordpress.com/295/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ucfagls.wordpress.com/295/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ucfagls.wordpress.com/295/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ucfagls.wordpress.com/295/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ucfagls.wordpress.com/295/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ucfagls.wordpress.com/295/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ucfagls.wordpress.com/295/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ucfagls.wordpress.com/295/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ucfagls.wordpress.com/295/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ucfagls.wordpress.com&amp;blog=14744973&amp;post=295&amp;subd=ucfagls&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://ucfagls.wordpress.com/2012/01/18/im-on-peer-review-strike/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
	
		<media:content url="https://secure.gravatar.com/avatar/af0cc2f46bd679e92029bc489cdde955?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ucfagls</media:title>
		</media:content>

		<media:content url="http://upload.wikimedia.org/wikipedia/commons/thumb/f/f3/Open_Access_PLoS.svg/300px-Open_Access_PLoS.svg.png" medium="image">
			<media:title type="html">Open Access logo and text (Source: www.plos.org)</media:title>
		</media:content>
	</item>
		<item>
		<title>New version of analogue (0.8-0)</title>
		<link>https://ucfagls.wordpress.com/2012/01/12/new-version-of-analogue-0-8-0/</link>
		<comments>https://ucfagls.wordpress.com/2012/01/12/new-version-of-analogue-0-8-0/#comments</comments>
		<pubDate>Thu, 12 Jan 2012 10:39:25 +0000</pubDate>
		<dc:creator>ucfagls</dc:creator>
				<category><![CDATA[analogue]]></category>
		<category><![CDATA[R]]></category>

		<guid isPermaLink="false">http://ucfagls.wordpress.com/?p=271</guid>
		<description><![CDATA[Yesterday I pushed an update of my analogue package to CRAN. The new version is 0.8-0 and contains some new functions, several bug fixes and a major change arising from additions to R 2.14.x requiring all packages to have a &#8230; <a href="https://ucfagls.wordpress.com/2012/01/12/new-version-of-analogue-0-8-0/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ucfagls.wordpress.com&amp;blog=14744973&amp;post=271&amp;subd=ucfagls&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Yesterday I pushed an update of my <a title="analogue website" href="http://analogue.r-forge.r-project.org/">analogue</a> package to <a title="analogue page on CRAN" href="http://cran.at.r-project.org/web/packages/analogue/index.html">CRAN</a>. The new version is 0.8-0 and contains some new functions, several bug fixes and a major change arising from additions to R 2.14.x requiring all packages to have a namespace. analogue now has its own namespace rather than relying on the one R would automagically generate if it weren&#8217;t provided.</p>
<p>0.8-0 is a moderate update to analogue containing some new functionality, some of which is there for testing/experimentation (like the fancy principal components regression). The main user visible changes are:</p>
<ul>
<li><code>crossval()</code> new function to perform leave-one-out, k-fold, n k-fold, and bootstrap cross-validation on transfer function models. A method for wa() models is provided.</li>
<li><code>pcr()</code> performs principal components regression. Designed to allow transformations in the spirit of <a href="http://dx.doi.org/10.1007/s004420100716">Legendre &amp; Gallagher (2001, Oecologia)</a> that allow <a class="zem_slink" title="Principal component analysis" href="http://en.wikipedia.org/wiki/Principal_component_analysis" rel="wikipedia">PCA</a> to be usefully applied to species data.</li>
<li><code>varExpl()</code> and <code>gradientDist()</code> are two new functions that extract the amount or variance explained by ordinations axes and the distances or locations along <a class="zem_slink" title="Ordination" href="http://en.wikipedia.org/wiki/Ordination" rel="wikipedia">ordination</a> axes. Methods currently available for <code>cca()</code> and <code>prcurve()</code> objects.</li>
<li><code>weightedCor()</code> implements one of the tests from <a href="http://dx.doi.org/10.1016/j.quascirev.2011.03.002">Telford &amp; Birks (2011, QSR)</a> based on the weighted correlation of WA optima and constrained ordination species scores.</li>
<li><code>Stratiplot()</code> now handles absolute data better following a few bug fixes and general improvements in the underlying code. <code>panel.Stratiplot()</code> gains new arguments <code>gridh</code> and <code>gridv</code> to allow user control of the grid lines on panel if plotted.</li>
<li><code>mat()</code> gains a new argument `kmax` which can be used to limit the number of analogues considered as models when fitting MAT transfer functions. By default, <code>mat()</code> considers models with 1 through to n-1 analogues (n = number of sites). <code>kmax</code> can control this upper limit which will speed up fitting models, especially for large training sets. Invariably one wouldn&#8217;t want to average over entire training sets to produce predictions, or even over large numbers of analogues.</li>
</ul>
<p><span id="more-271"></span><br />
There were also many bug fixes and minor enhancements. Full details can be found in the ChangeLog, the relevant portion of which is appended below. Several development releases were made on <a title="Analogue project on R-forge" href="https://r-forge.r-project.org/projects/analogue/">R-forge</a> after the 0.7-0 release to CRAN. These development versions were not publicly released, but the changes they implemented are all present in 0.8-0 of analogue.</p>
<pre style="font-size:9pt;">Version 0.8-0

	* Updated Example test checks and packaged for release to CRAN
	Jan 11, 2012.

Version 0.7-7

	* mat: new argument `kmax` can be used to limit the number of
	analogues considered as models when fitting MAT transfer
	functions. By default, `mat()` considers models with 1 through
	to n-1 analogues (n = number of sites). `kmax` can control this
	upper limit which will speed up fitting models, especially for
	large training sets. Invariably one wouldn't want to average
	over entire training sets to produce predictions, or even over
	large numbers of analogues. As such I may set an upper limit for
	the default value of `kmax` before this is released to CRAN.

	* cumWmean, cummean: as a result of the above addition of `kmax`,
	these two functions now take a `kmax` argument also. The default
	behaviour is unchanged however.

	* chooseTaxa: `type = "OR"` was not working due to a typo. It
	returned the same as `type = "AND"`.

Version 0.7-6

	* Stratiplot: Handling of absolute data types was broken. Fix
	applied that should allow this to work if there are only
	absolute scale variables or a mix or relative and absolute
	data. All reletaive data should be unaffected.

	* panel.Stratiplot: gains arguments `gridh` and gridv` which
	control the number of horizontal and vertical grid lines used
	on each panel. These correspond to the `h` and `v` arguments of
	`panel.grid` in the Lattice package. The default is `-1` for
	both, which attempts to align the grid lines with the tick marks.

Version 0.7-5

	* weightedCor: implements one of the tests from Telford &amp; Birks
	(2011, QSR) based on the weighted correlation of WA optima and
	constrained ordination species scores. Has a plot method.

	* rdaFit: Non-user (currently) function that implements RDA
	without all of the overhead of vegan::rda. As such it doesn't
	compute PCA axes and does not return all the components described
	by ?cca.object in package vegan. This function is used principally
	in weightedCor(). Has a scores() method. rdaFit() is not
	documented as the exact details of the function and its
	capabilities remain to be determined.

Version 0.7-4

	* gradientDist: new function to extract locations along an
	ordination axis. Methods for prcurve() and cca().

	* varExpl: new function to extract the amount of variance
	explained by ordination axes. Currently methods for prcurve() and
	cca() are available.

	* <a class="zem_slink" title="Namespace" href="http://en.wikipedia.org/wiki/Namespace" rel="wikipedia">Namespace</a>: analogue now has an explicit name space in
	preparation for R 2.14.0-to-be. Hence analogue now depends on
	Vegan &gt;= 1.17-12.

Version 0.7-3

	* pcr: coef(), fitted(), residuals(), eigenvals(), performance(),
	and screeplot() methods added.

Version 0.7-2

	* pcr: new function pcr() performs principal components
	regression. Designed to allow transformations in the spirit of
	Legendre &amp; Gallagher (2001) that allow PCA to be usefully
	applied to species data.

Version 0.7-1

	* crossval: new function to perform leave-one-out, k-fold,
	n k-fold, and bootstrap cross-validation on transfer function
	models. A method for wa() models is provided.
	* tests: package now has a test that the examples continue to
	return correct output.</pre>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ucfagls.wordpress.com/271/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ucfagls.wordpress.com/271/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ucfagls.wordpress.com/271/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ucfagls.wordpress.com/271/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ucfagls.wordpress.com/271/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ucfagls.wordpress.com/271/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ucfagls.wordpress.com/271/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ucfagls.wordpress.com/271/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ucfagls.wordpress.com/271/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ucfagls.wordpress.com/271/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ucfagls.wordpress.com/271/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ucfagls.wordpress.com/271/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ucfagls.wordpress.com/271/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ucfagls.wordpress.com/271/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ucfagls.wordpress.com&amp;blog=14744973&amp;post=271&amp;subd=ucfagls&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://ucfagls.wordpress.com/2012/01/12/new-version-of-analogue-0-8-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="https://secure.gravatar.com/avatar/af0cc2f46bd679e92029bc489cdde955?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ucfagls</media:title>
		</media:content>
	</item>
		<item>
		<title>AGU Fall Meeting Day 3 (Wednesday)</title>
		<link>https://ucfagls.wordpress.com/2011/12/09/agu-fall-meeting-day-3-wednesday/</link>
		<comments>https://ucfagls.wordpress.com/2011/12/09/agu-fall-meeting-day-3-wednesday/#comments</comments>
		<pubDate>Fri, 09 Dec 2011 02:06:07 +0000</pubDate>
		<dc:creator>ucfagls</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Science]]></category>
		<category><![CDATA[Alaska]]></category>
		<category><![CDATA[American Geophysical Union]]></category>
		<category><![CDATA[Moscone Center]]></category>

		<guid isPermaLink="false">http://ucfagls.wordpress.com/?p=260</guid>
		<description><![CDATA[Day 3 was an easier day for me with fewer talks that I wanted to see so I was able to spend a bit of time thinking about work matters and cogitating a bit more on the talks I was &#8230; <a href="https://ucfagls.wordpress.com/2011/12/09/agu-fall-meeting-day-3-wednesday/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ucfagls.wordpress.com&amp;blog=14744973&amp;post=260&amp;subd=ucfagls&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Day 3 was an easier day for me with fewer talks that I wanted to see so I was able to spend a bit of time thinking about work matters and cogitating a bit more on the talks I was listening to. I also spent a large chunk of time in one of the poster sessions, which was very enlightening; it was like an informal talk session with authors presenting their posters ad hoc and groups discussions taking place about the results. (As I write this I have just come from my own poster session and had the same experience; far better than many poster sessions at other meetings.)</p>
<p><span id="more-260"></span></p>
<p>The first talk I attended was on an initiative to map high latitude lakes and provide a data product for scientists. The mapping involved a new algorithm that appeared to perform far better when faced with satellite images of lakes during partial ice-out. The author mentioned that a new product for Alaska had been released a week or so ago and this will be very useful for a project proposal I am currently involved in writing.</p>
<p>The next talk, by a student of Stephen Carpenter and Michael Pace, was something I have been interested in for some time; identifying early warning indicators in ecological communities prior to <a class="zem_slink" title="Regime shift" href="http://en.wikipedia.org/wiki/Regime_shift" rel="wikipedia">regime shift</a>. Several early warning indicators are invoked from theory of <a class="zem_slink" title="Tipping point (climatology)" href="http://en.wikipedia.org/wiki/Tipping_point_%28climatology%29" rel="wikipedia">tipping points</a> and regime shifts</p>
<ul>
<li>increased <a class="zem_slink" title="Autocorrelation" href="http://en.wikipedia.org/wiki/Autocorrelation" rel="wikipedia">autocorrelation</a></li>
<li>increased variance</li>
<li>increased skewness</li>
<li>conditional heteroskedasticty</li>
</ul>
<p>The latter can be thought of as &#8220;autocorrelation&#8221; in the variance of the system. This indicator was demonstrated to be found in data from experimentally manipulated lakes where the fish community was altered. I got plenty of ideas from this talk, with a view to doing similar analyses on palaeoecological data.</p>
<p>I later spent a bit of time in a session focussed on the marine <a class="zem_slink" title="Nitrogen cycle" href="http://en.wikipedia.org/wiki/Nitrogen_cycle" rel="wikipedia">nitrogen cycle</a> over the past few billion years. Not really my area of interest, but plenty of interesting ideas with regard to compound specific N isotope measurements, including information on compound specific pigment isotopes.</p>
<p>I went to a poster session on palaeo records of change in lake ecosystems. I met up with Dave Porinchu, someone I spent a week with in Helsinki at a Cladocera workshop 10 years or so ago. Consumption of a bottle of Talisker comes to mind. I met several other people here too; Yarrow Axford had an interesting poster on chironomid temperature reconstructions in a West Greenland lake for example and I chatted to her for a while about palaeoecological transfer functions, many of which I just don&#8217;t believe even though I teach the theory every year to plenty of palaeoecologists! I also bumped into Simon Goring, whom I&#8217;d had some email correspondence with a year ago regarding a new transfer function methodology he&#8217;d come up with. I joined him and some colleagues for a nice lunch in a local Thai restaurant.</p>
<p>Having had a two-course lunch, I didn&#8217;t need further sustenance and after an email session I headed back to my hotel and set to work on my river water temperature models, squashing an annoying data-processing bug. I set the laptop off data crunching through the multivariate smooth model fitting whilst I slept and now I have something to work with on the flight home so I can finish of my additive modelling paper for river water temperature trend modelling.</p>
<p>And that was day 3&#8230;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ucfagls.wordpress.com/260/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ucfagls.wordpress.com/260/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ucfagls.wordpress.com/260/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ucfagls.wordpress.com/260/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ucfagls.wordpress.com/260/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ucfagls.wordpress.com/260/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ucfagls.wordpress.com/260/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ucfagls.wordpress.com/260/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ucfagls.wordpress.com/260/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ucfagls.wordpress.com/260/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ucfagls.wordpress.com/260/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ucfagls.wordpress.com/260/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ucfagls.wordpress.com/260/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ucfagls.wordpress.com/260/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ucfagls.wordpress.com&amp;blog=14744973&amp;post=260&amp;subd=ucfagls&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://ucfagls.wordpress.com/2011/12/09/agu-fall-meeting-day-3-wednesday/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="https://secure.gravatar.com/avatar/af0cc2f46bd679e92029bc489cdde955?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ucfagls</media:title>
		</media:content>
	</item>
		<item>
		<title>AGU Fall Meeting Day 2</title>
		<link>https://ucfagls.wordpress.com/2011/12/08/agu-fall-meeting-day-2/</link>
		<comments>https://ucfagls.wordpress.com/2011/12/08/agu-fall-meeting-day-2/#comments</comments>
		<pubDate>Thu, 08 Dec 2011 01:16:16 +0000</pubDate>
		<dc:creator>ucfagls</dc:creator>
				<category><![CDATA[Climate Change]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Science]]></category>
		<category><![CDATA[AGU]]></category>
		<category><![CDATA[AGU 2011]]></category>
		<category><![CDATA[communicating science]]></category>
		<category><![CDATA[nitrate]]></category>
		<category><![CDATA[nitrogen]]></category>

		<guid isPermaLink="false">http://ucfagls.wordpress.com/?p=253</guid>
		<description><![CDATA[One of the problems of trying to blog a conference when you are going to session talks and socialising in the evening is keeping up to date with your blogging. Day 2 was a little slower in regard to talks &#8230; <a href="https://ucfagls.wordpress.com/2011/12/08/agu-fall-meeting-day-2/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ucfagls.wordpress.com&amp;blog=14744973&amp;post=253&amp;subd=ucfagls&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div class="mceTemp">
<dl class="wp-caption zemanta-img alignleft">
<dt class="wp-caption-dt"><a href="http://commons.wikipedia.org/wiki/File:Flags_Moscone_Center.jpg"><img class="zemanta-img-inserted zemanta-img-configured" title="English: Colored flags flying high outside the..." src="http://upload.wikimedia.org/wikipedia/commons/thumb/9/9b/Flags_Moscone_Center.jpg/300px-Flags_Moscone_Center.jpg" alt="English: Colored flags flying high outside the..." width="300" height="225" /></a></dt>
</dl>
</div>
<p>One of the problems of trying to blog a conference when you are going to session talks and socialising in the evening is keeping up to date with your blogging. Day 2 was a little slower in regard to talks and I was able to pick to some degree.</p>
<p><span id="more-253"></span></p>
<div class="mceTemp">
<dl class="wp-caption zemanta-img alignleft">
<dt class="wp-caption-dt"><a href="http://commons.wikipedia.org/wiki/File:Arbutus_menziesii-8.jpg"><img class="zemanta-img-inserted zemanta-img-configured" title="English: Pacific Madrone leaf litter. Latina: ..." src="http://upload.wikimedia.org/wikipedia/commons/thumb/f/f4/Arbutus_menziesii-8.jpg/300px-Arbutus_menziesii-8.jpg" alt="English: Pacific Madrone leaf litter. Latina: ..." width="300" height="400" /></a></dt>
</dl>
</div>
<p>Sarah Hobbie gave a nice presentation on decomposition processes in soils and how reactive nitrogen affects decomp rates in leaf litter and <a class="zem_slink" title="Soil carbon" href="http://en.wikipedia.org/wiki/Soil_carbon" rel="wikipedia">soil organic carbon</a>. She distinguished between slow and fast cycling pools of C in both leaf litter and soil organic matter. One of her key findings was that reactive N can increase initial decomp rates in litter but lead to great mass of C in the slow cycling carbon pool. Another key point made however was that exceptions to the various &#8220;rules&#8221; Hobbie presented were manifold in the literature and data.</p>
<p>I attended several other talks but this was more out of general interest and not something I intended making notes on. The Exhibitor floor opened for the first time on Tuesday so I spent a fair amount of time wandering around in looking at the various exhibits. Lunch consisted of an $8.50 ham and cheese sandwich from the stall in the Moscone Center (which wasn&#8217;t worth the money so won&#8217;t be eating there again!)</p>
<p>In the afternoon I attended a couple of talks on a communicating climate science theme. Mike Mann (of Penn State &amp; Real Climate fame) gave an entertaining talk on the climate wars; dispatches from the front lines (and plugged his book of the same name due out on Jan — hmmm his advertising worked&#8230;). Whilst I agreed with the general points of engaging with climate sceptics in their own back yard (new and TV media) to counter their misinformation, I was left with the distinct feeling that had Mann and many of his colleagues engaged sooner and more fully with the skeptics, they&#8217;d have had an easier ride.At least they couldn&#8217;t have hit them once with the &#8220;they aren&#8217;t playing ball&#8221; outcry and have just been left with decrying them over the science, which Mann and colleagues could easily rebut. Openness in science is of prime importance; open data, open code, open methods. We shouldn&#8217;t have anything to hide, no matter how the data/results might be misinterpreted by opening up. We can always address misunderstanding or misinformation from the skeptics and do so in various media as suggested by Mann and do so in a way amenable to the lay person. Anyway, despite my reservations that Mann didn&#8217;t go far enough in his calls for engagement, his was a thoroughly entertaining and thought-provoking talk delivered to a pack auditorium.</p>
<p>After that I did some work and tended the email inbox, before heading off for a pizza and a beer with John Anderson in a small local Pizzeria, just up the hill from our hotel. Bed by 10pm. How Rock and Roll!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ucfagls.wordpress.com/253/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ucfagls.wordpress.com/253/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ucfagls.wordpress.com/253/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ucfagls.wordpress.com/253/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ucfagls.wordpress.com/253/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ucfagls.wordpress.com/253/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ucfagls.wordpress.com/253/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ucfagls.wordpress.com/253/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ucfagls.wordpress.com/253/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ucfagls.wordpress.com/253/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ucfagls.wordpress.com/253/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ucfagls.wordpress.com/253/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ucfagls.wordpress.com/253/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ucfagls.wordpress.com/253/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ucfagls.wordpress.com&amp;blog=14744973&amp;post=253&amp;subd=ucfagls&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://ucfagls.wordpress.com/2011/12/08/agu-fall-meeting-day-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="https://secure.gravatar.com/avatar/af0cc2f46bd679e92029bc489cdde955?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ucfagls</media:title>
		</media:content>

		<media:content url="http://upload.wikimedia.org/wikipedia/commons/thumb/9/9b/Flags_Moscone_Center.jpg/300px-Flags_Moscone_Center.jpg" medium="image">
			<media:title type="html">English: Colored flags flying high outside the...</media:title>
		</media:content>

		<media:content url="http://upload.wikimedia.org/wikipedia/commons/thumb/f/f4/Arbutus_menziesii-8.jpg/300px-Arbutus_menziesii-8.jpg" medium="image">
			<media:title type="html">English: Pacific Madrone leaf litter. Latina: ...</media:title>
		</media:content>
	</item>
		<item>
		<title>AGU Fall Meeting Day 1 (or the day I gave my talk)</title>
		<link>https://ucfagls.wordpress.com/2011/12/06/agu-fall-meeting-day-1-or-the-day-i-gave-my-talk/</link>
		<comments>https://ucfagls.wordpress.com/2011/12/06/agu-fall-meeting-day-1-or-the-day-i-gave-my-talk/#comments</comments>
		<pubDate>Tue, 06 Dec 2011 16:49:50 +0000</pubDate>
		<dc:creator>ucfagls</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Science]]></category>
		<category><![CDATA[AGU]]></category>
		<category><![CDATA[AGU 2011]]></category>
		<category><![CDATA[biomarlker]]></category>
		<category><![CDATA[carbon]]></category>
		<category><![CDATA[isotope]]></category>
		<category><![CDATA[mercury]]></category>
		<category><![CDATA[methylmercury]]></category>
		<category><![CDATA[modelling]]></category>
		<category><![CDATA[nitrate]]></category>
		<category><![CDATA[nitrogen]]></category>

		<guid isPermaLink="false">http://ucfagls.wordpress.com/?p=245</guid>
		<description><![CDATA[Yesterday (it is now morning on day 2) was the first proper day of the Fall Meeting. My fellow meeting attendees certainly need their coffee; between my hotel and the Moscone I passed about five Starbucks stores, each of which &#8230; <a href="https://ucfagls.wordpress.com/2011/12/06/agu-fall-meeting-day-1-or-the-day-i-gave-my-talk/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ucfagls.wordpress.com&amp;blog=14744973&amp;post=245&amp;subd=ucfagls&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Yesterday (it is now morning on day 2) was the first proper day of the Fall Meeting. My fellow meeting attendees certainly need their coffee; between my hotel and the Moscone I passed about five Starbucks stores, each of which sported a long queue of poster tube-bearing or lanyard-wearing individuals desperate for a cup of joe.</p>
<p>The day started off rather well for me as I got some good news about a research project proposal I am involved with within a minute of sitting down in Session B11F (Coupled Biogeochemical Cycles in Terrestrial and Aquatic Ecosystems I). Not quite 100% certain it will be funded as the funding body wants options for small budget cuts but looking very promising!</p>
<p>This (B11F) was a somewhat general session with several interesting (to me) talks. Two in particular piqued some interest and centred on methylmercury (MeHg) production and indicators of MeHg in a delta system. Of most interest was talk B11F-03 by Mitchell et al who had investigated the control of MeHg production by sulphur in a peatland setting by experimentally manipulating the system through the artificial addition and subsequent removal of sulphate deposition to look at the impacts of acid deposition on MeHg production and the lag times of recovery following reductions in deposition.</p>
<p><span id="more-245"></span></p>
<p>Brian McGlynn gave an interesting talk (B11F-08) on a methodological development for investigating nutrient uptake kinetics in stream ecosystems which allows the synergistic relationship between nutrients uptake kinetics to be modelled. The talk focussed on N and P stoichiometry in upland streams and their methodology allowed the authors to look at the effect N and P individually plus their combined uptake response. Their results showed that the three study streams were strongly co-limited by both nutrients. A talk later in the day by Tim Covino (B12D-04) went into greater detail on the methodology and an application.</p>
<p>The next session I attended was B12D Nitrogen Export from Headwater Catchments (I&#8217;ll just give the short session title &mdash; who comes up with these overly long titles anyway?) was particularly interesting to me given my nitrogen interests. Little of major consequence to my particular work (palaeo isotope geochemistry over the past few hundred years) but several talks covered topics relevant to the work Chris Curtis, Tim Heaton (<a href="http://www.bgs.ac.uk/nigl/">British Geological Society, NIGL</a>), Jan Kaiser (UEA) and I have been doing under the UK Defra Freshwater Umbrella programme on nitrate pathways and the fate of deposited N.</p>
<p>The session ended with a talk by Stephen Sebestyn which nicely covered much of the ground we&#8217;ve also been working on in the UK. Sebestyn covered a wider temporal range though, looking at when high atmospheric nitrate contributions to in-stream nitrate concentrations were observed (i.e. nitrate that had <strong>not</strong> been microbially processed); snow melt and rain on snow events in the main, plus some events in early spring before vegetation has kicked in, and a number of events in later summer and autumn. The take home message was that nitrate directly from atmospheric deposition could represent a large component of the in-stream nitrate (50+ %) but that there was large spatial heterogeneity in the proportion of atmospheric nitrate within small geographical regions.</p>
<p>At this point I headed out to the food court in the Westfield Mall for lunch, not by intention but I just happened to wander that way, along with thousands of fellow attendees. After grabbing a nice burger, fries and a Coke, I ended up sitting down at a table with a local gentleman. He explained he ate there every day, had done so for years, but had never seen so many people trying to get food down there.</p>
<p>After lunch I attended the session in which my talk had been put; H13G Digital Soil Mapping and Hydroecological Modelling. As the title suggests, the session was a mixed bag of talks resulting from the merging of several session proposals. I had been invited to talk in a session related to <a href="http://www.r-project.org" title="R Website">R</a> and its use in modelling. My talk and one other from that session proposal made it into the final session and as it was now a much more general session I decided not to talk too much about R itself but to focus more on the modelling side of my work on river water temperatures. I can&#8217;t say too much about this work just yet; the funding body wants to do a press release when we get the work published in a journal and the paper has been in review at Hydrological Processes for four months and is currently sat on an editor&#8217;s desk awaiting a decision (four months is pretty poor turn around!) I have a paper in prep on the modelling methodology I used, all done in R of course(!), which I&#8217;ll write a blog post on when it is accepted (have to submit first). As a result of the merging etc, I wasn&#8217;t particularly academically interested in the talks in the session but I stayed throughout and saw some nice soil mapping and hydrological modelling presentations, and the session was reasonably well attended.</p>
<p>My talk went well, prompting a couple of questions and I managed to stick to time, which is good for me; I often talk slower when presenting and prefer more free-form slides than a tightly scripted set of bullets, but that does mean timings can be somewhat erratic!</p>
<p>The last session of the day that I attended was B14D on carbon isotopes and biomarkers. The biomarker scene is one I want to start getting into but on the nitrogen front looking at <sup>15</sup>N in algal pigments and amino acids. Some interesting talks in here employing a level of chemistry that was way above my admittedly low level. Phil Meyers gave a nice talk on isoptopically light carbon in bulk organic matter in Phanerozoic black shales, discussing potential mechanisms that could give rise to the observed values (the deposits are marine in origin, but differ markedly from modern marine carbon isotope values for bulk OM). The entire session was part of the <a href="http://www.geography.dur.ac.uk/projects/dippi/Home/tabid/3697/Default.aspx" title="DIPPI-C">DIPPI-C</a> initiative, which seems to be one to keep an eye on. The main thing I got from this session was the depths scientists are going to to understand what the isotopic measurements they make on organic compounds mean for the environment and depositional system that gave rise to the organic matter they study.</p>
<p>By now my day was pretty much done. I dealt with a bit of email and read through a paper I&#8217;m a co-author on, then met up for dinner with a couple of colleagues (John Anderson and Jasmine Saros) at an Italian/fusion restaurant.</p>
<p>Thankfully, I&#8217;d tired myself out so much that I only woke once during the night and was soundly asleep when the alarm kicked in at 0630 this morning. Seems like I getting this jet-lag licked!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ucfagls.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ucfagls.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ucfagls.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ucfagls.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ucfagls.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ucfagls.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ucfagls.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ucfagls.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ucfagls.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ucfagls.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ucfagls.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ucfagls.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ucfagls.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ucfagls.wordpress.com/245/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ucfagls.wordpress.com&amp;blog=14744973&amp;post=245&amp;subd=ucfagls&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://ucfagls.wordpress.com/2011/12/06/agu-fall-meeting-day-1-or-the-day-i-gave-my-talk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="https://secure.gravatar.com/avatar/af0cc2f46bd679e92029bc489cdde955?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ucfagls</media:title>
		</media:content>
	</item>
		<item>
		<title>AGU Fall Meeting 2011 Day 0</title>
		<link>https://ucfagls.wordpress.com/2011/12/05/agu-fall-meeting-2011-day-0/</link>
		<comments>https://ucfagls.wordpress.com/2011/12/05/agu-fall-meeting-2011-day-0/#comments</comments>
		<pubDate>Mon, 05 Dec 2011 01:54:46 +0000</pubDate>
		<dc:creator>ucfagls</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Science]]></category>
		<category><![CDATA[AGU]]></category>
		<category><![CDATA[AGU 2011]]></category>

		<guid isPermaLink="false">http://ucfagls.wordpress.com/?p=242</guid>
		<description><![CDATA[This is my first trip to the AGU Fall Meeting. As I write this I am on Level 2 of the Moscone Center&#160;(West), San Francisco, USA, having spent the past hour or so finalising my talk for tomorrow. First impressions &#8230; <a href="https://ucfagls.wordpress.com/2011/12/05/agu-fall-meeting-2011-day-0/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ucfagls.wordpress.com&amp;blog=14744973&amp;post=242&amp;subd=ucfagls&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This is my first trip to the AGU Fall Meeting. As I write this I am on Level 2 of the <a title="Moscone Center" href="http://www.moscone.com/">Moscone Center</a>&nbsp;(West), San Francisco, USA, having spent the past hour or so finalising my talk for tomorrow.<br />
<span id="more-242"></span><br />
First impressions of the conference and organisation are very favourable. The Speaker Ready Room where you upload and check talks has around 40 stations that you can use and several people on hand to take you through the process. Registration took but a few moments, despite my forgetting to bring along the receipt for the registration payment. Wi-Fi is free and fast, well, at least it is now, just before the Ice Breaker session but it does bode well.</p>
<p>The trip to San Francisco was uneventful if a bit tiring. I flew with Air Canada via Vancouver and the 10 odd hour flight there passed quite quickly (ably helped by a selection of mindless movies that suited my somewhat addled brain). The changeover at Vancouver was a reasonably pleasant experience, considering my past experiences of US immigration. I hadn&#8217;t realised this, but you go through immigration to the US at Vancouver, not at the final US destination, so transit passengers are corralled into a small waiting area until ones bag is retrieved and ready to head to the connecting flight. Once called up to identify your bag (on a computer screen!) you head off through security again and thence to your interview with the Immigration official. At least this time I visited the US I had completed an ESTA; when I travelled through the US on the way to Mexico 18 months ago I had forgotten this and got wrapped on the knuckles as a result (&#8220;non compliant&#8221; was what the official called me!). Once that was over with, you are effectively a domestic traveller like any other person travelling from Vancouver to San Francisco.</p>
<p>The journey from the airport to downtown was likewise uneventful on the BART (Bay Area Rapid Transit). It was just a shame that all this happened in the dark so I couldn&#8217;t see any of the city as I went along. My hotel is just round the corner from Union Square right in the heart of the shopping district and when I arrived the place was buzzing as befits 9pm on a Saturday night! Very lively atmosphere, what little I saw of it on my 5 minute trek to the hotel. My room mate had already checked in and was fast asleep when I arrive (it was 5am UK time by the time I got to the hotel) so I dumped my gear, crawled into bed and slept too.</p>
<p>This morning we had an expensive breakfast in the hotel (won&#8217;t be doing that again as there are plenty of other, cheaper options available!) then headed off for a walk in the sunshine before meeting up with some colleagues for lunch. After that we headed to the Moscone Center to register and that about brings us up to date. The real business starts tomorrow; I have a talk to give at 1500 in session H13G &#8220;Digital Soil Mapping and Hydroecological Modeling I&#8221;. This is a rather general soil/hydrology modelling session and I was originally invited to give a talk in an R-focussed session, so I&#8217;ve had to retool my talk to suit. This does mean that the session won&#8217;t be too interesting to me scientifically and I may try to sneak out (or in rather as I am on next to last) to a session on carbon isotopes. Whether to risk the session under-running or not?</p>
<p>Off to meet up with some people now and sample a beer or two before bedtime. I&#8217;ll be back tomorrow, Wi-Fi permitting with a round-up of Day 1 of the AGU 2011 Fall Meeting.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ucfagls.wordpress.com/242/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ucfagls.wordpress.com/242/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ucfagls.wordpress.com/242/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ucfagls.wordpress.com/242/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ucfagls.wordpress.com/242/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ucfagls.wordpress.com/242/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ucfagls.wordpress.com/242/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ucfagls.wordpress.com/242/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ucfagls.wordpress.com/242/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ucfagls.wordpress.com/242/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ucfagls.wordpress.com/242/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ucfagls.wordpress.com/242/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ucfagls.wordpress.com/242/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ucfagls.wordpress.com/242/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ucfagls.wordpress.com&amp;blog=14744973&amp;post=242&amp;subd=ucfagls&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://ucfagls.wordpress.com/2011/12/05/agu-fall-meeting-2011-day-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="https://secure.gravatar.com/avatar/af0cc2f46bd679e92029bc489cdde955?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ucfagls</media:title>
		</media:content>
	</item>
		<item>
		<title>Generating sets of permutations</title>
		<link>https://ucfagls.wordpress.com/2011/10/21/228/</link>
		<comments>https://ucfagls.wordpress.com/2011/10/21/228/#comments</comments>
		<pubDate>Fri, 21 Oct 2011 10:06:50 +0000</pubDate>
		<dc:creator>ucfagls</dc:creator>
				<category><![CDATA[permute]]></category>
		<category><![CDATA[R]]></category>
		<category><![CDATA[ecology]]></category>
		<category><![CDATA[environmetrics]]></category>
		<category><![CDATA[Golden Jackal]]></category>
		<category><![CDATA[ordination]]></category>
		<category><![CDATA[Permutation]]></category>
		<category><![CDATA[permutation tests]]></category>
		<category><![CDATA[restricted permutations]]></category>
		<category><![CDATA[time series]]></category>

		<guid isPermaLink="false">http://ucfagls.wordpress.com/?p=228</guid>
		<description><![CDATA[In previous posts&#160;I discussed how to generate a single permutation from a fully-randomised or restricted permutation design using shuffle(). Here I want to&#160;briefly&#160;mention the shuffleSet() function and illustrate it&#8217;s usage. Every time you call shuffle() it has to interpret the &#8230; <a href="https://ucfagls.wordpress.com/2011/10/21/228/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ucfagls.wordpress.com&amp;blog=14744973&amp;post=228&amp;subd=ucfagls&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div class="zemanta-img">
<div class="wp-caption alignleft" style="width: 310px"><a href="http://commons.wikipedia.org/wiki/File:Golden_Jackal_sa02.jpg"><img class="zemanta-img-configured" title="Golden Jackal" src="http://upload.wikimedia.org/wikipedia/commons/thumb/3/3c/Golden_Jackal_sa02.jpg/300px-Golden_Jackal_sa02.jpg" alt="Golden Jackal" width="300" height="200" /></a><p class="wp-caption-text">Image via Wikipedia</p></div>
</div>
<p>In <a title="permute: a package for generating restricted&nbsp;permutations" href="http://ucfagls.wordpress.com/2011/10/04/permute-a-package-for-generating-restricted-permutations/">previous</a> <a title="Generating restricted permutations with&nbsp;permute" href="http://ucfagls.wordpress.com/2011/10/18/generating-restricted-permutations-with-permute/">posts</a>&nbsp;I discussed how to generate a single permutation from a fully-randomised or restricted permutation design using <code>shuffle()</code>. Here I want to&nbsp;briefly&nbsp;mention the <code>shuffleSet()</code> function and illustrate it&#8217;s usage.<br />
<span id="more-228"></span><br />
Every time you call <code>shuffle()</code> it has to interpret the <code>control</code> list to identify the type of permutation required. Whilst the overhead of this interpretation is not too high, there is no reason that it need be incurred just to generate a set of permutations. This is where <code>shuffleSet()</code> comes in. It works exactly like <code>shuffle()</code> taking the number of observations and a <code>control</code> object but in addition it takes an extra argument <code>nset</code> which is the number of permutations required for the set.</p>
<p><pre class="brush: r; light: true;">
&gt; require(permute) ## load the package
&gt; args(shuffleSet)
function (n, nset = 1, control = permControl())
NULL
</pre></p>
<p>To generate 10 random permutations of ten observations you would use</p>
<p><pre class="brush: r; light: true;">
&gt; set.seed(2)
&gt; shuffleSet(10, 10)
      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
 [1,]    2    7    5   10    6    8    1    3    4     9
 [2,]    6    3    7    2    9    5    4    1   10     8
 [3,]    7    4   10    2    3    6    1    8    5     9
 [4,]    1    2    7    8    4    6    5   10    9     3
 [5,]   10    3    1    2    6    4    5    7    9     8
 [6,]    1   10    6    7    2    5    4    3    8     9
 [7,]    8   10    6    2    9    3    7    4    1     5
 [8,]    3   10    1    2    7    4    6    9    8     5
 [9,]    4    7    1    3    2    5   10    8    6     9
[10,]   10    4    9    8    3    1    2    5    6     7
</pre></p>
<p>If those 10 observations were collected as a time series and we wanted 10 restricted permutations you would use</p>
<p><pre class="brush: r; light: true;">
&gt; set.seed(2)
&gt; shuffleSet(10, 10, control = permControl(within = Within(type = &quot;series&quot;)))
      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
 [1,]    3    4    5    6    7    8    9   10    1     2
 [2,]    9   10    1    2    3    4    5    6    7     8
 [3,]    7    8    9   10    1    2    3    4    5     6
 [4,]    3    4    5    6    7    8    9   10    1     2
 [5,]    1    2    3    4    5    6    7    8    9    10
 [6,]    1    2    3    4    5    6    7    8    9    10
 [7,]    3    4    5    6    7    8    9   10    1     2
 [8,]   10    1    2    3    4    5    6    7    8     9
 [9,]    6    7    8    9   10    1    2    3    4     5
[10,]    7    8    9   10    1    2    3    4    5     6
</pre></p>
<p>From the above set of permutations, the cyclic shifts employed in the <code>"series"</code> permutation type are clear. One problem with the set we just produced is that the same permutation was returned more than once. In fact, there were only six unique permutations in the set requested. This is due to there only being 10 possible permutations of the numbers 1, 2, &#8230;, 10 if we allow cyclic shifts in a single direction</p>
<p><pre class="brush: r; light: true;">
&gt; numPerms(10, control = permControl(within = Within(type = &quot;series&quot;)))
[1] 10
</pre></p>
<p><code>shuffle()</code> and <code>shuffleSet()</code> know nothing of these limits, but there are functions in the <strong>permute</strong> package that can tell you the number of possible permutations (<code>numPerms()</code>) and generate the entire set of permutations for a stated design (<code>allPerms()</code>). I&#8217;ll take a look at <code>allPerms()</code> in a future posting.</p>
<p>I return now to the Golden Jackal mandible length example I used in an <a title="permute: a package for generating restricted&nbsp;permutations" href="http://ucfagls.wordpress.com/2011/10/04/permute-a-package-for-generating-restricted-permutations/">earlier post</a> but update the example to make use of <code>shuffleSet()</code> instead of <code>shuffle()</code>. I will just show the code and output for the permutation test, refer to the <a title="permute: a package for generating restricted&nbsp;permutations" href="http://ucfagls.wordpress.com/2011/10/04/permute-a-package-for-generating-restricted-permutations/">previous post</a> for details:</p>
<p><pre class="brush: r; light: true;">
&gt; data(jackal) ## load the data
&gt; ## function to compute the difference of means
&gt; meanDif &lt;- function(x, grp) {
+     mean(x[grp == &quot;Male&quot;]) - mean(x[grp == &quot;Female&quot;])
+ }
&gt; N &lt;- nrow(jackal)
&gt; ## make this reproducible and like previous post
&gt; set.seed(42)
&gt; ## generate the set of 4999 random permutations
&gt; pSet  &lt;- shuffleSet(N, 4999)
&gt; ## iterate over the set
&gt; Djackal &lt;- apply(pSet, 1, function(i, data) with(data, meanDif(Length, Sex[i])),
+                  data = jackal)
&gt; ## add the observed difference of mean mandible length
&gt; Djackal &lt;- c(Djackal, with(jackal, meanDif(Length, Sex)))
## No. obs equal to or greater than observed
&gt; (Dbig &lt;- sum(Djackal &gt;= Djackal[5000]))
[1] 12
&gt; ## permutational p-value
&gt; Dbig/length(Djackal)
[1] 0.0024
</pre></p>
<p>The last two lines of R code compute the number of observations in the Null distribution with differences in mean mandible length as great or greater than the observed difference, and the resulting permutation <em>p</em>-value. These are the same as those computed in the previous post.</p>
<p>Generating entire sets of permutations is useful for several reasons. One recent example that we came across is with the new parallel processing capabilities in the forthcoming version of R. We are able to generate a set of permutations and then distribute the process of the permutation test over a number of CPUs or worker threads, each dealing with a subset of the permutations we generated. This can greatly reduce the compute time needed for the permutation test, especially where the objective function is computationally complex, but allows us to not worry about controlling the random number generator in each separate process — this is all done within the main function and only the relevant subset of permutations is passed to each worker process. An additional reason for generating a set of permutation to work with rather than individual permutations is that it is easy to switch between using a set of randomly generated permutations or the set of all possible permutations where that set is not overly large. <code>allPerms()</code> returns the set of permutations in the same way that <code>shuffleSet()</code> does, so we can simplify our code if we write the test to iterate over a set of permutations.</p>
<p>The full script for the Golden Jackal permutation test is shown below:</p>
<p><pre class="brush: r; light: true;">
data(jackal) ## load the data
## function to compute the difference of means
meanDif &lt;- function(x, grp) {
    mean(x[grp == &quot;Male&quot;]) - mean(x[grp == &quot;Female&quot;])
}
N &lt;- nrow(jackal)
## make this reproducible and like previous post
set.seed(42)
## generate the set of 4999 random permutations
pSet  &lt;- shuffleSet(N, 4999)
## iterate over the set
Djackal &lt;- apply(pSet, 1, function(i, data) with(data, meanDif(Length, Sex[i])),
                 data = jackal)
## add the observed difference of mean mandible length
Djackal &lt;- c(Djackal, with(jackal, meanDif(Length, Sex)))
## No. obs equal to or greater than observed
(Dbig &lt;- sum(Djackal &gt;= Djackal[5000]))
## permutational p-value
Dbig/length(Djackal)
</pre></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ucfagls.wordpress.com/228/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ucfagls.wordpress.com/228/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ucfagls.wordpress.com/228/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ucfagls.wordpress.com/228/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ucfagls.wordpress.com/228/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ucfagls.wordpress.com/228/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ucfagls.wordpress.com/228/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ucfagls.wordpress.com/228/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ucfagls.wordpress.com/228/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ucfagls.wordpress.com/228/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ucfagls.wordpress.com/228/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ucfagls.wordpress.com/228/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ucfagls.wordpress.com/228/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ucfagls.wordpress.com/228/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ucfagls.wordpress.com&amp;blog=14744973&amp;post=228&amp;subd=ucfagls&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://ucfagls.wordpress.com/2011/10/21/228/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="https://secure.gravatar.com/avatar/af0cc2f46bd679e92029bc489cdde955?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ucfagls</media:title>
		</media:content>

		<media:content url="http://upload.wikimedia.org/wikipedia/commons/thumb/3/3c/Golden_Jackal_sa02.jpg/300px-Golden_Jackal_sa02.jpg" medium="image">
			<media:title type="html">Golden Jackal</media:title>
		</media:content>
	</item>
		<item>
		<title>Generating restricted permutations with permute</title>
		<link>https://ucfagls.wordpress.com/2011/10/18/generating-restricted-permutations-with-permute/</link>
		<comments>https://ucfagls.wordpress.com/2011/10/18/generating-restricted-permutations-with-permute/#comments</comments>
		<pubDate>Tue, 18 Oct 2011 21:24:43 +0000</pubDate>
		<dc:creator>ucfagls</dc:creator>
				<category><![CDATA[permute]]></category>
		<category><![CDATA[R]]></category>
		<category><![CDATA[permutation tests]]></category>
		<category><![CDATA[randomisation]]></category>
		<category><![CDATA[restricted permutations]]></category>
		<category><![CDATA[spatial grids]]></category>
		<category><![CDATA[time series]]></category>

		<guid isPermaLink="false">http://ucfagls.wordpress.com/?p=221</guid>
		<description><![CDATA[In a previous post I introduced the permute package and the function shuffle(). In that post I got as far as replicating R&#8217;s base function sample(). Here I&#8217;ll briefly outline how shuffle() can be used to generate restricted permutations. shuffle() &#8230; <a href="https://ucfagls.wordpress.com/2011/10/18/generating-restricted-permutations-with-permute/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ucfagls.wordpress.com&amp;blog=14744973&amp;post=221&amp;subd=ucfagls&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In a <a href="http://ucfagls.wordpress.com/2011/10/04/permute-a-package-for-generating-restricted-permutations/" title="permute: a package for generating restricted&nbsp;permutations">previous post</a> I introduced the <strong>permute</strong> package and the function <code>shuffle()</code>. In that post I got as far as replicating R&#8217;s base function <code>sample()</code>. Here I&#8217;ll briefly outline how <code>shuffle()</code> can be used to generate restricted permutations.</p>
<p><span id="more-221"></span></p>
<p><code>shuffle()</code> has two arguments: i) <code>n</code>, the number of observations in the data set to be permuted, and ii) <code>control</code>, a list that defines the permutation design describing how the samples are permuted.</p>
<p><pre class="brush: r; light: true;">
R&gt; args(shuffle)
function (n, control = permControl())
NULL
</pre></p>
<p><code>control</code> is a list, and for complex permutation designs. As a result, several convenience functions are provided that make it easier to specify the design you want. The main convenience function is <code>permControl()</code> which if passed no arguments populates an appropriate <code>control</code> object with defaults that result in free permutation of observations.</p>
<p><pre class="brush: r; light: true;">
&gt; str(permControl())
List of 10
 $ strata     : NULL
 $ nperm      : num 199
 $ complete   : logi FALSE
 $ within     :List of 5
  ..$ type    : chr &quot;free&quot;
  ..$ constant: logi FALSE
  ..$ mirror  : logi FALSE
  ..$ ncol    : NULL
  ..$ nrow    : NULL
 $ blocks     :List of 4
  ..$ type  : chr &quot;none&quot;
  ..$ mirror: logi FALSE
  ..$ ncol  : NULL
  ..$ nrow  : NULL
 $ maxperm    : num 9999
 $ minperm    : num 99
 $ all.perms  : NULL
 $ observed   : logi FALSE
 $ name.strata: chr &quot;NULL&quot;
 - attr(*, &quot;class&quot;)= chr &quot;permControl&quot;
</pre></p>
<p>Several types of permutation can be produced by functions in <strong>permute</strong>:</p>
<ul>
<li>Free permutation of objects, which we saw in the earlier post</li>
<li>Time series or line transect designs, where the temporal or spatial ordering is preserved</li>
<li>Spatial grid designs, where the spatial ordering is preserved in both coordinate directions</li>
<li>Permutation of blocks or groups of samples</li>
</ul>
<p>The first three of these can be nested within the levels of a factor or to the levels of that factor, or to both. Such flexibility allows the analysis of split-plot designs using permutation tests. <code>permControl()</code> is used to set up the design from which <code>shuffle()</code> will draw a permutation. <code>permControl()</code> has two main arguments that specify how samples are permuted within blocks of samples or at the block level itself. These are within and blocks. Two convenience functions, <code>Within()</code> and <code>Blocks()</code> can be used to set the various options for permutation. For example, to permute the observations 1:10 assuming a time series design for the entire set of observations, the following control object would be used<br />
<pre class="brush: r; light: true;">
&gt; set.seed(4)
&gt; x &lt;- 1:10
&gt; CTRL &lt;- permControl(within = Within(type = &quot;series&quot;))
&gt; perm &lt;- shuffle(10, control = CTRL)
&gt; perm
 [1]  7  8  9 10  1  2  3  4  5  6
&gt; x[perm]
 [1]  7  8  9 10  1  2  3  4  5  6
</pre><br />
It is assumed that the observations are in temporal or transect order. We only specified the type of permutation within blocks, the remaining options are set to their defaults via <code>Within()</code>.</p>
<p>A more complex design, with three blocks, and a 3 by 3 spatial grid arrangement within each block can be created as follows<br />
<pre class="brush: r; light: true;">
&gt; set.seed(4)
&gt; block &lt;- gl(3, 9)
&gt; CTRL &lt;- permControl(strata = block,
+                     within = Within(type = &quot;grid&quot;, ncol = 3, nrow = 3))
&gt; perm &lt;- shuffle(length(block), control = CTRL)
&gt; perm
 [1]  6  4  5  9  7  8  3  1  2 14 15 13 17 18 16 11 12 10 22 23
[21] 24 25 26 27 19 20 21
</pre><br />
Visualising the permutation as the 3 matrices may help illustrate how the data have been shuffled<br />
<pre class="brush: r; light: true;">
&gt; ## Original
&gt; lapply(split(1:27, block), matrix, ncol = 3)
$`1`
     [,1] [,2] [,3]
[1,]    1    4    7
[2,]    2    5    8
[3,]    3    6    9

$`2`
     [,1] [,2] [,3]
[1,]   10   13   16
[2,]   11   14   17
[3,]   12   15   18

$`3`
     [,1] [,2] [,3]
[1,]   19   22   25
[2,]   20   23   26
[3,]   21   24   27

&gt; ## Shuffled
&gt; lapply(split(perm, block), matrix, ncol = 3)
$`1`
     [,1] [,2] [,3]
[1,]    6    9    3
[2,]    4    7    1
[3,]    5    8    2

$`2`
     [,1] [,2] [,3]
[1,]   14   17   11
[2,]   15   18   12
[3,]   13   16   10

$`3`
     [,1] [,2] [,3]
[1,]   22   25   19
[2,]   23   26   20
[3,]   24   27   21
</pre><br />
In the first grid, the lower-left corner of the grid was set to row 2 and column 2 of the original, to row 1 and column 2 in the second grid, and to row 3 column 2 in the third grid.</p>
<p>To have the same permutation within each level of block, use the constant argument of the <code>Within()</code> function, setting it to <code>TRUE</code><br />
<pre class="brush: r; light: true;">
&gt; set.seed(4)
&gt; CTRL &lt;- permControl(strata = block,
+                     within = Within(type = &quot;grid&quot;, ncol = 3, nrow = 3,
+                                     constant = TRUE))
&gt; perm2 &lt;- shuffle(length(block), control = CTRL)
&gt; lapply(split(perm2, block), matrix, ncol = 3)
$`1`
     [,1] [,2] [,3]
[1,]    6    9    3
[2,]    4    7    1
[3,]    5    8    2

$`2`
     [,1] [,2] [,3]
[1,]   15   18   12
[2,]   13   16   10
[3,]   14   17   11

$`3`
     [,1] [,2] [,3]
[1,]   24   27   21
[2,]   22   25   19
[3,]   23   26   20
</pre></p>
<p>As you can see, at the moment, I make some assumptions about the ordering of samples within each spatial/temporal structure. The samples do not have the be arranged in <code>strata</code> order, but within the levels of the grouping variable the observations must be in the right order. For spatial grids, this means in column-major order&mdash;just as in the way R fills matrices by columns. In a future release, I hope to relax some of these assumptions to make it easier to apply permutations to the data to hand.</p>
<p>In the next post in this series, I&#8217;ll take a look at generating sets of permutations using the <code>shuffleSet()</code> function.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ucfagls.wordpress.com/221/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ucfagls.wordpress.com/221/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ucfagls.wordpress.com/221/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ucfagls.wordpress.com/221/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ucfagls.wordpress.com/221/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ucfagls.wordpress.com/221/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ucfagls.wordpress.com/221/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ucfagls.wordpress.com/221/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ucfagls.wordpress.com/221/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ucfagls.wordpress.com/221/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ucfagls.wordpress.com/221/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ucfagls.wordpress.com/221/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ucfagls.wordpress.com/221/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ucfagls.wordpress.com/221/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ucfagls.wordpress.com&amp;blog=14744973&amp;post=221&amp;subd=ucfagls&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://ucfagls.wordpress.com/2011/10/18/generating-restricted-permutations-with-permute/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="https://secure.gravatar.com/avatar/af0cc2f46bd679e92029bc489cdde955?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ucfagls</media:title>
		</media:content>
	</item>
		<item>
		<title>permute: a package for generating restricted permutations</title>
		<link>https://ucfagls.wordpress.com/2011/10/04/permute-a-package-for-generating-restricted-permutations/</link>
		<comments>https://ucfagls.wordpress.com/2011/10/04/permute-a-package-for-generating-restricted-permutations/#comments</comments>
		<pubDate>Tue, 04 Oct 2011 14:59:28 +0000</pubDate>
		<dc:creator>ucfagls</dc:creator>
				<category><![CDATA[permute]]></category>
		<category><![CDATA[R]]></category>
		<category><![CDATA[vegan]]></category>
		<category><![CDATA[ecology]]></category>
		<category><![CDATA[environmetrics]]></category>
		<category><![CDATA[ordination]]></category>
		<category><![CDATA[permutation tests]]></category>

		<guid isPermaLink="false">http://ucfagls.wordpress.com/?p=203</guid>
		<description><![CDATA[Multivariate ordination methods are commonly used in ecology to investigate patterns in species composition in space or time. Constrained ordination methods such as redundancy analysis (RDA) and canonical correspondence analysis (CCA) are effectively just multiple regressions, but we lack the &#8230; <a href="https://ucfagls.wordpress.com/2011/10/04/permute-a-package-for-generating-restricted-permutations/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ucfagls.wordpress.com&amp;blog=14744973&amp;post=203&amp;subd=ucfagls&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Multivariate ordination methods are commonly used in ecology to investigate patterns in species composition in space or time. Constrained ordination methods such as redundancy analysis (RDA) and canonical correspondence analysis (CCA) are effectively just multiple regressions, but we lack the parametric theory to adequately test the statistical significance of terms in the model. Other techniques likewise lack the appropriate theory, such as the Mantel test, vector fitting into ordination space, among many others.</p>
<p>Instead, permutation tests are used to form an appropriate Null distribution for a test statistic against which we can evaluate the observed value of that statistic. In constrained ordination the test statistic is usually in the form of a pseudo <em>F</em> statistic, although one advantage of the permutation approach is that any suitable statistic can be used in the test. If the observed value of the test statistic is unusual in the context of the Null distribution derived by permuting the data, say in the top 5 or 1 percent, we conclude that the observed relationship is unlikely to have arisen by chance and is therefore significant.</p>
<p>Simply shuffling the rows of the input data, a process also known as a randomisation test, is sufficient where the observations in the data are independent. If the observations are independent, under the Null model any row from the species data can be matched with any row from the predictor data, which justifies the use of randomisation as the basis for testing the significance of the model.</p>
<p>In many cases, however, ecological data are not independent, having been collected sequentially in space (a transect) or time (time series). Designed experiments are commonplace, with replicates located within plots that are experimentally manipulated. Observations might also have been repeatedly made from within a number of sampling locations or plots, or from a spatial grid over the region of interest.</p>
<p>The <a href="http://cran.r-project.org/web/packages/vegan/index.html" title="vegan page on CRAN"><strong>vegan</strong> package</a> has long had permutation tests, based on the function <code>permuted.index()</code>. This function allowed for simple randomisation, or randomisation within groups, defined by a factor supplied as argument <code>strata</code>.</p>
<p><a href="http://www.pri.wur.nl/uk/products/canoco/" title="CANOCO Site">CANOCO</a> has long had support for these restricted permutations methods. I have been working sporadically for several years developing code initially in <strong>vegan</strong> and then under the banner of the <strong>permute</strong> package to implement similar functionality.</p>
<p>In a series of posts over the coming weeks I will explain what <strong>permute</strong> can do and illustrate how to use the package. Over time, myself and the other <strong>vegan</strong> developers will start interfacing existing functions in the package that use permutations with the <strong>permute</strong> package so that gradually the scope of permutation tests in <strong>vegan</strong> will improve.</p>
<p>To get you started though, here is a quick, simple example of doing a randomisation test using <strong>permute</strong>&#8230;<br />
<span id="more-203"></span></p>
<p>We consider a small data set of mandible length measurements on specimens of the <a href="http://en.wikipedia.org/wiki/Golden_jackal" title="the Golden Jackal page on Wikipedia">golden jackal (<em>Canis aureus</em>)</a> from the British Museum of Natural History, London, UK. These data were collected as part of a study comparing prehistoric and modern canids (Higham et al. 1980), and were previously analysed by Manly (2007). There are ten measurements of mandible length on both male and female specimens. The data are available in the <code>jackal</code> data frame supplied with <strong>permute</strong>. Load the package and the data set</p>
<p><pre class="brush: r; light: true;">
&gt; require(permute)
&gt; data(jackal)
&gt; jackal
</pre></p>
<p>The interest is in whether there is a difference in the mean mandible length between male and female golden jackals. The null hypothesis is that there is zero difference in mandible length between the two sexes or that females have larger mandibles. The alternative hypothesis is that males have larger mandibles. The usual statistical test of this hypothesis is a one-sided <em>t</em> test, which can be applied using <code>t.test()</code></p>
<p><pre class="brush: r; light: true;">
&gt; jack.t &lt;- t.test(Length ~ Sex, data = jackal, var.equal = TRUE,
+    alternative = &quot;greater&quot;)
&gt; jack.t

	Two Sample t-test

data:  Length by Sex 
t = 3.4843, df = 18, p-value = 0.001324
alternative hypothesis: true difference in means is greater than 0 
95 percent confidence interval:
 2.411156      Inf 
sample estimates:
  mean in group Male mean in group Female 
               113.4                108.6
</pre></p>
<p>A permutation-based test can be used to test the same Null hypothesis, but without some of the assumptions of the <em>t</em> test, most importantly the assumption that the data are a random sample from the population of golden jackals. With a permutation test, we are free to choose any suitable test statistic. We could use the <em>t</em> statistic, but the difference in means of the Female and Male groups will suffice. To implement this we build a function that will compute the difference of means for the Male and Female groups:</p>
<p><pre class="brush: r; light: true;">
meanDif &lt;- function(x, grp) {
    mean(x[grp == &quot;Male&quot;]) - mean(x[grp == &quot;Female&quot;])
}
</pre></p>
<p>This function can be used in a <code>for()</code> loop to generate the permutation distribution of the test statistic under the Null hypothesis. We will perform 4999 random permutations, so we allocate a vector of length 5000 to hold the resulting difference of means. Under the Null hypothesis, the observed difference of means is just one of the possible values so we count it as part of the Null distribution (hence the length of 5000). In the code chunk below, <code>Djackal</code> will contain the 5000 differences of means for the Null distribution, <code>N</code> holds the number of observations in the <code>jackal</code> data set. Then we seed the pseudo-random number generator to get reproducible results and initiate a loop to generate the Null distribution, of which more in a minute. The last line adds the observed difference of means to the Null distribution</p>
<p><pre class="brush: r; light: true;">
&gt; Djackal &lt;- numeric(length = 5000)
&gt; N &lt;- nrow(jackal)
&gt; set.seed(42)
&gt; for (i in seq_len(length(Djackal) - 1)) {
+     perm &lt;- shuffle(N)
+     Djackal[i] &lt;- with(jackal, meanDif(Length, Sex[perm]))
+ }
&gt; Djackal[5000] &lt;- with(jackal, meanDif(Length, Sex))
</pre></p>
<p>The loop runs over the values {1,&#8230;4999} and generates a randomisation of the <code>N</code> rows in the <code>jackal</code> data frame using the <code>shuffle()</code> function. The second line in the loop computes the difference in mean mandible length for the permuted data. <code>shuffle()</code> is one of the key functions available in <strong>permute</strong>. When called, as here, with a single argument (the number of observations) it returns a random permutation of the integers {1, &#8230;, <code>N</code>}. In fact, it works very much as a wrapper for the base R function <code>sample()</code>:</p>
<p><pre class="brush: r; light: true;">
&gt; set.seed(2)
&gt; (r1 &lt;- shuffle(10))
 [1]  2  7  5 10  6  8  1  3  4  9
&gt; set.seed(2)
&gt; (r2 &lt;- sample(1:10, 10, replace = FALSE))
 [1]  2  7  5 10  6  8  1  3  4  9
&gt; all.equal(r1, r2)
[1] TRUE
</pre><br />
In future posts I&#8217;ll talk more about <code>shuffle()</code> and some of the other key functions in <strong>permute</strong>. For now, we&#8217;ll rush ahead and look at the results of the permutation test. A histogram of the Null distribution showing the observed difference of means via a rug plot can be produced using<br />
<pre class="brush: r; light: true;">
&gt; hist(Djackal, main = &quot;&quot;,
+      xlab = expression(&quot;Mean difference (Male - Female) in mm&quot;))
&gt; rug(Djackal[5000], col = &quot;red&quot;, lwd = 2)
</pre><br />
The resulting figure looks like the one shown below:<br />
<div id="attachment_211" class="wp-caption aligncenter" style="width: 490px"><a href="http://ucfagls.files.wordpress.com/2011/10/jackal_null_distr.png"><img src="http://ucfagls.files.wordpress.com/2011/10/jackal_null_distr.png?w=640" alt="Permutation Null distribution for difference of mean mandible length" title="Permutation Null distribution for difference of mean mandible length"   class="size-full wp-image-211" /></a><p class="wp-caption-text">Permutation Null distribution for difference of mean mandible length. The red tick mark indicates the observed difference in mean mandible lengths</p></div></p>
<p>The observed difference of mean mandible length is located in the extreme right tail of the Null distribution. The number of permuted difference of mean lengths that are equal to or greater than the observed difference is 12, yielding a permutational <em>p</em> value of 0.0024<br />
<pre class="brush: r; light: true;">
&gt; (Dbig &lt;- sum(Djackal &gt;= Djackal[5000]))
[1] 12
&gt; Dbig/length(Djackal)
[1] 0.0024
</pre><br />
This is comparable with the <em>p</em> value determined via the <em>t</em>-test and indicates strong evidence against the null hypothesis of no difference in mean mandible lengths. This we can reject the Null hypothesis that male and female golden jackals have similarly sized mandibles.</p>
<p>I hope that has whet your appetite? In future posts I&#8217;ll explain more about how <strong>permute</strong> works and explain how to use it to generate restricted permutations.</p>
<p>References:<br />
Higham C, Kijngam A, Manly B (1980). An analysis of prehistoric canid remains from Thailand. <em>Journal of Archaeological Science</em>, <strong>7</strong>, 149–165.<br />
Manly B (2007). <em>Randomization, bootstrap and Monte Carlo methods in biology</em>. 3rd edition. Chapman &amp; Hall/CRC, Boca Raton.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ucfagls.wordpress.com/203/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ucfagls.wordpress.com/203/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ucfagls.wordpress.com/203/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ucfagls.wordpress.com/203/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ucfagls.wordpress.com/203/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ucfagls.wordpress.com/203/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ucfagls.wordpress.com/203/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ucfagls.wordpress.com/203/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ucfagls.wordpress.com/203/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ucfagls.wordpress.com/203/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ucfagls.wordpress.com/203/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ucfagls.wordpress.com/203/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ucfagls.wordpress.com/203/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ucfagls.wordpress.com/203/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ucfagls.wordpress.com&amp;blog=14744973&amp;post=203&amp;subd=ucfagls&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://ucfagls.wordpress.com/2011/10/04/permute-a-package-for-generating-restricted-permutations/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="https://secure.gravatar.com/avatar/af0cc2f46bd679e92029bc489cdde955?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ucfagls</media:title>
		</media:content>

		<media:content url="http://ucfagls.files.wordpress.com/2011/10/jackal_null_distr.png" medium="image">
			<media:title type="html">Permutation Null distribution for difference of mean mandible length</media:title>
		</media:content>
	</item>
		<item>
		<title>Passing non-graphical parameters to graphical functions using ...</title>
		<link>https://ucfagls.wordpress.com/2011/07/23/passing-non-graphical-parameters-to-graphical-functions-using/</link>
		<comments>https://ucfagls.wordpress.com/2011/07/23/passing-non-graphical-parameters-to-graphical-functions-using/#comments</comments>
		<pubDate>Sat, 23 Jul 2011 14:11:23 +0000</pubDate>
		<dc:creator>ucfagls</dc:creator>
				<category><![CDATA[R]]></category>

		<guid isPermaLink="false">http://ucfagls.wordpress.com/?p=194</guid>
		<description><![CDATA[Argument passing via ... is a great feature of the R language, allowing you to write wrappers around existing functions that do not need to list all the arguments of the wrapped function. ... is used extensively in S3 methods &#8230; <a href="https://ucfagls.wordpress.com/2011/07/23/passing-non-graphical-parameters-to-graphical-functions-using/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ucfagls.wordpress.com&amp;blog=14744973&amp;post=194&amp;subd=ucfagls&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Argument passing via <code>...</code> is a great feature of the R language, allowing you to write wrappers around existing functions that do not need to list all the arguments of the wrapped function. <code>...</code> is used extensively in S3 methods and in passing graphical parameters on to graphical functions. When writing you own plot methods, using <code>...</code> allows the user of your function to pass arguments like <code>cex</code>, <code>col</code>, <code>lty</code>, etc. on to the plotting function inside your method. You do, however, need to be careful in where you use <code>...</code> and which functions you pass <code>...</code> on to.<br />
<span id="more-194"></span><br />
Consider the following object <code>FOO</code> that is a data frame with our own class <code>"foo"</code></p>
<p><pre class="brush: r; gutter: false;">
FOO &lt;- data.frame(x = 1:10, y = 1:10)
rownames(FOO) &lt;- LETTERS[1:10]
class(FOO) &lt;- &quot;foo&quot;
</pre></p>
<p>A simplified <code>plot()</code> method to plot the <code>x</code> and <code>y</code> components of our object, displaying the data as points or text labels might be:</p>
<p><pre class="brush: r; gutter: false;">
plot.foo &lt;- function(X, type = c(&quot;points&quot;,&quot;text&quot;), ...) {
    x &lt;- X$x
    y &lt;- X$y
    type &lt;- match.arg(type)
    plot(x, type = &quot;n&quot;, ...)
    if(type == &quot;points&quot;) {
        points(x, y, ...)
    } else {
        text(x, y, labels = rownames(x), ...)
    }
    invisible(x)
}
</pre></p>
<p>Note that we are passing <code>...</code> on to each of <code>plot()</code>, <code>points()</code>, and <code>text()</code> so our method is very simple. However, if we try to suppress the drawing of axes using the <code>axes</code> argument of <code>plot.default()</code>, our method will generate errors</p>
<p><pre class="brush: r; gutter: false;">
&gt; plot(FOO, axes = FALSE)
Warning message:
In plot.xy(xy.coords(x, y), type = type, ...) :
  &quot;axes&quot; is not a graphical parameter
</pre></p>
<p>Turning warnings into errors, we see that the call to <code>points()</code> is where the warning originates (actually in <code>plot.xy()</code>, frame 5, but <code>points()</code> is the offending code in our method)<br />
<pre class="brush: r; gutter: false;">
&gt; options(warn = 2) ## turn warnings to errors
&gt; 
&gt; plot(FOO, axes = FALSE)
Error in plot.xy(xy.coords(x, y), type = type, ...) : 
  (converted from warning) &quot;axes&quot; is not a graphical parameter
&gt; ## look at the call stack
&gt; traceback()
9: doWithOneRestart(return(expr), restart)
8: withOneRestart(expr, restarts[[1L]])
7: withRestarts({
       .Internal(.signalCondition(simpleWarning(msg, call), msg, 
           call))
       .Internal(.dfltWarn(msg, call))
   }, muffleWarning = function() NULL)
6: .signalSimpleWarning(&quot;\&quot;axes\&quot; is not a graphical parameter&quot;, 
       quote(plot.xy(xy.coords(x, y), type = type, ...)))
5: plot.xy(xy.coords(x, y), type = type, ...)
4: points.default(x, y, ...)
3: points(x, y, ...)
2: plot.foo(FOO, axes = FALSE)
1: plot(FOO, axes = FALSE)
</pre></p>
<p>The warning results from our function passing <code>axes = FALSE</code> on to the lower-level plotting functions.</p>
<p>An obvious solution is to process <code>...</code> and strip out any offending non-graphical parameters and then arrange for the calls to use the stripped out <code>...</code>. Doing this is possible, but is very complicated. There is an alternative, simpler solution that is used in several base R functions and suggested to me by Brian Ripley (when I asked about doing this on R-Help for a function in the vegan package). The trick is to have a local, in-line wrapper around <code>points()</code> of the following form:</p>
<p><pre class="brush: r; gutter: false;">
lPoints &lt;- function(..., log, axes, frame.plot, panel.first, panel.last) { 
    points(...)
}
</pre></p>
<p>Here we list all the arguments of <code>plot.default()</code> we <em>don&#8217;t</em> want passed on to the low-level plotting calls, but importantly, they are listed <em>after</em> <code>...</code>. The only code in the body of the local function is a call to the low-level graphics function we want to use. Importantly, of the arguments taken by <code>lPoints()</code> only <code>...</code> is passed on to the graphics function it wraps. Because the arguments from <code>plot.default()</code> are named and come after <code>...</code> in the definition of <code>lPoints()</code>, any arguments passed to <code>lPoints()</code> that fully match the named arguments are automatically stripped from the <code>...</code> that is passed on to the wrapped function.</p>
<p>Using this trick, we can now write our <code>plot.foo()</code> method like this:<br />
<pre class="brush: r; gutter: false;">
plot.foo &lt;- function(X, type = c(&quot;points&quot;,&quot;text&quot;), ...) {
    lPoints &lt;- function(..., log, axes, frame.plot,
                        panel.first, panel.last) points(...)
    lText &lt;- function(..., log, axes, frame.plot,
                      panel.first, panel.last) text(...)
    x &lt;- X$x
    y &lt;- X$y
    type &lt;- match.arg(type)
    plot(x, type = &quot;n&quot;, ...)
    if(type == &quot;points&quot;) {
        lPoints(x, y, ...)
    } else {
        lText(x, y, labels = rownames(x), ...)
    }
    invisible(x)
}
</pre></p>
<p>Now we can pass arguments to both <code>plot.default()</code> and <code>points()</code> and <code>text()</code>, and the call that raised the warning earlier, now works without complaint:<br />
<pre class="brush: r; gutter: false;">
&gt; plot(FOO, axes = FALSE)
&gt;
</pre></p>
<p>Remember to reset the warning level if you followed the code above<br />
<pre class="brush: r; gutter: false;">
options(warn = 0)
</pre></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ucfagls.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ucfagls.wordpress.com/194/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ucfagls.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ucfagls.wordpress.com/194/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ucfagls.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ucfagls.wordpress.com/194/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ucfagls.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ucfagls.wordpress.com/194/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ucfagls.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ucfagls.wordpress.com/194/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ucfagls.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ucfagls.wordpress.com/194/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ucfagls.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ucfagls.wordpress.com/194/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ucfagls.wordpress.com&amp;blog=14744973&amp;post=194&amp;subd=ucfagls&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://ucfagls.wordpress.com/2011/07/23/passing-non-graphical-parameters-to-graphical-functions-using/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="https://secure.gravatar.com/avatar/af0cc2f46bd679e92029bc489cdde955?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ucfagls</media:title>
		</media:content>
	</item>
	</channel>
</rss>
