- S (язык программирования)/Temp
-
Обзор
S - язык программирования, разработанный фирмой AT&T Bell Labs (появился в середине 80-х годов), предназначен для обработки данных. Разработано несколько версий расширения языка S - S-Plus, для различных платформ (UNIX, Sun OS, Windows).
В описании S-Plus [1] (см. также [2] ), приведенном S-Press[3], отмечается, что этот продукт содержит объектно-ориентированный язык программирования, что обеспечивает возможность контролировать состояние описанных на этом языке объектов в любой точке алгоритма. Причем объектами являются все наборы данных, функции и модели анализа. Это выгодно отличает данный продукт от специализированных программных пакетов. Вы больше не должны собирать команды и функции, помещать все это черный ящик и ждать итоговой распечатки. Преимущества нового подхода состоят в обеспечении контролируемости на каждом шаге вычислений, понятности операций и уверенности в результате. Отмечается, что из концепции S-Plus исключена генерация красивых, но жестко заданных отчетов (printouts).
Краткий обзор основных черт языка S-Plus
(S-PLUS Features at a Glance [4] ).
- Имеется пользовательский интерфейс с системой меню, позволяющий осуществлять последовательность действий в диалоге с программой (Interactive analysis, with step-by-step feedback).
- Имеется встроенный объектно-ориентированный язык, (Built-in, true object-oriented language).
Возможности языка
S-PLUS поддерживает:
- Классы (объекты), механизм наследования, встроенные(?) функции и методы (generic functions, and methods).
- Операции и функции для работы со скалярными величинами, векторами и массивами (scalars, vectors, arrays)
- Структурный язык (structured language), включающий операторы for, while, next, repeat, break.
- Логические операторы: >, >=, <, <=, ==, !=, &, if else, all, any.
- Интеллектуальные операторы для работы с объектами (Sophisticated operators for assigning, extracting, replacing parts of objects).
- Объект список, позволяющий создавать структурированные массивы разнородных объектов.
- Функцию подстановки для цикла, обрабатывающего сходные объекты ("Merge" function for intregrating data sets).
- Функции "By" и "Aggregate" (for analyzing specific variables for each of the various levels of another variable).
S-PLUS позволяет:
- Создавать собственные процедуры обработки данных.
- Корректировать (modify) любую из 1650 имеющихся функций.
Интерфейс с программами на языках C и FORTRAN
- Можно использовать как интерфейс (front-end) для коммерческих библиотек (IMSL, NAG и т.д.)
- Динамическая и статическая загрузка программ пользователя, написанных на C или ФОРТРАНЕе.
- Динамическая загрузка
Интерфейс с операционной системой
- Порождение процессов (Spawn subprocesses).
- Доступ к редакторам, имеющимся в системе.
- Обмен данными с операционной системой и другими приложениями (Pass data to/from operating system and other applications).
Ввод/Вывод
-
- Ввод данных из бинарных файлов, создаваемых программами пользователя, написанными на C или ФОРТРАНЕе.
- Непосредственный экранный ввод (Interactive data editor).
- Вывод в форматах
- Поддерживает все драйверы принтеров в MS Windows.
- Импорт/Экспорт данных (data frame) из электронных таблиц Excel и Lotus 1-2-3 для Windows.
- Импорт/Экспорт данных из формата dBase или любого другого формата, поддерживаемого ODBC.
- Имеется пользовательский интерфейс с системой меню, позволяющий осуществлять последовательность действий в диалоге с программой (Interactive analysis, with step-by-step feedback).
Помощь и документация
Контекстная подсказка (help system); обширная документация; Command line recall and editing; Telephone and e-mail Helpline.
- Функции (Classic and modern functions insure penetrating analysis and best fit)
- Basic statistics
- Элементарная статистика (Descriptive summary statistics).
- Проверка гипотез по критерию Стьюдента (Student's t-test).
- Проверка гипотез по критерию хи-квадрат (Chi-square test).
- Ранговый критерий Вилксона (Wilcoxon rank sum test).
- Binomial test
- Mantel-Haenszel test
- Стандартные распределения плотности (Probability distributions).
- Многофакторная (Multivariate) статистика и графика.
- Иерархическая кластеризация (Hierarchical clustering).
- k-means clustering
- Model-based clustering
- Древовидная классификация
(Tree classifiers).
- Log-linear contingency
table analysis (анализ случайностей).
- Minimum spanning tree
(минимально разветвленное дерево).
- Компонентный анализ
(Principal components).
- Факторный анализ (Factor
analysis).
- Каноническая корреляция
(Canonical correlation).
- Многомерное масштабирование
(Multi-dimensional scaling)
- Chernoff's faces
- Графическое представление
кластеров в форме диаграмм (Star-symbol plots) и дендрограмм, отображающих дерево кластеров.
- Матрицы графиков для
пар переменных (Scatterplot matrices).
- Математические вычисления.
- Операции с векторами
и матрицами (+, * и т.д.).
- Eigenanalysis
- Инвертирование матриц
и решение линейных уравнений.
- Нахождение собственных
(Singular) значений и QR декомпозиция.
- Поддержка стандарта
IEEE (IEEE special values supported).
- Интерфейс с пакетом
LAPACK (численные методы линейной алгебры).
- Определители и нормы
матриц и [conditional estimation].
- Решение линейных уравнений
для задач неопределенности, квадратичных уравнений и метода наименьших квадратов.
- Диаграммы оценки качества
(Quality control charts).
- Shewhart charts
- Cusum charts
- Специализированные
графики (xbar, s, np, p, c, u).
- Регрессия и дисперсионный
анализ (Regression and ANOVA).
- Линейная регрессия
методом наименьших квадратов (least squares).
- Нелинейная регрессия
методом наименьших квадратов.
- Дисперсионный анализ
(Balanced and unbalanced ANOVA).
- Обратная регрессия
(Stepwise regression).
- Корреляция квадратов
остатков (Least trimmed squared residuals regression (high breakdown point robust regression)).
- Обобщенная линейная
модель (Generalized linear models).
- Обобщенная модель
роста (Generalized additive models (GAM)).
- Residual deviance
(for model comparison)
- ACE and AVAS regression
models
- Projection pursuit
regression
- M-estimates of regression
- Tree-based regression
- Survival analysis
- Kaplan-Meier and Fleming-Harrington
curves
- G-rho survival curve
tests
- Parametric survival
models
- Cox proportional hazards
models for time dependent covariates, multiple events and discontinuous intervals of risk
- Formula-based model
specification
- National rate tables
for age and sex matching of subjects to estimate expected survival curves
- Анализ временных рядов
/ сигналов (Time series/signal analysis).
- Автокорреляция.
- Построение автокорреляционной
модели (классической и грубой).
- Построение АРИСС-моделей
(ARIMA models).
- Вычисление параметров
линейных фильтров.
- Complex demodulation
- Спектральный анализ.
- Преобразование Фурье
и алгоритм БПФ (Fourier transformations).
- Сглаживание (разнообразные
классические и грубые методы).
- Интегрированная графика,
позволяющая наилучшие методы визуализации данных и результатов.
- Вывод графиков в нескольких
окнах (Multiple graphics windows).
- Управление мышью (Location
of graphics via mouse).
- Анализ графиков мышью
(Point identification using mouse).
- Переопределение цветовой
гаммы (User-definable color maps).
- Interactive color
map save/load
- Трехмерное вращение
графиков (3D data spinning).
- Матрица для отображения
взаимосвязи многих переменных.
- Condition on different
levels of an underlying variable
- Formula-based display
specification with conditioning on factors or continuous variables
- Multi-paneled displays
with flexible control over axes and aspect ratios
- "Banking"
computations that let the data select the aspect ratio
- Трехмерная графика.
- Contour plot
- Data spinning
- Mesh surface with
user-selected perspective
- Image plots (pixel
data representation, color or gray scale)
- Scatterplot matrix
brushing
- Двумерная графика
(2D plotting).
- График двух переменных
(X-Y scatterplots).
- График временной зависимости
(Time series plots).
- Диаграммы (Box plots,
pie charts, histograms, bar plots, dot charts)
- Семейства кривых (Overlay
multiple plots or display side-by-side)
- Логарифмический и
линейный масштабы (Log and linear axis scaling).
- Управление стилями
линий, курсоров, текста, цветом и пр.
- Карты США.
- Функции по выводу
карт (General mapping functions).
- Графический пользовательский
интерфейс (Windows GUI features).
- Опции могут отображаться
в специальных диалоговых панелях (dialog box), что создает дружественность интерфейса.
- Управление объектами
и возможность наблюдения за их состоянием (Object brower to interactively display filter type and select S-PLUS objects).
- Отображение предыдущих
команд, сохраняемых в специальном файле (Command history window displays all commands, which can be selected, executed, edited or saved to a file)
- Поддержка DDE, позволяющая
приложениям, разработанным под Visual Basic или Visual C++ использовать S-Plus, посылая команды на исполнение и получая результаты (DDE serve support allows applications to send commands to S-PLUS and receive results, e.g. Visual Basic or Visual C++ interface applications).
- Включает диалоговые
панели (dialog boxes) для задания параметров функций S-PLUS в диалоговом режиме.
- Включает возможность
настраивать (создавать новые) меню, диалоговые панели и органы управления, связанные с командами и функциями S-PLUS (customizable menus to generate S-PLUS commands, customizable dialog boxes and controls).
Библиотека timeslab [5], содержащая функции для построения АРСС (ARMA) моделей и анализа временных рядов. Используется интерфейс S с библиотеками ФОРТРАНа (судя по исходному тексту - IMSL, NAG, ACM Collection).
Библиотеки, содержащие функции на языке S и SPlus (S+)
Ниже приведен краткий список библиотек, содержащих функции на языке S и Splus, реализующие описанные методы, предлагаемые для решения задачи прогнозирования, а также несколько библиотек, позволяющих связывать текст на языке S с текстом, написанным на ФОРТРАНе или С (С++) :
- class - библиотека подпрограмм для классификации
- fracdiff - подпрограммы вычисления параметров арисс-модели
- gmanova - подпрограммы дисперсионного анализа
- linreg - подпрограммы построения линейной регрессии
- mclust - подпрограммы кластерного анализа
- mda - подпрограммы дискриминантного анализа
- mmreg - подпрограммы построения множественной регресии
- nnet - прогнозирование с использованием нейронных сетей
- nonlin - подпрограммы построения нелинейной регресии
- pear - периодическая авторегрессия
- s.f77.c.libs - программный интерфейс с Фортраном и С
- safe.predict
- time.series - анализ временных рядов с использованием АРСС-моделей
- time.series.guide - руководство по анализу временных рядов
- timeslab - подпрограммы по анализу временных рядов с использованием текстов на Фортране
Пакеты
Примером совмещения возможностей S и дружественного пользовательского интерфейса, описываемого на языке LISP может служить пакет S-Mode (Emacs, упоминаются версии 4.8 и ниже).
Следует упомянуть о том факте, что в тексте, описывающем достоинства языка R, указывается ряд недостатков языка S и его программных реализаций (ошибки по памяти, не полная совместимость для различных платформ и пр.). Кроме того не ясна доступность программных оболочек и компиляторов, возможно, их стоимость - велика. (Указывается, что R распространяется свободно - standart GNU-style copyleft - в отличие от copyright).
Сопоставление SAS и S (программы для анализа и обработки данных)
В приведенных ниже статьях содержится сопоствление SAS и S - двух программых продуктов, занимающих лидирующие позиции на рынке программ для анализа и обработки данных. Оба продукта содержат собственные языки программирования и средства разработки. Автор указывает на то, что он использует оба средства, однако предпочтительнее для него S-Plus. Один из аргументов в пользу S-Plus - его более низкая стоимость.
Dr. Terry Therneau uses both S-PLUS and SAS to maximize his data analysis
Описание применений S-PLUS для решения финансовых задач
<A HREF="http://www.mathsoft.com/spress/dec95/sas.HTMl">Sjo, Inc. uses S-PLUS to develop futures trading methodologies </A>
<A HREF="http://www.mathsoft.com/spress/dec95/sas.HTMl">Financial Modeling in S-PLUS</A>
<A HREF="http://www.mathsoft.com/spress/dec95/sas.HTMl">Market researchers seeking more from their data turn to S-PLUS</A>
Дистрибуторы S-PLUS - Sales Department StatSci Europe <A HREF="http://www.statsci.co.uk">[6]</A>
Источники информации в Internet
- Software-oriented
Pages (перечень страниц, почти каждая содержит информацию по одному или нескольким программным продуктам.
- Guide to Available Math Software - руководство по доступному программному
обеспечению, содержит удобную поисковую систему по ключевым словам и древовидный индекс - problem decision tree, позволяющий последовательно сужать поиск. Содержит информацию
о программных библиотеках исходных текстов и о статистических пакетах.
- Core Math LIBrary
- сборник статистических библиотек на ФОРТРАНе, с исходными текстами снабженными комментариями, включающими описание методов.
содержит информацию, включая исходные коды с примерами данных (datasets and code). Указываются языки XLispStat, S, R, BLSS и др.
- S-Plus, MathSoft Home Page cодержит информацию по языкам программирования S и S-Plus.
- Power Analysis software for PC-s обширный список программ, предназначенных для проверки статистических гипотез при анализе мощности. Обзор статистических пакетов и ссылок на соответствующие страницы.
- Kovach Computing services содержит список сайтов по статистической обработке данных. Предоставляет консультации по пакетам SIMSTAT, MVSP, Oriana.
- NPSTAT home cодержит большой список современные методы для непараметрического контроля и других методов статистической обработки (statistics in general).
Примечания
Wikimedia Foundation. 2010.