S (мова програмування)

S - мова програмування, розроблений фірмою AT & T Bell Labs (з'явився в середині 80-х років), призначений для обробки даних. Розроблено кілька версій розширення мови S - S-Plus, для різних платформ ( UNIX, SunOS, Windows).

В описі S-Plus [1]), наведеному S-Press [3], зазначається, що цей продукт містить об'єктно-орієнтована мова програмування, що забезпечує можливість контролювати стан описаних на цій мові об'єктів в будь-якій точці алгоритму. Причому об'єктами є всі набори даних, функції та моделі аналізу. Це вигідно відрізняє даний продукт від спеціалізованих програмних пакетів. Ви більше не повинні збирати команди і функції, поміщати все це чорний ящик і чекати підсумкової роздруківки. Переваги нового підходу полягають у забезпеченні контрольованості на кожному кроці обчислень, зрозумілості операцій і впевненості в результаті. Відзначається, що з концепції S-Plus виключена генерація красивих, але жорстко заданих звітів (printouts).


1. Короткий огляд основних рис мови S-Plus

(S-PLUS Features at a Glance [4]).

  • Є користувальницький інтерфейс з системою меню, що дозволяє здійснювати послідовність дій у діалозі з програмою (Interactive analysis, with step-by-step feedback).
  • Є вбудований об'єктно-орієнтована мова, (Built-in, true object-oriented language).

2. Можливості мови

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 наявних функцій.

2.1. Інтерфейс з програмами на мовах C і FORTRAN

  • Можна використовувати як інтерфейс (front-end) для комерційних бібліотек (IMSL, NAG і т.д.)
  • Динамічна і статична завантаження програм користувача, написаних на C або Фортрані.
  • Динамічне завантаження DLL в Windows (Dynamic loading of Dynamic Link Libraries (DLLs) in Windows).

2.2. Інтерфейс з операційною системою

  • Породження процесів (Spawn subprocesses).
  • Доступ до редакторів, наявними в системі.
  • Обмін даними з операційною системою і іншими додатками (Pass data to / from operating system and other applications).

2.3. Введення / Висновок

  • ASCII -файли.
  • Введення даних з клавіатури.
  • Введення даних з бінарних файлів, створюваних програмами користувача, написаними на C або Фортрані.
  • Безпосередній екранний введення (Interactive data editor).
  • Висновок у форматах PostScript і HPGL.
  • Підтримує всі драйвери принтерів в MS Windows.
  • Імпорт / Експорт даних (data frame) з електронних таблиць Excel і Lotus 1-2-3 для Windows.
  • Імпорт / Експорт даних з формату dBase або будь-якого іншого формату, підтримуваного ODBC.
  • Є користувальницький інтерфейс з системою меню, що дозволяє здійснювати послідовність дій у діалозі з програмою (Interactive analysis, with step-by-step feedback).

2.4. Допомога та документація

Контекстна підказка (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).
  • Графік двох змінних (XY 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, eg 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).


3. Бібліотеки, що містять функції на мові 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 - підпрограми з аналізу часових рядів з використанням текстів на Фортрані

4. Пакети

Прикладом суміщення можливостей S і дружнього користувальницького інтерфейсу, описуваного на мові LISP може служити пакет S-Mode (Emacs, згадуються версії 4.8 і нижче).

Слід згадати про той факт, що в тексті, що описує гідності мови R, вказується ряд недоліків мови S і його програмних реалізацій (помилки по пам'яті, не повна сумісність для різних платформ тощо). Крім того не ясна доступність програмних оболонок і компіляторів, можливо, їх вартість - велика. (Вказується, що R поширюється вільно - standart GNU-style copyleft - на відміну від copyright).


5. Зіставлення SAS і S (програми для аналізу та обробки даних)

У наведених нижче статтях міститься сопоствленіе SAS і S - двох програмних продуктів, що займають лідируючі позиції на ринку програм для аналізу та обробки даних. Обидва продукти містять власні мови програмування та засоби розробки. Автор вказує на те, що він використовує обидва засоби, проте краще для нього S-Plus. Один з аргументів на користь S-Plus - його більш низька вартість.

Dr. Terry Therneau uses both S-PLUS and SAS to maximize his data analysis

6. Опис застосувань S-PLUS для вирішення фінансових завдань

Sjo, Inc. uses S-PLUS to develop futures trading methodologies

Financial Modeling in S-PLUS

Market researchers seeking more from their data turn to S-PLUS

Дистрибутори S-PLUS - Sales Department StatSci Europe http://www.statsci.co.uk

7. Джерела інформації в Internet

  • Core Math LIBrary - збірник статистичних бібліотек на Фортрані, з вихідними текстами забезпеченими коментарями, що включають опис методів.
  • Statlib містить інформацію, включаючи вихідні коди з прикладами даних (datasets and code). Вказуються мови XLispStat, S, R, BLSS та ін
  • S-Plus, MathSoft Home Page містять задану інформацію з мов програмування S і S-Plus.
  • Power Analysis software for PC-s великий список програм, призначених для перевірки статистичних гіпотез при аналізі потужності. Огляд статистичних пакетів і посилань на відповідні сторінки.
  • Kovach Computing services містить список сайтів по статистичній обробці даних. Надає консультації по пакетах SIMSTAT, MVSP, Oriana.
  • NetLib, http://risc1.numis.nwu.edu/ftp/pub/list-packages.HTMl
  • NPSTAT home містять задану великий список сучасні методи для непараметричного контролю та інших методів статистичної обробки (statistics in general).

Примітки

Див також

R (мова програмування)