STATISTICAL COMPUTING USING R/S

John Fox

(Department of Sociology, McMaster University)

ICPSR Summer Program

2008

The S statistical programming language and computing environment has become the de-facto standard among statisticians and has made substantial inroads in the social sciences. The S language has two implementations: the commercial product S-PLUS, and the free, open-source R. Both are available for Windows and Unix/Linux systems; R, in addition, runs on Macintoshes. This lecture series and associated workshops will use R.

A statistical package, such as SPSS or SAS, is primarily oriented toward combining instructions with rectangular case-by-variable datasets to produce (often voluminous) printouts. Such packages make routine data analysis relatively easy, but they make it relatively difficult to do things that are innovative or non-standard, or to add to the built-in capabilities of the package. In contrast, a good statistical computing environment also makes routine data analysis easy, but it additionally supports convenient programming; this means that users can extend the already impressive facilities of S. Statisticians and others have taken advantage of the extensibility of S to contribute more than 1400 freely available “packages” of R programs. As well, S is especially capable in the area of statistical graphics, reflecting its origin at Bell Labs, a centre of graphical innovation.

The first two (lecture) sessions are meant to provide a basic overview of and introduction to R, including to statistical modeling in R – in effect, using R as a statistical package. The following four to five workshop sessions pick up where the basic lectures leave off, and combine lecture material with hands-on experience. The workshop sessions are intended to provide the background required to use R seriously for data analysis and presentation, including an introduction to S programming and to the design of custom statistical graphs, unlocking the power in the R statistical programming environment. The topics for the workshops in session 3-7 are somewhat flexible, depending upon participants’ interests: the topics given here are suggestions. If the size of the group is sufficiently small, the workshops will be conducted in a computer lab.


Topics

Topic

Optional Reading (in the R and S-PLUS Companion)

Materials
1. Getting started with S Ch. 1 script, notes, exercises,Tom Short's R reference card, Duncan.txt
2. Statistical models in S Ch. 4, 5, & appendices script, notesexercises, Prestige.txt, Powers.txt, Long.txt
3. Data in S; using R packages Ch. 2 & 3 script, notes, exercises, nations.por, Duncan.xls
4-5. Programming in S Ch. 8 script (4), notes (4)script (5), notes (5)exercisesbugged functionssolutions
6. S Graphics Ch. 7 script, notesexercisessymbols-colours.R, UnitedNations.txt, solutions, additional example: multipart figures
7. Building R packages (interest permitting)
script, notes, matrixDemos.R



Acquiring R

Windows Users

You can download the R Windows installer from CRAN; then double-click on the installer to install R as you would any Windows software. You can subsequently download and install only those packages that you want over the Internet from CRAN, via the Packages Install packages from CRAN menu in the RGui console. Likewise, the installer for the Tinn-R programming editor for Windows can also be downloaded from the Internet. 

Mac Users

A universal binary for Mac OS X 10.4.4 and higher is avaiblable from CRAN. Double-click on the icon for R.mpkg in the disk image to install R. You can then download and install packages over the Internet via the Packages & Data Packages Installer menu.

Linux/Unix Users

Precompiled binaries for many Linux systems are avaiable from CRAN, or users can compile R from source. See CRAN for details.


SELECTED BIBLIOGRAPHY

Basic Texts

The principal source for this workshop is J. Fox, An R and S-PLUS Companion to Applied Regression, Sage, 2002. Additional materials are available on the web site for the book, including several appendices (on structural-equation models, mixed models, survival analysis, etc.); scripts for the examples in all of the chapters and appendices; information on acquiring and installing R; and more. The book is associated with the car package for R and S-PLUS. Alternatively (or additionally), more advanced students may wish to use W. N. Venables and B. D. Ripley, Modern Applied Statistics with S as their principal source.


Manuals

R is distributed with a set of manuals, which are also available at the CRAN web site.

A manual for S-PLUS Trellis Graphics (also useful for the lattice package in R) is at also available on the web.


Programming in S

R. A. Becker, J. M. Chambers, and A .R. Wilks, The New S Language: A Programming Environment for Data Analysis and Statistics. Pacific Grove, CA: Wadsworth, 1988. Defines S Version 2, which forms the basis of the currently used S Versions 3 and 4, as well as R. (Sometimes called the "Blue Book.")

W. J. Braun and D. J. Murdoch, A First Course in Statistical Programming with R. Cambridge: Cambridge University Press, 2007. This book introduces both R and traditional topics in statistical computing, such as optimization and computational linear algebra, using R as a vehicle. The pace is relatively leisurely and the material relatively easy to digest.

J. M. Chambers, Programming with Data: A Guide to the S Language. New York: Springer, 1998. Describes the new features in S Version 4, including the newer formal object-oriented programming system (also incorporated in R), by the principal designer of the S language. Not an easy read. (The "Green Book.")

J. M. Chambers, Software for Data Analysis: Programming with R. New York: Springer, 2008. Chambers’s newest book has not yet been published (as I write this syllabus in May) but will be out before the start of the 2008 ICPSR Summer Program. Although (obviously) I haven’t yet read it, it will almost surely be worth reading.

J. M. Chambers and T.J. Hastie, eds., Statistical Models in S. Pacific Grove, CA: Wadsworth, 1992. An edited volume describing the statistical modeling language in S, Versions 3 and 4, and R, and the object-oriented programming system used in S Version 3 and R (and available, for "backwards compatibility," in S Version 4). In addition, the text covers S software for particular kinds of statistical models, including linear models, nonlinear models, generalized linear models, local-polynomial regression models, and generalized additive models. (The "White Book.")

