Quotes from a review of sc in the British Journal of Mathematical &
Statistical Psychology:
"sc is a statistical calculator in much the same
way as a Ferrari is a family runabout. The vast range of internal and library
routines can be mixed and matched into more analyses than most of us would want
in a lifetime. The range of statistical and mathematical black boxes isso
extensive and the methods so up to date, that sc has the potential to match, and
in many cases far outstrip, virtually any other statistical package...sc is
particularly strong on non-parametric and distribution- free methods and on
regression...an exceptionally comprehensive on-line HELP system...the manual is
helpful and readable...sc has all the power and flexibility of GAUSS with the
extra bonus of a far more extensive library of ready-made statistical routines."
sc is currently running in 10 countries, has been chosen by the U.K. Open
University as the software for its M246 Statistics course, is used for research
on the national economy by the Central Statistical Office in London, and has
been exposed to thousands of student-hours of testing.
sc is a statistical calculator that runs under MS-DOS and Unix. It can be
used very simply, like a hand-held calculator: for example, you can evaluate
scalar or vector/matrix expressions, or type Tprob(2.145,23) to find an area in
the right tail of Student t with 23 degrees of freedom. At this level, sc
differs from hand-held calculators in what is built in: you can look up
non-central distributions, perform Fourier analysis, carry out robust smoothing,
do bootstrap and jack-knife calculations, fit many types of regression model,
minimize or integrate a function, and so on, in each case with a single
instruction.
But sc is also a structured programming language, and it comes with over 400
built-in routines (compiled C) and a library of over 400 external routines
(written in the sc language and loaded from disk as required). This gives
instant access to a large range of statistical methods. And you can easily
extend sc by defining your own functions and procedures. Because there are over
800 routines to draw on, your own routines will usually be easy to write,
extremely compact, and very fast in execution. Unlike most similar software, sc
supports recent distribution-free methods, robust methods, and methods based on
permutation and rerandomization, as well as classical methods. It thus provides
a fast, effective, and very flexible way of going beyond the few traditional
'set pieces' offered by most statistical packages.
Language Features
Long variable names. Vectors and (regular or ragged)
matrices, that can be re-sized without loss of contents. Subvector and submatrix
notations. While-loops, repeat-loops, if-then-else conditions. Function and
procedure definition, allowing the number and type of arguments to vary across
calls. Global and local variables. Recursion. Multiple assignment. Escape to the
Operating System, leaving sc suspended. Renaming or hiding any sc symbols.
Built-in and user-definable constants. Level of type-fixing is controllable by
the user. You can allow functions of scalars to operate directly on vectors or
matrices, or functions of vectors to operate directly on matrix rows: e.g.
plot(log(Y),sqrt(X)) will plot a log-transformed version of vector Y against a
square-root- transformed version of vector X, or gt(M,100) will make a matrix of
the same shape as M containing 0 or 1 as the corresponding entry in M is <=
or > 100. There is also an 'apply' mechanism, which often avoids the need for
explicit loops, reducing the risk of error and leading to much faster execution.
There are special facilities for storing and manipulating sparse vectors and
matrices efficiently. Functions and procedures, whether built-in or external,
can be passed as arguments to external routines. There is a pseudo- structure
mechanism, which allows a routine to receive a single argument, P (say), and to
refer to its 'components' (say P.x, P.y, and P.label).
Help
Almost all the printed manual is available online while running sc
or from the Operating System, including the tutorials and an alphabetically
organized language reference. There is an 'a propos' mechanism, that will list
all routines relevant to a particular topic, and another to find all routines
that match a fragment of a routine name. You can enquire about the role and use
of any built-in or external routine, and run a supplied example automatically.
There is an online glossary of technical statistical and computing terms. You
can inspect the history of the current session at any point. There is a built-in
command-history mechanism, allowing previous commands to be recalled, edited,
and re-entered; this greatly reduces the amount of typing necessary. sc is very
well protected against user errors, there are extremely specific error messages,
and you can set various levels of 'tracing': for example, when an error
condition arises you can arrange for the recent history of routine-calls to be
given, plus information about the status of current variables. You can easily
modify or extend the help system if you wish: for example, if you write your own
routines, you can integrate any documentation you wish to provide into the help
system.
Files
sc supports text data-files (which can easily be exchanged with
other software) and binary files (for rapid access to large amounts of data).
Data-files can consist of raw data, or can be 'self-describing', that is, can
contain vector and matrix definitions as well as the numbers themselves. By
default, data items need to be separated by 'white space', and there are no
other constraints on their layout; but you can also read data- files containing
separator characters (e.g. ',' or ';'). There is a routine to make it easy to
convert from column-oriented layouts (e.g. in SPSS). There are many routines to
help with re-arranging data, by re-ordering vectors or matrix rows, selecting
matrix rows or columns, purging values outside a certain range, and so on.
Versions
For any standard PC with 640K RAM and a hard disk, there is a
version of sc to run in Real Mode: because of the limited amount of memory
available, this limits vector sizes to 8190 elements, and matrices to 8190 rows.
For 386/486/Pentium machines with at least 8 Mbytes RAM (4 if you are willing to
accept some reduction in functionality), VGA/SVGA, and at least 20 Mbyte free
space on the hard disk, there is a version of sc to run in Protected Mode: this
is a full 32-bit program, which can use Extended Memory and can support up to 32
MByte Virtual Memory by swapping from RAM to your hard disk. The Protected Mode
MS-DOS sc does not have any built-in limits as to vector or matrix size, and
runs considerably faster than the Real Mode version: it is strongly recommended
if you wish to work with large data-sets. The Unix sc is similar to the MS-DOS
Extended Memory version: it will use whatever Virtual Memory support the
particular Unix machine provides. Unix and MS-DOS Protected Mode versions have a
few additional built-in routines: an additional minimization routine (conjugant
gradients), a density trace routine using a Gaussian kernel, a very fast network
algorithm for exact tests on r-by-k contingency tables, and Stromberg's (1991)
exact Least Median Square multiple regression algorithm (yes, sc is up to date).
All MS-DOS versions share a command-history mechanism and use pop-up windows for
help and menus; these features are not used in all Unix versions. Apart from the
differences listed, all versions of sc behave identically, and share the same
library of external routines. There is even a version to run on T800 or T9000
transputers.
Manual
The printed manual contains 8 introductory tutorials, an A-Z
reference section, alphabetical and categorized lists of all built-in and
external routines, a section on error messages, details of the main algorithms
used by the built-in routines, information about how to reconfigure sc, and
descriptions of the various editors, file-viewers, searching, and
character-translation utilities supplied with sc. It is in loose-leaf ring book
format, about 550 pages in 3 volumes, with sectionalized page numbering, so that
the printed documentation can be updated in step with the software, as
frequently as necessary. Almost all the manual is also available online.
Plots and displays
sc supports text-screen (80-by-25) plots and displays
and high resolution screen and paper output by collaboration with gnuplot and
ggrap in Unix and Protected Mode MS- DOS versions. Ready to run versions of
gnuplot and the ggrap/pic/troff/tbl/eqn tools are supplied free with Unix and
Protected Mode MS-DOS sc. See the separate list of What you can do in sc
without any programming for a list of the plots and displays provided.
Differences from other products
sc differs from other extensible and
programmable statistical systems in the number of ready-to-run routines
provided. The large number of built-in (compiled C) routines, and the advanced
language features such as function extension, make programs written in the sc
language very fast in execution, so that there are often minimal overheads
relative to compiled C programs. And sc does not suffer, like some software,
from inefficient memory management, so it can cope with huge problems (in MS-DOS
Protected Mode or Unix versions) without being slowed to a halt by unnecessary
swapping. Recently a user sent in a report of how a sequence of operations on
some very large matrices, which had to be run overnight on a Sun running S Plus,
could be done by sc in about 2 minutes: we are not talking about minor
speed-gains here. sc is also unusually up-to-date in its statistical contents.
Speed
Some tests of accuracy and speed are given in the item Linux
Pentium II Demo on the home page.
Reviews
Full-length reviews of sc are:-