[株式会社 NTTデータ数理システム]

第1章 S-PLUSの概要


はじめに

実験、観測、調査、日常業務などから得られるデータを、いろいろな角度から眺め、検討し、データの示す現象の隠れた規則性を明示するのが「データ解析」です。

この目的のためには、データの種類に応じて「大量な数字の特徴を要約する統計量」を適当に選ばなければなければなりません。見やすいグラフを描くことも重要ですし、実行のための高度な計算機利用技術も必要です。

S-PLUSはAT&Tベル研究所で開発されたオブジェクト指向の対話型データ解析言語Sをベースに、米国MathSoft(マスソフト)社が各種機能を強化し、UNIXとMS-Windows に対応した統計解析・データ解析・グラフィックスのための統合環境です。なお、日本では、株式会社 NTTデータ数理システムが総代理店としてサポートや日本語化・日本独自のコンピュータへの移植を行っています。

また、S言語は配列演算も簡単に記述できる関数型汎用計算機言語であり、柔軟で拡張も容易なので、問題解決、算法の開発、その評価などにも大いにその威力を発揮することができます。さらには、対話型環境と拡張可能性を活用することにより「データとの対話を助けるエキスパート・システム」の構築も可能となります。

S-PLUSを使用することによって、「データとの対話」が「グラフィックス」を介してより滑らかに進行し、「データ自身に現象の規則性を語らせる」ことが楽に、楽しく行えるものと考えます。

例えば、データの平均を計算する場合、S-PLUSがどのような構造をもつかをFORTRANでコーディングした場合と比較しますと次のようになります。もちろん、FORTRANでも関数化は可能ですが、常にサンプル数やデータ領域など、いろいろな定義が必要です。しかし、S-PLUSでは一切そのような指定は不要で、自動的にSの関数が判断して計算を行います。


(FORTRAN) (S-PLUS)


100

200


300


400
DIMENSION X(1000)
READ(5,100) N
FORMAT(I4)
READ(5,200)(X(I),I=1,N)
FORMAT(8F10.0)
SUM=0.0
DO 300 J=1,N
SUM=SUM+X(J)
AVE=SUM/N
WRITE(6,400) AVE
FORMAT(F10.4)
END
mean(scan())

オブジェクト指向プログラミングとしてのS-PLUSの特徴を、クラスによる階層化の概念図で示しますと図1.1のようになります。

図1.1 クラスによる階層化

(上位クラス)

(下位クラス)


共通点を持つ部分をクラスにまとめる
(上位) スーパークラス より抽象的
(下位) サブクラス より具体的

この図は、例えば役所に住民票をとりに行く場合、「役所に行く」、「書類をとりに行く」とういような行動は共通した行為として「住民票をとりに行く」という目的によって既定されています。

このように、ユーザは、より細かな具体的命令を与えれば上位の共通な部分は、まとめて解釈することになります。たとえば、平均値を求めるには、まずデータを読むためにいろいろな準備が必要ですが、それらはすべて上位クラスの関数として下位クラスの関数に引き継がれているのです。

次に、Windows版S-PLUSの操作と簡単な演算式ならびに統計理論では欠かせないベクトル・行列演算について紹介します。

次ページへ進む 前ページへ戻る 目次へ

(C) 中村 健二郎 1997

----------------------------------------------------------------

ご感想の宛先は、株式会社 NTTデータ数理システム《S-PLUS》グループ <splus-info@ml.msi.co.jp>