arXiv ScienceSearch

arXiv · 1409.3531

Object-Oriented Programming, Functional Programming and R

Abstract

This paper reviews some programming techniques in R that have proved useful, particularly for substantial projects. These include several versions of object-oriented programming, used in a large number of R packages. The review tries to clarify the origins and ideas behind the various versions, each of which is valuable in the appropriate context. R has also been strongly influenced by the ideas of functional programming and, in particular, by the desire to combine functional with object oriented programming. To clarify how this particular mix of ideas has turned out in the current R language and supporting software, the paper will first review the basic ideas behind object-oriented and functional programming, and then examine the evolution of R with these ideas providing context. Functional programming supports well-defined, defensible software giving reproducible results. Object-oriented programming is the mechanism par excellence for managing complexity while keeping things simple for the user. The two paradigms have been valuable in supporting major software for fitting models to data and numerous other statistical applications. The paradigms have been adopted, and adapted, distinctively in R. Functional programming motivates much of R but R does not enforce the paradigm. Object-oriented programming from a functional perspective differs from that used in non-functional languages, a distinction that needs to be emphasized to avoid confusion. R initially replicated the S language from Bell Labs, which in turn was strongly influenced by earlier program libraries. At each stage, new ideas have been added, but the previous software continues to show its influence in the design as well. Outlining the evolution will further clarify why we currently have this somewhat unusual combination of ideas.

Explore related subjects

Keep this discovery

Explore connections, maps & timelines

BibTeXRIS

John M. Chambers. 2014-09-09. Object-Oriented Programming, Functional Programming and R. https://doi.org/10.1214/13-sts452

Cite the original work for its findings. Save a collection to share your selection of sources.

KEEP EXPLORING

Related papers

Switchback Experiments under Geometric Mixing

The switchback is an experimental design that measures treatment effects by repeatedly turning an intervention on and off for a whole system. Switchback experiments are a robust way to overcome cross-unit spillover effects; however, they are vulnerable to bias from temporal carryovers. In this paper, we consider properties of switchback experiments in Markovian systems that mix at a geometric rate. We find that, in this setting, standard switchback designs suffer considerably from carryover bias: Their estimation error decays as $T^{-1/3}$ in terms of the experiment horizon $T$, whereas in the absence of carryovers a faster rate of $T^{-1/2}$ would have been possible. We also show, however, that judicious use of burn-in periods can considerably improve the situation, and enables errors that decay as $\log(T)^{1/2}T^{-1/2}$. Our formal results are mirrored in an empirical evaluation.

stat.ME

Saddlepoint approximations for plug-in resampling

Resampling-based procedures can improve on normal approximations in sparse, large-scale testing problems, but their computational cost can be prohibitive. We recognize that several existing procedures belong to a faster plug-in resampling subclass, fixing fitted nuisance parameters during resampling. When the resampled statistic is a sum of conditionally independent terms, the saddlepoint approximation (SPA) for the resampling $p$-value offers further acceleration, replacing resampling with an analytical tail approximation. However, standard Edgeworth-based approximation-error bounds impose regularity conditions that are hard to verify for plug-in resampling laws. We use an alternative approach to establish a finite-sample relative-error bound for the Lugannani-Rice approximation under more tractable conditions, which we apply in two contexts. In statistical genetics, we identify response resampling procedures as the targets of existing SPAs and establish guarantees in a representative setting. In conditional independence testing, we introduce spaCRT, an SPA for the distilled conditional randomization test (dCRT), which has been applied successfully in biology. Our rates quantify the effects of sparsity and signal strength, with matching lower bounds in special cases. We additionally establish asymptotic Type-I error control of the corresponding plug-in resampling procedures under growing sparsity. In simulations and single-cell CRISPR data analysis, spaCRT closely approximates dCRT $p$-values and preserves its statistical performance while accelerating computation by up to 250-fold.

stat.ME

NIRVAR: Network Informed Restricted Vector Autoregression

High-dimensional panels of time series often arise in finance and macroeconomics, where co-movements within groups of panel components occur. Extracting these groupings from the data provides a coarse-grained description of the complex system in question and can inform subsequent prediction tasks. We develop a novel methodology to model such a panel as a restricted vector autoregressive process, where the coefficient matrix is the weighted adjacency matrix of a stochastic block model. This network time series model, which we call the Network Informed Restricted Vector Autoregression (NIRVAR) model, yields a coefficient matrix that has a sparse block-diagonal structure. We propose an estimation procedure that embeds each panel component in a low-dimensional latent space and clusters the embedded points to recover the blocks of the coefficient matrix. Crucially, the method allows for network-based time series modelling when the underlying network is unobserved. We derive the bias, consistency and asymptotic normality of the NIRVAR estimator. Simulation studies suggest that the NIRVAR estimated embedded points are Gaussian distributed around the ground truth latent positions. On three applications to finance, macroeconomics, and transportation systems, NIRVAR outperforms competing models in terms of prediction and provides interpretable results regarding group recovery.

stat.ME