All software listed on this page is either free (for
educational/research purposes) or extremely inexpensive (sometimes,
you get what you don't pay for). Several programs are open-source and
are under the GNU license. Please be sure to properly cite any software
that you use, including add-on libraries. Give credit where credit is
due.
Statistical Computing Languages. These are high-level
programming languages that are well-suited for statistical computing.
- C/C++.
Effective if used in combination with a good numerical/statistical
library such as the GNU
Scientific
Library (GSL).
- Fortran.
Particularly Fortran 90 and later. Free subroutines/functions,
libraries, and modules
can be found at Statlib, Netlib, and on Alan Miller's Fortran
Software website.
- GAUSS. A student version
(GAUSS Light) is available for a very nominal fee. The student version
is restricted in terms of the number of elements in a given array
(although one can get around this problem some of the time with
clever programming). GAUSS is available for Unix/Linux and Windows
platforms. Several libraries are available for GAUSS although,
unfortunately, discounted student versions are not available. They
will, however, work with the student version of GAUSS.
- Ox
(Objected-Oriented Matrix Language) . Ox is an
object-oriented matrix language with a comprehensive mathematical and
statistical function library. Matrices can be used directly in
expressions, for example to multiply two matrices, or to invert a
matrix. Use of the object oriented features is optional, but
facilitates code re-use. The syntax of Ox is similar to the C, C++ and
Java languages. This similarity is most clear in syntax items such as
loops, functions, arrays and classes. Ox is one of the fastest of
the higher
high-level statistical computing languages. The console version of Ox
may be used free of charge for academic and research purposes. Binary
distributions are available for Unix/Linux and Windows platforms. Some
add-on packages are also available.
- PDL (Perl Data Language) . A
Perl extension package. The PDL concept is to give standard perl5
the ability to compactly store and speedely manipulate the large
N-dimensional data sets which are the bread and butter of scientific
computing. It may be used in Perl scripts or within an
interactive shell (perldl).
- R . R is `GNU S' -
A language and environment for statistical computing and graphics. R
is similar to the award-winning S system, which was developed at Bell
Laboratories by John Chambers et al. It provides a wide variety of
statistical and graphical techniques (linear and nonlinear modelling,
statistical tests, time series analysis, classification, clustering,
...). R is designed as a true computer language with control-flow
constructions for iteration and alternation, and it allows users to
add additional functionality by defining new functions. For
computationally intensive tasks, C, C++ and Fortran code can be linked
and called at run time . R is freely available under the terms of
the Free Software Foundation's GNU General Public License. Binary
distributions are available for Unix/Linux, Windows, and MacOS
platforms. R is similar, syntactically, to S and S-PLUS although there
are some important differences (see the FAQ for more information). A
variety of add-on packages are available for R, including many of
those available for S-PLUS and some that are not.
- XLISP-STAT
. Lisp-stat is an extensible statistical computing
environment for data analysis, statistical instruction and research,
with an emphasis on providing a framework for exploring the use of
dynamic graphical methods. Extensibility is achieved by basing
Lisp-Stat on the Lisp language, in particular on a subset of Common
Lisp. Lisp-Stat extends standard Lisp arithmetic operations to
perform element-wise operations on lists and vectors, and adds a
variety of basic statistical and linear algebra functions. A portable
window system interface forms the basis of a dynamic graphics system
that is designed to work identically in a number of different graphical
user interface environments, such as the Macintosh operating system,
the X window system, and Microsoft Windows. A prototype-based
object-oriented programming system is used to implement the graphics
system and to allow it to be customized and adapted. The
object-oriented programming system is also used as the basis for
statistical model representations, such as linear and nonlinear
regression models and generalized linear models. Many aspects of the
system design were motivated by the S language. XLISP-STAT is a
version of Lisp-Stat based on the XLISP language. Binary distributions
for Unix/Linux, MacOS, and Windows platforms are freely available
More Specialized Statistical Packages. Each package is designed
for a particular class of statistical models.
- BUGS.
Bayesian
inference Using Gibbs Sampling is a piece of computer software for the
Bayesian analysis of complex statistical models using Markov chain
Monte Carlo (MCMC) methods. It grew from a statistical research project
at the MRC Biostatistics Unit, but now is developed jointly with the
Imperial College School of Medicine at St Mary's, London. Free
binaries of classic BUGS (i.e., text/batch-file based) are available
for a variety of platforms including Unix, Linux, and MSDOS. WinBUGS
is a GUI version for Windows.
- LEM.
General program for the analysis of categorical data using a
wide variety of models (e.g., log-linear, association, regression,
path,
latent structure, and event history). Estimation is via maximum
likelihood with an EM algorithm where necessary. Free binaries are
available for Windows and DOS only.
- MIXOR/MIXNO/MIXREG/MIXPREG
. [A suite of programs for fitting mixed-effects models] including
mixed-effects linear regression, mixed-effects logistic regression
for nominal or ordinal outcomes, mixed-effects probit regression for
ordinal outcomes, mixed-effects Poisson regression, and mixed-effects
grouped-time survival analysis.These models are also called
multilevel models, hierarchical linear models, random-effects models,
and random coefficients models, to name a few. Estimation is based
on maximum likelihood with numerical integration. Free binaries are
available for Windows and DOS only.
- Mx. Mx is a
combination of a matrix algebra interpreter and a numerical optimizer.
It enables exploration of matrix algebra through a variety of
operations and functions. There are many built-in fit fuctions to
enable structural equation modeling and other types of statistical
modeling of data. It offers the fitting fuctions found in commercial
software such as LISREL, LISCOMP, EQS and CALIS, along with facilities
for maximum likelihood estimation of parameters from missing
data structures, under normal theory. Complex 'nonstandard' models are
easy to specify. For further general applicability, it allows the user
to define their own fit functions, and optimization may be performed
subject to linear and nonlinear equality or boundary constraints.
Mx is well-suited for modeling quite general mean and covariance
structure models. Free binaries are available for Windows and
Unix/Linux. The Windows version features a GUI interface.
Graphics & Data Visualization
- GGobi. GGobi is a data
visualization system for viewing high-dimensional data and is the next
edition of xgobi. It provides a new interface to many of the features
of xgobi, built using Gtk, the GIMP toolkit and provides several new
features. Free and open source. Source for Unix/Linux is available
as well as a Windows binary.
- Gnuplot. Gnuplot is a portable command-line driven
interactive data and function plotting utility for UNIX,
IBM OS/2, MS Windows, DOS, Macintosh, VMS, Atari and many other
platforms. The software is copyrighted but freely distributed (i.e.,
you don't
have to pay for it). It was originally intended as to allow scientists
and students to visualize mathematical functions and
data. It does this job pretty well, but has grown to support many
non-interactive uses, including web scripting and integration as a
plotting engine for third-party applications like Octave.
Gnuplot has been supported and under development since 1986. Gnuplot
supports many types of plots in either 2D and 3D.
It can draw using lines, points, boxes, contours, vector fields,
surfaces,
and various associated text. It also supports various specialized plot
types. Gnuplot supports many different types of terminals: interactive
screen
terminals (with mouse and hotkey functionality), pen plotters (like
hpgl),
printers (including postscript and many color devices), and printings
to output
file as vectorial pseudo-devices like LaTeX, metafont, pdf, svg, or
bitmap png.
Gnuplot is easily extensible to include new devices.
Computer Algebra
- Mathomatic is a small,
portable,
general purpose CAS (Computer Algebra System) written entirely in C.
It is totally free software (GNU LGPL license).
This is a console mode application that
compiles and runs under any operating system with a C compiler.
- Maxima is a full symbolic
computation
program. It is full featured doing symbolic manipulation of
polynomials, matrices, rational functions, integration, Todd-coxeter,
graphing, bigfloats. It has a symbolic debugger source level debugger
for maxima code. Maxima is based on
the original Macsyma developed at MIT in the 1970's. Maxima is
distributed under the GNU General Public License. Windows and linux
binaries are available. Nice interfaces to Maxima are available via
(X)Emacs and TeXmacs.
TeX-Related Software
- MiKTeX . A very complete
distribution of TeX/LaTeX for Windows. This is almost everything you
would ever need. A good front-end for MiKTeX is WinEdt (see below).
- Kile. A
TeX/LaTeX editor and interface.
- LyX . A word processor that
uses LaTeX in the background. It is also able to import and export
LaTeX files. Functionally, it is not unlike EXP. LyX is available for
Unix/Linux platforms.
- TeXmacs.
GNU TeXmacs is a free scientific
text editor, which was both inspired
by TeX and GNU Emacs. The editor allows you to write structured
documents via a wysiwyg (what-you-see-is-what-you-get) and user
friendly interface. New styles may be created by the user. The program
implements high-quality typesetting algorithms and TeX fonts, which
help you to produce professionally looking documents. The high
typesetting quality still goes through for automatically generated
formulas, which makes TeXmacs suitable as an interface for computer
algebra systems. TeXmacs also supports the Guile/Scheme extension
language, so that you may customize the interface and write your own
extensions to the editor. Converters exist for TeX/LaTeX and they are
under development for Html/MathML/Xml. In the future, TeXmacs is
planned to evolve towards a complete scientific office suite, with
spreadsheet capacities, a technical drawing editor and a presentation
mode. Binaries are available for Linux, Unix, Windows, and Mac.
- WinEdt . A Win32 text editor
that works very well as a front-end for MiKTeX. It is shareware
but a single-user license is inexpensive. WinEdt should not
be confused with WinEdit which is an entirely different
program.