11 research outputs found
Supplement 1. SAS program code to estimate regression slopes and then test equivalence, and Ambystoma data.
<h2>File List</h2><blockquote>
<p><a href="EquivSlope.sas">EquivSlope.sas</a>
-- EquivSlope.sas: SAS (SAS 1999) program code to estimate regression slopes,
assuming ar(1) errors, then test equivalence.</p>
<p><a href="Ambystoma.txt">Ambystoma.txt</a>
-- Ambystoma data set.</p>
<p>
</p></blockquote><h2>Description</h2><blockquote>
<p>The file "EquivSlope.sas"
is SAS (SAS 1999) program code to estimate regression slopes, assuming ar(1)
errors, then test equivalence. The code was written for SAS version 8.2.Â
It produces identical results in SAS version 9.0. Comments are the text surrounded
by /* and */. The first data step (data trend;) reads the raw data and produces
a SAS data set with one observation per species and year. The proc mixed
step estimates the regression slope for a log-linear model with ar(1), i.e.,
autocorrelated at lag 1, errors. Parameter estimates are stored in the data
set named parms. The slopes are identified as effect = ‘year’. The second
data step (data tests;) does the equivalence test calculations for the slope,
using an equivalence interval of (-0.0346, 0.0346). LT is the <i>t</i> statistic
for testing H0a (slope less than lower boundary). UT is the t statistic for
testing H0b (slope greater than upper boundary). LP and UP are the corresponding
<i>P</i> values. This information is saved in a text file (ests.txt)
and a SAS data set. The final proc print step prints the equivalence test
results.</p>
<p>Â The
file "Ambystoma.txt"
is an <i>Ambystoma</i> data set. The first line is a header line with variable
names. Subsequent lines contain the species (<i>A.</i> <i>talpoideum</i>
or <i>A</i>. <i>tigrinum</i>), the year, and the count of breeding females.</p>
</blockquote
Appendix B. The SAS code used to fit a Poisson regression to detailed and aggregate data.
The SAS code used to fit a Poisson regression to detailed and aggregate data
Appendix A. A description of the likelihod function for combining detailed observational and temporally aggregated data.
A description of the likelihod function for combining detailed observational and temporally aggregated data
Appendix B. AIC values for model fit comparisons of the terrestrial distributions of adult and juvenile ambystomatids.
AIC values for model fit comparisons of the terrestrial distributions of adult and juvenile ambystomatids
Appendix D. Summary of terrestrial mean migration distances for eight ambystomatid species.
Summary of terrestrial mean migration distances for eight ambystomatid species
Appendix C. Estimated buffer radii that contain 50% or 95% of the juvenile Ambystoma opacum, adult A. opacum, or adult A. talpoideum around Ginger’s Bay.
Estimated buffer radii that contain 50% or 95% of the juvenile Ambystoma opacum, adult A. opacum, or adult A. talpoideum around Ginger’s Bay
Appendix A. Locations of the encircling drift fence/pitfall traps, and partial fences at 90, 172, and 332 m from the Ginger’s Bay wetland in Aiken County, South Carolina, USA.
Locations of the encircling drift fence/pitfall traps, and partial fences at 90, 172, and 332 m from the Ginger’s Bay wetland in Aiken County, South Carolina, USA
Projected improvements in total program run time using Amdahl's law.
<p>(<b>A</b>) Realized total speed up when a section of code, taking up a fraction α of the total run time, is improved by a factor <i>I</i> (i.e., the expected program speed-up when the focal section runs <i>I</i> times faster). We see that optimization is only effective when the focal section of code consumes a large fraction of the total run time (α). (B) Total expected speed-up gain for different levels of α as a function of <i>I</i> (e.g., the number of parallel computations). Theoretical limits exist to the maximal improvement in speed, and this is crucially and asymptotically dependent on α—thus code optimization (and investment in computation hardware) are subject to the law of diminishing returns. All predictions here are subject to the scaling of the problem (<a href="http://www.ploscompbiol.org/article/info:doi/10.1371/journal.pcbi.1004140#pcbi.1004140.s001" target="_blank">S1 Text</a>, section 2).</p
Execution time in minutes, required to complete various computational problems, using the optimization techniques discussed.
<p>Panels A and B show the execution time as a function of problem size for 10,000 bootstrap resamples conducted on datasets varying in size (A) and time required to run a stochastic population model against the number of time steps (B). "Naive" R code, in which no optimizations are applied, uses most computing resources (solid lines in A and B). Optimized R code, with use of efficient functions and optimal data structures pre-allocated in memory (dashed lines in A and B), is faster. In both panels A and B, the largest speed-ups are obtained by using optimal R code (black lines). Subsequent use of parallelism causes further improvement (dot-dashed green line) in A. In panel B, using R's byte compiler improved execution time further above optimal R code (dotted lines in green) while the smallest execution times were achieved by refactoring code in C (red dot-dashed lines). Panels C and D give the computing time (in minutes) needed to conduct the calculations from (C) Merow et al. [<a href="http://www.ploscompbiol.org/article/info:doi/10.1371/journal.pcbi.1004140#pcbi.1004140.ref010" target="_blank">10</a>] and (D) the calculations represented by Fig. 3 in Visser et al. [<a href="http://www.ploscompbiol.org/article/info:doi/10.1371/journal.pcbi.1004140#pcbi.1004140.ref011" target="_blank">11</a>]. Bars in panel C represent the original unaltered code from [<a href="http://www.ploscompbiol.org/article/info:doi/10.1371/journal.pcbi.1004140#pcbi.1004140.ref010" target="_blank">10</a>] (I), the unaltered code run in parallel (II), the revised R code where we replaced a single data.frame with a matrix (III) and the revised code run in parallel (IV). Bars in panel (D) represent the original unaltered code [<a href="http://www.ploscompbiol.org/article/info:doi/10.1371/journal.pcbi.1004140#pcbi.1004140.ref011" target="_blank">11</a>] (I), original run in parallel (II), optimized R code (III), optimized R code using R's byte compiler (IV), optimized R code run in parallel (V), optimized R code using byte compiler run parallel (VI), code with key components refactored in C (VII), and parallel execution of refactored code (VIII). All parallel computations were run on 4 cores, and code is provided in <a href="http://www.ploscompbiol.org/article/info:doi/10.1371/journal.pcbi.1004140#pcbi.1004140.s001" target="_blank">S1 Text</a>, section 3, <a href="http://www.ploscompbiol.org/article/info:doi/10.1371/journal.pcbi.1004140#pcbi.1004140.s002" target="_blank">S2</a> and <a href="http://www.ploscompbiol.org/article/info:doi/10.1371/journal.pcbi.1004140#pcbi.1004140.s003" target="_blank">S3</a> Texts.</p