R	  A	  so&ware	  environment	  for	  comprehensive	  sta4s4cal	  analysis	  of	  astronomical	  data	  Eric	  Feigelson	  Center	  for	  Astrosta,s,cs	  Penn	  State	  University	  Data	  Intensive	  Astronomy,	  IAU	  General	  Assembly	  Beijing	  2012	  Brief	  history	  of	  sta4s4cal	  compu4ng	  1960s	  –	  c2003:	  	  Sta,s,cal	  analysis	  developed	  by	  academic	  sta,s,cians,	  but	  implementa,on	  relegated	  to	  commercial	  companies	  (SAS,	  BMDP,	  Sta,s,ca,	  Stata,	  Minitab,	  etc).	  	  	  1980s:	  	  John	  Chambers	  (ATT)	  develops	  S	  system,	  C-­‐like	  command	  line	  interface.	  
1990s:	  Ross	  Ihaka	  &	  Robert	  Gentleman	  (Univ	  Auckland	  NZ)	  mimic	  S	  in	  an	  open	  source	  system,	  R.	  	  Expands	  to	  ~15	  Core	  Team	  members,	  GNU	  GPL	  release.	  
2000s:	  Comprehensive	  R	  Analysis	  Network	  (CRAN)	  	  for	  user-­‐provided	  specialized	  packages	  grows	  exponen,ally.	  ~20	  early	  packages	  incorporated	  into	  base-­‐R.	  	  	  By	  ~2005,	  R/CRAN	  is	  the	  dominant	  public	  sta,s,cal	  so]ware	  system	  for	  the	  development	  and	  promulga,on	  of	  new	  sta,s,cal	  methodology.	  	  Used	  extensively	  by	  sta,s,cians	  and	  many	  user	  communi,es	  (genomics,	  econometrics,	  ecology).	  Es,mated	  2M	  users	  (2010)	  	  	  Growth	  of	  CRAN	  contributed	  packages	  Aug	  24,	  2012	  count:	  4,001	  packages	  Aspects	  of	  the	  social	  organiza,on	  and	  trajectory	  of	  the	  R	  project,	  	  J.	  Fox,	  The	  R	  Journal,	  	  1/2,	  5	  (2009)	  	  The	  R	  sta4s4cal	  compu4ng	  environment	  •R	  integrates	  data	  manipula,on,	  graphics	  and	  extensive	  sta,s,cal	  analysis.	  
Uniform	  documenta,on	  and	  coding	  standards.	  	  Quality	  control	  is	  limited	  outside	  of	  base-­‐R.	  

•Fully	  programmable	  C-­‐like	  language	  (similar	  to	  IDL).	  Specializes	  in	  vector	  or	  matrix	  inputs.	  

•Easily	  downloaded	  from	  hcp://www.r-­‐project.org	  for	  Windows,	  Mac	  or	  linux.	  