R. Ihaka and R. Gentleman, R: A language for data analysis and graphics. Journal of Computational and Graphical Statistics, 5:299-314, 1996. The original published description of the R project, now dated but still worth looking at.

W. N. Venables and B. D. Ripley, S Programming. New York: Springer, 2000. The definitive treatment of writing software in the various versions S-PLUS and R, now slightly dated, particularly with respect to R.


(Highly) Selected Statistical Methods Programmed in R

Also see the package listing on CRAN and the various CRAN "task views."

W. Bowman and A. Azzalini, Applied Smoothing Techniques for Data Analysis: The Kernel Approach with S-Plus Illustrations. Oxford: Oxford University Press, 1997. A good introduction to nonparametric density estimation and nonparametric regression, associated with the sm package (for both S-PLUS and R).

C. Davison and D. V. Hinkley, Bootstrap Methods and their Application. Cambridge: Cambridge University Press, 1997. A comprehensive introduction to bootstrap resampling, associated with the boot package (for S-PLUS and R, written by A. J. Canty). Somewhat more difficult than Efron and Tibshirani.

B. Efron and R. J. Tibshirani, An Introduction to the Bootstrap. London: Chapman and Hall, 1993. Another extensive treatment of bootstrapping by its originator (Efron), also accompanied by an S package, bootstrap (for both S-PLUS and R, but somewhat less usable than boot).

F. E. Harrell, Jr., Regression Modeling Strategies, With Applications to Linear Models, Logistic Regression, and Survival Analysis. New York: Springer, 2001. Describes an interesting approach to statistical modeling, with frequent references to Harrell's Hmisc and Design packages for S-PLUS and R.

T. J. Hastie and R. J. Tibshirani, Generalized Additive Models. London: Chapman and Hall, 1990. An accessible treatment of generalized additive models, as implemented in the gam function in S-PLUS and in the gam package in R, and of nonparametric regression analysis in general. [The gam function in the mgcv package in R takes a somewhat different approach; see Wood (2000), below.]

R. Koenker, Quantile Regression. Cambridge: Cambridge University Press, 2005. Describes a variety of methods for quantile regression by the leading figure in the area. The methods are implemented in Koenker's quantreg package for R.

C. Loader, Local Likelihood and Regression. New York: Springer, 1999. Another text on nonparametric regression and density estimation, using the locfit package (in S-PLUS and R). Although the text is less readable than Bowman and Azzalini, the locfit software in very capable.

P. Murrell. R Graphics. New York: Chapman and Hall, 2005. The definitive reference on traditional R graphics, "lattice" graphics (the R implementation of Cleveland's Trellis graphics), and the "grid" graphics on which lattice graphs are based. The figures in the book and R code to produce them are on Murrell's web site.

J. C. Pinheiro and D. M. Bates, Mixed-Effects Models in S and S-PLUS. New York: Springer, 2000. An extensive treatment of linear and nonlinear mixed-effects models in S, focused on the authors' nlme package, which is available for both S-PLUS and R. Mixed models are appropriate for various kinds of non-independent (clustered) data, including hierarchical and longitudinal data.

Sarkar, D., Lattice: Multivariate Data Visualization with R. New York: Springer, 2008. Deepayan Sarkar is the developer of the powerful lattice package in R, which implements Trellis graphics. This book provides a fine introduction to and overview of lattice graphics.

J. L. Schafer, Analysis of Incomplete Multivariate Data. London: Chapman and Hall, 1997. This text presents a broadly applicable Bayesian treatment of missing-data problems, including methods for multiple imputation. The most extensive implementation of the methods in the book is in the missing package in S-PLUS version 6. Schafer's norm, cat, mix, and pan packages are available for earlier versions of S-PLUS and for R.

P. Spector, Data Manipulation with R. New York: Springer, 2000. Data management is a dry subject, but the ability to carry it out is vital to the effective day-to-day use of R (or of any statistical software). Spector provides a reasonably broad and clear introduction to the subject

T. M. Therneau and P. M. Grambsch, Modeling Survival Data: Extending the Cox Model. New York, Springer: 2000. An overview of both basic and advanced methods of survival analysis (event-history analysis), with reference to S and SAS software. There are both S-PLUS and R versions of Therneau's state-of-the-art survival package.

W. N. Venables and B. D. Ripley. Modern Applied Statistics with S, Fourth Edition. New York: Springer, 2002. An influential and wide-ranging treatment of data analysis using S. Many of the facilities described in the book are programmed in the associated (and indispensable) MASS, nnet, and spatial packages, available both for S-PLUS and R. This text is more advanced and has a broader focus than my R and S-PLUS Companion.

S. N. Wood, Generalized Additive Models: An Introduction with R. New York: Chapman and Hall, 2006. Describes the mgcv package in R, which contains a gam function for fitting generalized additive models based on smoothing splines. The initials "mgcv" stand for multiple generalized cross validation, the method by which Wood selects GAM smoothing parameters. 


Other Sources (Some Free)

See the R and S-PLUS web sites. R News, the newsletter of the R Project for Statistical Computing is also a good source of information. Also see R News, the on-line newsletter/journal of the R Project.


Last Modified: 5 July 2008 by J. Fox <jfox AT mcmaster.ca>