•Many	  resources:	  	  R	  help	  ﬁles	  (3500p	  for	  base	  R),	  on-­‐line	  tutorials,	  >100	  books,	  Use	  R!	  conferences,	  The	  R	  Journal	  &	  J.	  Stat.	  So3ware	  	  •4000+	  user-­‐provided	  add-­‐on	  CRAN	  packages	  •Diﬃcul,es:	  	  Finding	  what	  you	  want,	  and	  understanding	  what	  you	  ﬁnd.	  	  Improved	  educa,on	  in	  sta,s,cs	  addresses	  the	  lacer	  problem.	  	  Some	  broad	  topics	  covered	  by	  base-­‐R	  arithme,c	  &	  linear	  algebra	  bootstrap	  resampling	  empirical	  distribu,on	  tests	  exploratory	  data	  analysis	  	  generalized	  linear	  modeling	  graphics	  robust	  sta,s,cs	  linear	  programming	  local	  and	  ridge	  regression	  maximum	  likelihood	  es,ma,on	  mul,variate	  analysis	  mul,variate	  clustering	  neural	  networks	  smoothing	  spa,al	  point	  processes	  sta,s,cal	  distribu,ons	  	  sta,s,cal	  tests	  survival	  analysis	  ,me	  series	  analysis	  Selected	  methods	  in	  Comprehensive	  R	  Archive	  Network	  (CRAN)	  Bayesian	  computa,on	  &	  MCMC,	  classiﬁca,on	  &	  regression	  trees,	  gene,c	  algorithms,	  geosta,s,cal	  modeling,	  hidden	  Markov	  models,	  irregular	  ,me	  series,	  kernel-­‐based	  machine	  learning,	  least-­‐angle	  &	  lasso	  regression,	  likelihood	  ra,os,	  map	  projec,ons,	  mixture	  models	  &	  model-­‐based	  clustering,	  nonlinear	  least	  squares,	  mul,dimensional	  analysis,	  mul,modality	  test,	  mul,variate	  ,me	  series,	  mul,variate	  outlier	  detec,on,	  neural	  networks,	  non-­‐linear	  ,me	  series	  analysis,	  nonparametric	  mul,ple	  comparisons,	  omnibus	  tests	  for	  normality,	  orienta,on	  data,	  parallel	  coordinates	  plots,	  par,al	  least	  squares,	  periodic	  autoregression	  analysis,	  principal	  curve	  ﬁts,	  	  projec,on	  pursuit,	  quan,le	  regression,	  random	  ﬁelds,	  random	  forest	  classiﬁca,on,	  ridge	  regression,	  robust	  regression,	  self-­‐
organizing	  maps,	  shape	  analysis,	  space-­‐,me	  ecological	  analysis,	  spa,al	  analyisis	  &	  kriging,	  spline	  regressions	  (MARS,	  BRUTO),	  	  tessella,ons,	  three-­‐dimensional	  visualiza,on,	  wavelet	  toolbox	  Selected	  CRAN	  Task	  Views	  (hQp://cran.r-­‐project.org/web/views)	  	  	  	  	  	  	  Task	  Views	  provide	  brief	  overviews	  of	  CRAN	  packages	  by	  topic	  &	  func4onality.	  	  Maintained	  be	  expert	  volunteers,	  updated	  regularly	  
•
•
•
•
•
•
•
•
•
•
•

Bayesian	  	   	  	  ~100	  packages	  ChemPhys	  	   	  	  ~70	  packages	  Cluster 	  	  	  ~110	  packages	  Graphics 	  	  	  ~40	  packages	  High	  Performance	  Compu4ng 	  ~60	  packages	  Machine	  Learning	  ~60	  packages	  Medical	  Imaging 	  ~15	  packages	  Robust 	  	  	  ~20	  packages	  Spa4al 	  	  	  ~110	  packages	  Survival 	  	  	  ~140	  packages	  TimeSeries 	  	  ~90	  packages	  Interfaces:	  BUGS,	  C,	  C++,	  Fortran,	  Java,	  Perl,	  Python,	  Xlisp,	  XML	  (This	  is	  very	  important	  for	  astronomical	  programmers.	  	  R	  scripts	  can	  ingest	  subrou:nes	  from	  these	  languages.	  	  Two-­‐way	  communica:on	  for	  C,	  Fortran,	  Python	  &	  Ruby:	  	  you	  can	  ingest	  R	  func:ons	  in	  your	  legacy	  codes.)	  I/O:	  ASCII,	  binary,	  bitmap,	  cgi,	  FITS,	  ]p,	  gzip,	  HTML,	  SOAP,	  URL	  Graphics	  &	  emulators:	  Grace,	  GRASS,	  Gtk,	  Matlab,	  OpenGL,	  Tcl/Tk,	  Xgobi	  Math	  packages:	  GSL,	  Isoda,	  LAPACK,	  PVM	  Text	  processor:	  LaTeX	  Some	  features	  of	  R	  o Designed	  for	  individual	  use	  on	  worksta,on,	  exploring	  data	  interac,vely	  with	  advanced	  methodology	  and	  graphics.	  	  But	  it	  can	  be	  used	  for	  automated	  pipeline	  analysis.	  	  Very	  similar	  experience	  to	  IDL.	  
o Designed	  for	  using	  one	  CRAN	  package	  at	  a	  ,me.	  	  But	  packages	  like	  Ra5le	  	  (for	  data	  mining)	  and	  parallel	  (for	  mul,core	  compu,ng)	  combine	  related	  packages	  into	  an	  integrated	  environment.	  	  	  o Designed	  for	  sta,c	  canvas	  graphics.	  	  But	  many	  extensions	  to	  interac,ve,	  3D,	  tree	  graphics,	  SVG,	  RGTK2,	  Java,	  and	  other	  GUIs	  &	  devices.	  	  See	  huge	  graphics	  gallery	  at	  hcp://www.oga-­‐lab.net/RGM2.	  	  	  o Uni-­‐	  or	  bi-­‐direc,onal	  interfaces	  to	  other	  languages:	  	  BUGS,	  C,	  C++,	  Fortran,	  Java,	  JavaScript,	  Matlab,	  Python,	  Perl,	  Xlisp,	  Ruby.	  	  o Only	  a	  few	  astronomy	  CRAN	  package	  to	  date,	  including	  	  FITS	  I/O.	  	  VOStat	  	  (hQp://vostat.org)	  	  	  	  	  	  A	  ,ny	  subset	  of	  R/CRAN	  is	  implemented	  as	  a	  Virtual	  Observatory	  Web	  service	  with	  SAMP	  communica,on	  with	  other	  VO	  data	  acquisi,on	  &	  analysis	  tools.	  Outputs	  results,	  plots,	  R	  script.	  	   Data	  input	  (ASCII/URL/SAMP,	  select	  cases	  &	  variables)	   Plots/summaries	  (boxplot,	  histograms,	  2D/3D	  scacer	  plots)	   Density	  es4ma4on	  (histogram,	  ASH,	  kernel	  smoothing,	  parametric	  ﬁts)	   Goodness-­‐of-­‐ﬁt	  (tests	  of	  normality,	  KS	  &	  AD	  tests,	  chi-­‐square	  test)	   Hypothesis	  tests	  (t	  test,	  z	  test,	  paired	  t	  test,	  signed	  rank	  test)	   Regression	  (linear	  ﬁong,	  NW	  and	  LOESS	  local	  regression,	  quan,le	  regression,	  robust	  regression,	  semi-­‐parametric	  regression)	   Mul4variate	  analysis	  (mult	  regression,	  PCA,	  hierarchical	  &	  normal	  mixture	  clustering)	   Spa4al	  analysis	  (autocorrela,on	  variogram,	  k-­‐NN,	  Ripley’s	  K,	  Voronoi	  tess)	   Direc4onal	  data	  (plots,	  kernel	  smooth,	  von	  Mises	  distribu,on	  ﬁt	  &	  tests)	   Survival	  analysis	  (Kaplan-­‐Meier	  es,mator,	  2-­‐sample	  tests,	  LBW	  es,mator)	   Time	  series	  analysis	  (autocorrela,on,	  autoregressive	  models,	  periodogram)	  Computa4onal	  aspects	  of	  R	  Vector/matrix	  func,onali,es	  are	  fast	  (like	  C)	  	  	  e.g.	  a	  million	  random	  numbers	  generated	  in	  0.1	  sec,	  a	  million-­‐element	  FFT	  in	  0.3	  sec	  on	  MacBook	  pro.	  	  Some	  R	  func,ons	  are	  much	  slower	  	  e.g.	  	  for	  (i	  in	  2:1000000)	  x[i]	  =	  x[i-­‐1]	  +	  1	  The	  R	  compiler	  is	  now	  being	  rewricen	  from	  `parse	  tree’	  to	  	  	  `byte	  code’	  (similar	  to	  Java	  &	  Python)	  leading	  to	  several-­‐fold	  speedup.	  	  	  While	  designed	  for	  an	  individual	  exploring	  small	  datasets,	  R	  can	  be	  pipelined	  and	  can	  treat	  megadatsets	  Some	  high-­‐performance	  compu4ng	  packages	  o Many	  packages	  for	  parallel	  compu4ng	  communica4on:	  	  Message	  Passing	  Interface,	  netWorkSpaces,	  SOCK,	  PVM,	  Open	  MP,	  …	  	   	  #	  	  Example:	  genera,ng	  5	  random	  numbers	  in	  parallel	  	   	  library(doParallel)	  	  ;	  	  parallelcl	  <-­‐	  makeCluster(5)	  ;	  	  	  registerDoParallel(cl)	  	   	  x	  <-­‐	  foreach(i	  =	  1:5)	  %dopar%	  {i	  +	  runif(1)}	  	  	  	  	  	  	  	  	  	  	  unlist(x)	  	   	  Result:	  	  1.539	  2.357	  3.499	  4.583	  5.172	  	   	  Can	  treat	  nested	  and/or	  condi,onal	  loops.	  	  foreach	  is	  a	  new	  looping	  	  	  	  	  	  	  	  	  	  	  	  	  construct	  for	  parallel	  execu,on	  from	  the	  company	  Revolu,onAnaly,cs.	  	  	  	  	  	  	  	  	  	  	  	  Similar	  to	  Python’s	  list	  comprehensions	  including	  ﬁltering	  some	  	  evalua,ons.	  	  o Process	  management	  on	  mul4core	  computers	  &	  clusters:	  mulGcore,	  batch,	  condor:	  o Distributed	  compu,ng	  of	  mul4ple	  MCMC	  chains:	  bugsparallel	  o	  Several	  packages	  for	  cloud	  &	  grid	  processing	  …	  o	  cloudRmpi:	  	  parallel	  processing	  using	  MPI	  on	  Amazon’s	  EC2	  cloud	  o	  GridR:	  executes	  R	  func,ons	  on	  remote	  hosts,	  clusters	  or	  grids	  o	  rmr	  and	  RHIPE:	  executes	  R	  func,ons	  via	  MapReduce	  on	  a	  Hadoop	  cluster	  o	  Several	  packages	  treat	  large	  memory	  &	  out-­‐of-­‐memory	  data	  …	  o	  bigmemory:	  points	  to	  very	  large	  objects	  in	  memory	  o	  ﬀ:	  fast	  access	  to	  large	  data	  on	  disk	  o	  HadoopStreaming:	  R	  opera,ons	  on	  streaming	  tabular	  or	  string	  data	  o	  Several	  packages	  provide	  GPU	  compu4ng	  …	  o	  gputools:	  CUDA	  implementa,on	  of	  linear	  modeling,	  clustering,	  SVM,	  ICA,	  …	  o	  magma:	  matrix	  algebra	  for	  mul,core	  CPU	  &	  GPU	  architectures	  o	  OpenCL:	  R	  interface	  to	  OpenCL	  for	  heterogeneous	  CPU/GPU	  systems	  See	  CRAN	  Task	  View	  on	  High	  Performance	  Compu:ng	  	  hcp://cran.r-­‐project.org/web/views/HighPerformanceCompu,ng.html	  R	  training	  for	  astronomers	  Summer	  Schools:	  • Annual	  school	  by	  Center	  for	  Astrosta,s,cs,	  Penn	  State	  University	  • Biennial	  summer	  school	  by	  Indian	  Ins,tute	  of	  Astrophysics,	  Bangalore	  • Occasional	  training	  sessions	  in	  U.S.,	  Brazil,	  Greece,	  China,	  …	  Books:	  • Modern	  Sta4s4cal	  Methods	  for	  Astronomy	  with	  R	  Applica4ons	  	  	  	  E.	  Feigelson	  &	  G.	  J.	  Babu	  Cambridge	  Univ	  Press,	  August	  2012	  • An	  Introduc4on	  to	  R	  (hcp://www.r-­‐project.org,	  one	  of	  many	  free	  tutorials)	  • >100	  other	  books	  on	  R	  (none	  yet	  specializing	  on	  HPC)	  Sta:s:cal	  compu:ng	  Discussion	  forum,	  Q&A,	  astronomical	  CRAN	  packages:	  • Astrosta4s4cs	  &	  Astroinforma4cs	  Portal	  (hQp://asaip.psu.edu)	  	  • IAU	  Working	  Group	  in	  Astrosta4s4cs	  &	  Astroinforma4cs	  	  	  	   	  (accepted	  Monday	  by	  Commission	  5)	  Conclusions	  Astronomers	  need	  no	  longer	  be	  frustrated	  by	  unavailability	  of	  code	  for	  advanced	  sta,s,cal	  analysis	  of	  complex	  data.	  	  	  R/CRAN	  implements	  a	  huge	  range	  of	  methods	  in	  a	  friendly,	  capable,	  integrated	  so]ware	  environment.	  
R	  can	  be	  used	  interac,vely	  or	  called	  from	  Python	  or	  C.	  
R/CRAN	  can	  operate	  in	  a	  HPC	  environment.	  
The	  next	  challenge	  is	  intellectual:	  What	  methods	  best	  address	  the	  scien,ﬁc	  issues	  under	  study?	  	  	  The	  goal	  of	  science	  is	  to	  unlock	  nature’s	  secrets.	  ...	  Our	  understanding	  comes	  through	  	  the	  development	  of	  theoreGcal	  models	  which	  are	  capable	  of	  explaining	  the	  exisGng	  	  observaGons	  as	  well	  as	  making	  testable	  predicGons.	  ...	  Fortunately,	  a	  variety	  of	  	  sophisGcated	  mathemaGcal	  and	  computaGonal	  approaches	  have	  been	  developed	  to	  	  help	  us	  through	  this	  interface,	  these	  go	  under	  the	  general	  heading	  of	  staGsGcal	  	  Inference.	  	  	  (P.C.	  Gregory,	  2005)