株式会社アイザック様のご厚意により,
Linux ディストリビューション,
"S version 4" を
ソフトウェアレビューコーナーあて ご提供いただきました.
この製品のレビューをして頂くべく,
Linux Users ML等
において公募を行い,
これにご希望頂いた方々より感想などをレビュー記事にまとめていただきました.
ここに, レビューアの方々に書いていただいたレビュー記事を公開します(原稿到着順).
株式会社アイザック様, および レビューアの皆様のご厚意に感謝いたします.
- Linux の使用歴
- 6 ヶ月
- UNIX の使用歴
- 5 年
- Linux Box の主な用途
- 数値計算 (Numerical Python, Octave), X 端末
- Linux Box に載っている Linux 以外の OS
- Windows98
- Linux と Linux 以外の OS の使用頻度の比
- Linux : Solaris : MacOS : Windows95 : VMS = 2 : 3 : 3 :1
- 評価に利用した Linux BOX のハードウェア (ベンダ名, CPU, Memory, HDD, NIC etc.)
- Panasonic, Celeron434, 256MB, E-IDE 8.4GB + E-IDE 30 GB, ATI 3D rage Pro
- 評価に利用した Linux ディストリビューション
- Laser5 Linux 6.2 FTP 版
インストールは付属のプリントにそって容易に終了.
(S 言語のマニュアル自体は HTML ファイルとなっているため, 箱の中身はコンパクトである.)
parole (GUI ベースの tool) を立ち上げ, 「解析」, 「検定」, 「グラフ」などを選んでみる.
そうするとよく必要になる典型的な解析とグラフは含まれていることがわかる.
「箱ひげ図」など, 統計で外れ値をみつけて解析をすすめるのには欠かせないのも入っている. 「解析」「S-Decomp」を選ぶと強力な時系列解析が利用できる. 統計量の季節調整などは, 流通・経済分野の解析には欠かせないことだろう. また, 制御工学などの分野で頻繁に用いる自己相関や AR モデルの解析なども後は使うばかりの仕上がりになっている.
これらの操作の大半はマウスだけでできてしまう. S 言語は縁の下にあってまったく隠れてしまっていて, S のコンソールに S の文法とライブラリをまったく知る必要がない. 「ヘルプ」を選択すると WWW ブラウザで操作方法やその手法は何であるのか数式や操作画面・グラフをまじえて説明がされる. HTML ヘルプを読みながら統計を勉強しつつ, 解析をおこなうことができる. parole でやりたいことができることがわかったら, 自分のデータを用意しよう. かなりの方は, parole で事足りるのではなかろうか.
『言語 データ解析とグラフィックスのためのプログラミング環境 I, II』 共立出版 と HTML ファイルを元に自分のやりたいことに近い例題をさがそう. 『S 言語』のテキストのデータは S Version 4.4 に含まれているので, 例題がたやすく実行できる. そして, 入力データを
data <- scan ('file')
で自分の問題に置き換えよう. そうすれば, すぐに S の恩恵にあずかれる. 言語としての S は, ある程度集中的に習得しないと難しいかもしれない. 例題を元にそのまま実行する, まねてみるをくり返すのが必要だ. まずは標準で用意されているライブラリを試してみる.
S は, 最近の数値計算のインタプリタ言語の大半がそうであるように, プログラミングが簡単になっている. 変数の型は代入によって決まる. 行列演算はループなしに簡潔に書ける. 標準で線形代数・FFT のライブラリ, グラフィックスを持ち合わせている. そして統計の標準的に使う関数はすでに用意されているから, 集中的にとりかかれば難しくはない. まちがった入力をしても, S の作業環境の中なので何度でもやりなおせばいいので, コンパイラ言語とは違って気楽だ. 使い勝手は Octave と同じようなものだ.
数値計算は, 行列演算が楽でグラフィックスのそろったインタプリタ言語が発展している. 配列演算を簡単にした言語 APL の流れは, S, Octave, NumericalPython (行列演算を強化した python) などに引き継がれている. そういった意味では兄弟のような言語だ. インタプリタで書かれたライブラリを高速化したいときは, Fortran などで書かれたライブラリをリンクすればいいとなっている点まで同じだ. まずは S のような言語を試してみよう. S でのプログラミングを深めていく上では, 関数名たとえば lsfit などとタイプしてみると S で書かれた関数のコードがわかるので参考になる. S をよく使うようになるかどうかは, 解析したい対象が統計での込み入った解析であるかどうかに依存するだろう. 私の場合, 統計よりも数値計算全般であることが多く, そのために S の使用は部分的なものにとどまるだろう.
S version4.4 にはクラスやメソッドがあるので, HTML のマニュアルを元に習得するとよい.
最小二乗法による回帰 lsfit だけではもの足りない. 表計算ソフトでさえ多項式近似があるし, Gnuplot というグラフソフトでさえ 非線形の最小二乗法 Marquardt-Levenberg Algogithm でのフィッティングがあるのに, データ解析のソフトにないのは疑問.
(追記: lm, glm, gamなどの関数では関数モデルを使ってフィッティングができるようだが, 私はまだ使いこなしていない. 『S と統計モデル』柴田里程訳 (共立出版) J.M.チェンバース + T.J.ヘイスティ編 ISBN 4-320-02696-9 原題 : "Statistical Models in S" を参照のこと.)
データの解析で最適化問題になることもしばしある. 関数 (1 変数, 多変数とも) の最小化問題はしばし必要になる. MATLAB の fmin() 関数のようなものが S の中にあると S 以外にたよる必要が減る.
Octave の lsode() のように微分方程式の解法があると S の時系列の解析と組み合わせて有効に活用できる.
S の互換ソフト R でさえ, demo (graphics) でグラフィックスのデモが始まる. S にも同様な機能があってよい.
S で扱えるファイル形式にデータを加工する機能. これは awk や他の言語での習得が必要. しかし私は S の中で文字列処理やファイル処理が強化されることは期待しない. もし S がそれらを含むように拡張されたら, S は素人の手に負えないツールになっていまいそうだ.
ひたすら, 例題をまねろ. あなたのやりたい統計操作が書いてあるはず. PC-Unix 版の価格は安い. 統計ライブラリを自作・検証している間の人件費を考えたら, たちまち元をとれるはずだ.
S を勧める場合と勧めない場合.
統計処理のソフトを作成して販売するのではない限り, S に乗り換えなさい.
いくら統計用の素性のいいライブラリをもっていても, Fortran や C や BASIC は文法の制限や構文上のお荷物のために山ほどバグを生じやすい. 信頼のできる結果にたどりつくまでに, 日数がたちすぎて, だれも解析結果を喜ばない.
データ点が少なく, 標準の表計算のライブラリで処理できる場合は表計算ソフトを使い続けるのもいいでしょう. しかし, まとまった統計解析手法を使いたい場合には, 統計手法のマクロを作るよりは S を使うのをすすめたい.
箱ひげ図や時系列解析などを表計算でやろうとしてはいけない.
簡単な統計処理 (平均値, 標準偏差, 回帰直線) だったら Octave でもできる.
octave> x=[1,2,3,4,5,6] octave> mean(x)
で配列に対して操作できる点など, S と Octave は似ている.
しかしそれ以上の内容になったら, 一部の機能を S で, その他は Octave という併用での処理も考えるとよい. いくらがんばっても Octave で箱ひげ図がかけるとは思えないし, 自作ライブラリの品質の確保は苦労がいる. Octave をいじったことがあるなら S を使うもの簡単である. Octave や MatLab は 線形代数, 微分方程式, 関数の最小化 (最適化問題), FFT などを得意にする言語だ. S は統計を得意にする言語だ. 領域に重なりはあるものの得意分野を使い分けよう.
数式処理・数値計算を得意とする言語です. 既に Mathematica を利用していて統計や時系列解析を強化したいときには, それようの Mathematica のライブラリを追加購入してみるとよいでしょう. S には SQLbridge が用意されていてデータベースサーバーに問い合わせてデータ解析ができるということもお忘れなく.
>>> x=array ([1.0, 2.0, 3.0, 4.0, 5.0, 6.0]) >>> mean(x) 3.5
と似たような操作が可能です. しかし Numerical Python の豊富なデータ構造 (リスト, 辞書 (=連想配列, =ハッシュ) など), Python のもつ豊富なライブラリ (HTTP サーバーや WWW ブラウザもかける, GUI プログラミングもできる) などがあっても, 複雑な統計の部分は S にまかせなさい. 検証済みのライブラリの価値は高い. S 類似のライブラリを Numerical python で書くことも可能だが, python から S にデータを渡して, 結果を python に戻すようなことは Python は得意です. Numerical Python もクラスを使ったオブジェクト指向のプログラミングができる点が捨てがたい. ただ Numerical Python は実績・ユーザー数とも発展途上です.
S は業務での必然性がないと買えないソフトウエアで, 個人で買う人はまれだろう. S の類似ソフトウエアの R がフリーで入手できるので, それで使えることを示し, S を購入させることだろう. 業務では実績のあるライブラリを使っていることが尊重される. S と R とでそれぞれ mean とだけタイプしてみると, mean 関数の実装のしかたがまったく別物であることがわかる.
なお, 数値計算の分野では他にもよく使われるソフトウエアが存在するが, 私の使っていない処理系の解説は, 次のリンクを紹介しておく. UNIX と 数学的ソフトウエア
- Linux の使用歴
- 5 年
- UNIX の使用歴
- 5 年
- Linux Box の主な用途
- LaTeX による文書執筆, ファイルサーバー, プログラミング
- Linux Box に載っている Linux 以外の OS
- 超漢字, Windows98
- Linux と Linux 以外の OS の使用頻度の比
- 3:7
- 評価に利用した Linux BOX のハードウェア (ベンダ名, CPU, Memory, HDD, NIC etc.)
- CPU:CPU: K2-300
メモリ:128M
ハードディスクのサイズ:8G
ビデオカード (グラフィックチップ):Matrax Millenium 2MB
- 評価に利用した Linux ディストリビューション
- Vine Linux 2.0 CR
インストールの後に, 若干パスの設定が必要であったがすんなりとできた. とはいえ rpm や deb 形式のファイルが用意されてはいないのは一部のユーザーにはそれだけでマイナスのイメージを与えるかもしれない. ソフトウェアの構成はシンプルで, ise も Parole も S のなかでの関数として扱われるという仕様である. インストールさえすれば, すべての操作がグラフィカルに行えるというわけではない. これはこれでヘビーユーザーに好感をもたせるようなつくりである.
HTML のマニュアルが提供されているものの, 印刷された (あるいはユーザーが印刷可能な) マニュアルが添付されていないのは残念だ. S 言語自体のヘルプは伝統的に強力であるのだが, 商品であればこそ, しっかりとしたマニュアルを期待するのがユーザーの心理だろう. その HTML に分析法の箇所に, 「『S と統計モデル --- データ科学の新しい波 ---』で述べられている統計ライブラリ以外の手法を紹介します」といった説明が現れるのはいただけない.
市販の誤解のないようにいっておけば, この詳細な索引もついているマニュアルの出来は決して悪くない. しかし, S 互換である R には, さらに詳細な HTML 形式のマニュアルが全文検索機能つきで提供されているものがあるのだ (英文だが).
デフォルトで利用できる統計的分析の種類は決して多いとはいえない. それを望むならば, S-Plus を選択すべきであり, 新たに関数を組み込むことも可能なのだがこの点についてアイザックの S version 4 は親切ではない. 私が頻繁に利用している生存時間分析は, 標準で組み込まれていなかった.
アイザック社は, S 言語に付加価値としてグラフィカルなインターフェイスを提供することに力を入れているようである. ise は データの編集をビジュアルに行うためのツールである. アイコンは用意されておらず, メニューのみだが, 検索やコピー&ペーストといった基本的な操作はこれで十分に行えるようになる. データマトリックス上では, 変数やケースのラベルがデフォルトで表示されているのはありがたい. もちろんエクセルのような入力補助機能の機能はいっさい用意されていないのだが, Linux で直感的にデータの操作ができるようになったということの意義は大きい.
しかし Windows 系の統計パッケージソフトからの移行組であれば, ise から変数の加工 (SPSS でいう値の再割り当て) ができなかったり, 列の固定ができない点に不満を感じるだろう. さらに SPSS であれば, データの値ラベルを表示するオプションが用意されており, これは便利な機能なのだが, そういった細かいオプションはない. ise のメニューのファイルには, 「開く」が用意されていない. Parole のメニューから呼び出されることを想定された設計である.
Parole は気軽かつ十分に S を使った分析ができる環境を提供している. とりわけグラフ機能はよくできている. 箱ひげ図を描こうと思ったらまずカテゴリ軸を選択し, 従属変数をマウスでクリックするだけでよい. クリックした瞬間に描画がなされ, ただちに分布の違いを確認することができる. もともと探索的分析に適したツールであった S の本領発揮というところである.
残念なのは, これによって作成された出力をうまく閲覧・編集できるモジュールが用意されていないことである. 出力をファイル保存することはできるが, Parole によって作成された出力を編集したり, 階層化したり, 検索できるようなツールはない. 同様にグラフの出力が Jpeg や Gif 以外の多様な出力形式に対応しているのに対して, 分析結果 (クロス表などの単純集計) の出力がテキスト形式にしか対応していない. HTML や LaTeX での出力に対応してくれればありがたいのだが.
Parole とは別に Parole.qc (品質管理に特化した分析技法がメニュー化されている Parole) が提供されていることにはとまどいを感じた. これは分析手法の違いに応じてローカライズされた Parole をユーザーが作るべきということを示唆しているのか. それとも Parole で何重にも階層化されたメニューを用意することができないから, そうなっているのか. 個々のツールの魅力はともかく, 名前の付け方も含めツールの間の統一感のなさを感じた.
アイザック社の S の魅力は何といってもグラフィカルなインターフェイスである. これを便利と感じないユーザー, あるいはまったくの S の入門者ならば R で十分だろう. 豊富な分析手法に魅力を感じるユーザーは S-Plus を選択するであろう. アイザック社の S に安心するユーザーは, Windows の統計パッケージソフトからの移行者かもしれない. ただし現在用意されているツールはあくまでも補完的な存在であり統一感に欠ける. 提供されているインターフェイスは S 言語自体を完全に背後に隠して使えるようなものではない. こうしたユーザーが今のアイザック版 S に感じるのは, グラフ出力の細かい編集ができるツール, S の強力な配列データの操作を柔軟に操作できるようなツール, さらには出力の統合的管理ツールは何故ないのかということであろう. 以上のことをまとめると, S に魅力を感じるのは, これまで S に親しんできたユーザーでさらに便利に, 気軽に使いたいというユーザーであるといえそうだ. そうしたユーザーなら Parole を利用した探索的分析によって最大限のメリットを受けることができる.
- Linux の使用歴
- 4 年
- UNIX の使用歴
- なし
- Linux Box の主な用途
- ファイルサーバ, 趣味 (プログラム)
- Linux 以外に利用している OS
- Windows, MacOS
- Linux と Linux 以外の OS の使用頻度の比
- Windows 2 に対し Linux 1
- 評価に利用した Linux BOX のハードウェア (ベンダ名, CPU, Memory, HDD, NIC etc.)
- CPU: AMD-K6-2/350
メモリ: 128
ハードディスクのサイズ:8G
ビデオカード (グラフィックチップ): Riva128
- 評価に利用した Linux ディストリビューション
- Laser5 Ver6.0
データ解析というと難解な統計学の用語や複雑な計算式が浮かびます. S のオンラインマニュアルをざっと眺めても t 検定, 帰無仮説の棄却, qq プロット, クラスタ分析, 重回帰分析とかの用語がでてきます. これって「ワカラネー」.
ところがこの S を使うと, そんな統計の知識なしで現時点で考えられる最も高度な統計手法が「場当たり的」に使えてしまうのです. こんなことを言うと, 統計学の先生やアイザックさんは「交通標識も判らないで自動車を走らせているようなものだ」と青くなってしまうかもしれませんね.
例えは悪いかもしれませんが, 良く出来たホームページ作成ソフトがあれば, 難しいプロトコルやプログラム, あるいはタグすらわからなくてもそれなりの技術レベルのホームページが描けます. 場合によってはアプレットや CGI が動いてしまったりする. いろいろ使い込んで行くうちに必要に応じてプロトコルや perl なども自然に覚えてしまう. そんな感じで訳がわからなくても使えてしまうソフトだと思いました.
S は独自の Stoolkit という GUI ライブラリーをもち, Parole にみられるような, とても優れたユーザーインターフェースを実現しています. おかげでデータをスプレッドシートにでも作りさえすれば, 後は簡単な操作で統計分析検定をして, それを様々なグラフに判りやすく表示してくれるソフトでもあるのです.
例えば「距離の自乗和による相関」ということがピンとこない人でも, 散布図を見せれば大体どんなことが言いたいかは判るのではないでしょうか. 実際 Parole には一発でデータの全要素間の散布図を縦横にずらっと並べる機能があります. これは壮観で, 各データ間の相関が一目瞭然になります.
缶コーヒーの CM で「バカイッテンジャナイヨ」っていうのがありますが, あんな事業所の下請け工場を想像していただければいいでしょう. 社長が昨日まで「国際化」だの「ISO 八百万」だのと吹いていたのが今度は「IT 革命」ですか, その前に, 労働基準監督局からクレームがつかないように工場の安全管理でもしたほうがいいんじゃあないでしょうか, 「バカイッテンジャナイヨ〜」ですね.
私を含めて, 小さな事業所で働く人間にとって, OS を問わず, PC を使いこめば, 使い込む程, PC の生産性について疑問を生じる人は, 多いのではないでしょうか. IT 革命ではないですが, とりあえず, PC は買った, Word や Excel のような Office 製品はインストールした, インターネットにもダイヤルアップで接続した, (バックアップ用といって買った SCSI の先に ext2 でフォーマットされたハードディスクがぶら下がっていることに社長はまだ気づいていない.) そんな事業所で次に思いつくのが顧客管理, 商品管理用データベースソフトや, ホームページの立ち上げといったところが相場かも知れません. でも, そんな小さな事業所の「IT 革命」の選択肢として是非一考して欲しいのがデータ解析ソフト S の導入です.
私のところでは実験用電気炉を扱っています. 炉には 14 種類の違った形の耐熱レンガでできた部品がはいります. 耐熱レンガは近くの工場につくってもらっています. 木型に, 木の棒でひっぱたきながら, つぶし粘土を詰めていきます. 粘土を取りだし乾燥させ, 窯で焼き製品ができます. こんなものですから, 当然粘土の状態, 乾燥の度合い, 窯の温度で製品には「ばらつき」がでて, いざ部品を組み立てようとすると上手く炉の中に入らない, 入れたら割れたなんていうことがしょっちゅうです. その「ばらつき」の管理は, もっぱら職人さんのカンに頼っています. 温度や時間を機械的にコントロールしているならともかく, 30 年以上も前のオンボロ窯を職人さんがだましだまし使っているそんな現場で製品をデータ管理するのは不可能に思えます.
でも, そこはベル研究所の S 言語です, なんとかなるかも知れません.
窯の温度, 時間や乾燥の具合などは, 全て職人の「カン」「温度や時間なんか関係ねえよ!」「30 年粘土こねなきゃあ, わかる訳ねえだろが」で片付けられてしまうので, データとして取れるのは製品自体しかありません. とりあえず耐熱レンガのはかれる所の寸法や孔の大きさなどをノギスで測って, スプレッドシートをつくります. 社長の奥さんから料理用の秤を借りて重量も測りました.
ここで S の登場です. とりあえず, Parole という GUI のプログラムがついていますから, そこからスプレッドシートを読み込み, 基本統計量, 単回帰分析, 重回帰分析, 主成分分析, などついている機能を片っ端から試してみて, グラフを表示させてみます.
要は,
ていう要領です.
自動車や工作機械と違ってなにをしたってべつに怪我人が出るわけじゃないですから気軽なモンです. RPG (ロールプレイングゲーム) でもやっている気になって深く考えないでとりあえずやってみましょう. 次々にわけがわからない係数やら, 不細工なグラフが表示されますが, 気にもせず無視して進みます. 無意味な数字の羅列が延々と続きますが, 統計のダンジョンに入ったと思ってともかくあるアイテムを片っ端から試していくわけです. ときたま, GNOME の画面がおかしくなったりもしますが, それはもう一般 User の強み, login しなおしゃあいいンです.
今回はクラスタ分析という項目が「ピンポーン!」でした. チャーノフの顔というグラフを表示させるとずらっと並んだちんまりとした顔の中に何個かデッサンの崩れた顔が混ざっているではありませんか. 部品の種類に関係なく個体のいくつかが明らかに他と違った顔をしています. そこでクラスタ分析についての説明を読みます. 「個体の類似度をみる.」とあります.
S は同じように見えるレンガ個体の何枚かが異質なものだといってきているのです.
そこで, 工場に問い合わせると, レンガは焼く過程で割れてしまうことがあるので,
注文の量より多めに焼いている.
それでも予測したより多く割れてしまうことがあるので,
そんなときは以前に焼いて余った分から形の似たものを混ぜて数を合わせて出荷しているということでした.
要はロットが違ってたんですね.
# 混ぜるなよなあ->工場
S はロットの違いによる微妙な成分や焼きによる縮み変形の差を見逃さなかったわけです.
さて RPG でいえば一面クリアですから, ロットが違った何枚かを外してもう一度分析をやり直してみます. アイテムゲットですから同じダンジョンでも違った扉が見つかるかも知れません. すると今度は回帰分析の項目が「ピンポーン」です. ある部品のグループが他の部品と違った値を示しています. 回帰分析の説明を読むと「ある二つ以上の要素 (説明変数) が結果に影響を及ぼしていることを示す」とあります. そこでじっとみると他の部品は特に要素間の相関関係がないのですが, 二つの部品では歪みの最大値と左右の値に相関があることがわかりました.
S は, 他の部品の歪みはばらばらに歪んでいるけど, この二つの部品については左右の歪みが全体の歪みに大きく影響しているといってきているのです.
何のことだかさっぱりわからないまま工場に行ってみます. 型に歪みはないようです. 作業者の癖も疑っていたのですが, この 2 つの部品を特定の職人さんが作ったということもないようです. と, ふとしたことから, この二つの部品が特定の作業台で作られたことが判りました. ふつうは作業台の上で型につぶし粘土を詰めていくのですが, この日は部品数が 14 種と多く作業台が足りなかったので, 30 年以上も年期の入ったぼろ机を作業台の代わりにして作業していたのです. この机ぼろなのは仕方がありませんが, なんと足がしっかりしていないので傾いているのです. この机の傾きが左右の不均一を生み, S はそれを指摘していました.
S のスケーラビィリティからいうとこんな使い方は邪道かもしれません. きちんとした統計手法に基づいて巨大で複雑なデータを扱うのが本来の姿なのかもしれません. きちんとした管理もできていない事業所でしかも統計の基礎も判っていないのに S なんて猫に小判だという意見もあるとおもいます. でも S は「耐火レンガのばらつきがひどくてうまく組み合わない.」 「生成過程のデータも取れない.」 「だからお手上げだ.」と人間の目には混沌としか見えなかった状態から少ないデータからある法則性を解析してくれました. しかも, 結果は「混ぜちゃった.」とか「机の足の高さがあっていない.」というちょっと予測もしていないようなことでした. この場当たり式な方法は S が現代数学, 統計理論の最先端の技術を関数といういつでも簡単に呼び出せる形で実装しているから実現できるもので, S にしかできない荒業です. しかも S はそれを人間にわかり易いグラフというインターフェースで提示してくれます. チャーノフの顔という映画「マルコビッチの穴」のポスターみたいなグラフをもって「このレンガ君とこのレンガ君は他の人と顔が違うんです.」と説明したら, 工場の職人さんたちにバカうけでした. これが仮にスプレッドシートに並んだ数字を持っていって説明したとしても, 「実は…」と別のロットが混ざっている話はしてもらえなかったと思います.
CD-R1 枚が, A4 の印刷物が 16 ページ, B4 のプログラム使用許諾契約書 2 枚だけが 21.5cm × 11.5cm × 30.5cm という巨大なパッケージにはいってきました. デザインとしては悪くないとは思いますが. ちょっと驚かされます. 社判の押された甲乙で書かれた使用契約書の一枚に署名印鑑を押して, 返送するようになっています.
インストールはスーパーユーザになって install.sh を実行するだけです. 16 ページの印刷物のほとんどがインストールに関する解説です. スーパーユーザーでのログイン, OS のバージョンの確認, ハードディスクの空きの確認, CD のマウント方法など, が判りやすく解説されています. ほとんど Linux に対する知識がなくてもこの紙にかかれた方法に従えば用意にインストールができるでしょう.
インストーラーは指定されたディレクトリに ./S 以下のディレクトリを作ります. デフォルトは /usr/local/S です.
ここに S に関するすべてのファイルが収められます. アンインストールは ./S 以下を #rm -r するだけです. これは管理が楽で, とてもよくできていると思います. あとは一般 user になって S にパスを通す必要があります. man を使いたい場合など, ドキュメントなども設定しなければなりませんが, ディストリビューションごとに対応しなくてはならない rpm を使うことを避けたのはコマーシャルベースのソフトとしての割り切りができていると思います. man ページを表示したければ, 後で設定すれば良いでしょう. この点 GNU コミュニティの資源を享受できる R は debian, linuxppc, redhat, suse 用のバイナリが用意されており, 対象的です. この場合は rpm 一発でパスを通す必要もありません.
これもスケーラビィリティの問題だと思いますが, S のデータは, 独特のフォーマットで読み込まれますので, S 以外からは直接利用できません. また, S には (Excel のような) 実用的なデータの入力と形成の方法が用意されていません. ise() というスプレッドシートがありますが, 基本的には行列の挿入と削除程度の機能しかありません. そこでデータは S の外でデータベースなどを利用して形成しそれを S に読み込んでやる必要があります. その際 parole() は S の i.import() という関数を使って変換しますが, これに最初のデータを読み込まないというバグがあるようです. Windows 版の S には Excel のデータを S のデータに変換する Excel のマクロが用意されていますが, このマクロは S を呼び出すため Windows 版の S をもっていないと使えないようです. また本文中では触れませんでしたが, 実際には解析のためデータの形成をいろいろ工夫しています. サンプルの一つを削る等であれば parole() からでも簡単にできますが, データの足したりひいたり割ったり対数をとったり並べ変えたりという作業は, Excel 上で行って, それをその都度 i.import() で読み込み, 再び ise() であけて欠落してしまった最初の一文字を書き足すという作業をしています. S が直接テキスト形式データを扱うことできるようになれば, 読み込みの問題もなくなるし, shell command を使うこともでき操作はかなり楽になると思います. それが不可能でも, ise() の機能が強化されると作業はかなり楽になると思いました.
R のプロンプトは Bash と同じように履歴や補完の機能を持っていますが, S にはそれがなく, 一文字でも打ち間違えると, またその行をはじめから打ち直さなくてはなりません. これは, GNU の R が操作性を重視しているのに対して, S は巨大なデータ処理を前提にできるだけオーバーヘッドを少なくしたいというポリシーの違いがあると思われます. そこで R と S の住み分けを考えているのかもしれません. しかし, 使いづらいのは事実ですから, オプションで切り替えるなどの方法ででも履歴や補完の機能が使えるようにして欲しいと思いました.
- Linux の使用歴
- 4 年程
- UNIX の使用歴
- なし
- Linux Box の主な用途
- 家庭内 LAN のファイルサーバとして
ルータとして
WWW サーバとして
ISP のサーバで公開している WWW サイトのテスト用として
- Linux Box に載っている Linux 以外の OS
- なし
- Linux と Linux 以外の OS の使用頻度の比
- Linux : Windows2000 = 4 : 6
- 評価に利用した Linux BOX のハードウェア (ベンダ名, CPU, Memory, HDD, NIC etc.)
- IBM AptivaB95
MMX-Pentium 200MHz
Memory 64MB
Video ATI 3D RAGE
HDD 28GB
NIC Corega Ether PCI-T
CD-R YAMAHA CDR200t-VK
- 評価に利用した Linux ディストリビューション
- LASER5 Linux 6.2
私は社会学専攻の大学院生である. 専攻の関係上, 学部時代から SPSS に触れてきた. そこで, 今回のソフトウェアレビューに際して, 実際の統計処理についてというよりはむしろ SPSS との比較という視点で, 操作感 (特に始めて使うユーザ) を中心に見ていきたい.
ソフトが到着してまず手にしてみる. 箱が最近珍しいくらいに大きい. しかし, 手にした感じは非常に軽い. 開封してみると, 巨大な梱包材 (暇なときなんかにプチプチつぶすアレ) が箱の厚みの 8 割くらいを占めている.
驚きながらも内容物を確認. 内容物は, CD-ROM と数枚のマニュアル. マニュアルはプリンタで印刷した紙をホチキスでとめてあるだけ. CD-ROM は, CD-R の上に紙製のオリジナルラベルを貼り付けたもの.
マニュアルの類は CD-ROM の中に HTML 形式で入っているわけだからそちらを見ればいい, というのはよくわかるし, 環境への配慮という意味でも評価できる. だが, ならばなぜ箱が余分に大きいのか理解に苦しむ. 箱についてはいろいろ事情もあるだろうが, 少なくとも実行時の画面のスクリーンショットや, 簡単な解析のやり方くらいはマニュアル, あるいは箱の外側にでも書いておいてもいいように思う.
なお, 販売元に問い合わせたところ, 製品版もまったく同じ構成とのこと. 初めて解析ソフトを手にしたユーザには, 心理的敷居が高いように思う.
ごく普通にマウントしようとすると CD-ROM が読めない. Windows 上の WinCDR で見てみると, Joliet になっている. この時点でカーネルが古かったため読めないものと判断し, カーネルを 2.2.14 にあげる. しかし, 相変わらず ATAPI 接続の CD-ROM ドライブでは読めない. たまたまついていた YAMAHA の CD-R ドライブでなら読めることがわかったので, こちらからインストールすることにする.
しかし, Linux 環境で Joliet というのは, 一般的なのだろうか? 少なくとも私が製品版として購入した Linux 関係のソフトウェアでは初めてだ. たまたま論文の提出期限が近いこともあったとはいえ, 結局この問題の解決だけで数日を費やしてしまった.
なお, この件に関して販売元に問い合わせたところ, 製品版も同じ状態だとの回答だった. それ自体はともかくとしても, 電話の対応が気になった. 確かにこちらの質問に対しては即座に必要な情報を伝えてくれて評価できるのだが, 電話の最後に「よろしく」と言い切って即座に電話を切られたのには正直軽い衝撃を受けた. サポートに電話をすることも多いような類のソフトウェアなだけに, 電話での対応にもう一工夫欲しい.
結果的に CD-R ドライブでマウントできたのでよしとして, 実際のインストール作業に移る. root で CD-ROM をマウントし, S の管理用アカウントでインストールを実行する. ここまでは同梱されていた紙製のマニュアルには明記されていたが, 「S の管理用アカウントや, スーパユーザのアカウントで S を起動しないで下さい. S の実行環境を破壊するおそれがあります.」という注意書きは明記されておらず, HTML でのマニュアルに記載してあるだけである. 重要な情報なだけに, 「導入の手引き」に明記しておいて欲しかった. 実際, 私も数日間, 管理用アカウントで作業していた.
好き放題文句を並べてきたが, 操作感そのものは非常によい. S そのものは起動すると, SPSS のシンタックスウィンドウに似たシンプルな画面が表示されるだけだが, Parole という解析環境を用いると, Windows 上で SPSS を扱っているのと大差なく利用できる.
SPSS の 7.5 より前のバージョンでは標準ではついていなかったクラスター分析も標準で利用できる. グラフの種類についても必要十分であり, その描画もなかなか綺麗である. SPSS の最近のバージョンでは, グラフの見栄えなどに必要以上にこだわっているような印象があるのだが, S においては, 「そこそこ豊富・そこそこ綺麗」という感じで, そのあたりのバランス感覚は非常に好印象である. それだけに Parole の存在は, パッケージなどで強調しておいた方が初心者ユーザにとっては安心できるであろう.
全体として, ソフトウェア自体の出来は非常によい. Parole さえ立ち上げてしまえば, SPSS とほぼ同じような感覚で初心者ユーザでも利用できるだろう. これで, 同梱のマニュアルなどの整備が出来てくれば, 初心者にも安心して薦められる.
最後になるが, このソフトウェアのレビューという機会を与えてくれた (株)アイザック, www.linux.or.jp 管理グループへの感謝の言葉で本稿を締めくくりたい.
- Linux の使用歴
- 評価8年, 実質1年.
- はじめて興味を持ったのが, Linus と Tannenbaum の論争のとき. それ以来, 試してみるが採用しない状態が続いていたが, 最近はディストリビューションの完成度の高さと, フリーソフトウェアのハンドリングのしやすさからアプリケーションサーバーとして利用している.
- UNIX の使用歴
- 約 15 年
- Linux Box の主な用途
- サーバー
- Linux Box に載っている Linux 以外の OS
- Solaris, Windows98, Windows 2000 など
- Linux と Linux 以外の OS の使用頻度の比
- Linux:Solaris:Windows=1:4:5
- 評価に利用した Linux BOX のハードウェア (ベンダ名, CPU, Memory, HDD, NIC etc.)
- SONY Vaio C1XE (Pentium II 266MHz, 128MByte メモリ)
- 評価に利用した Linux ディストリビューション
- Official RedHat 6.2J
筆者は 10 年ほどネットワークと Unix を中心としたシステム管理にたずさわっている. また, 研究上, 多変量解析などの統計処理が不可欠であり, 各種統計パッケージを用途や必要な統計手法によって使いわけている. S は主に探索的なデータ表示に利用している. 今回のレビューはシステム管理者と研究者の二つの立場からおこなった. また, 現在ある実験的サービスのために, WWW からの統計解析環境を設計, プロトタイピングしているところであったので, 今回のレビューにはその経験も含まれている. Unix 版と Windows 版の SPlus を現在利用中である.
S は Unix と同じく AT&T ベル研究所で研究開発された. もともとはテューキーがはじめた探索的データ解析を強力に支援することで有名であった. 探索的データ解析では, データの本質にせまるためにグラフィカルに分布をプロットすることを重視する. たとえば, 一般にはあまり知られていないが, 箱ひげ図という表現はこれに由来する.
S を現代風に解釈すると, 統計処理をサポートした強力なスクリプト言語といえるかもしれない. 構文は単純で覚えやすい関数型言語で, 対話型インタプリタなのでその場で処理結果が返ってくる. また, データ型としてベクトルが基本なので, さまざまな統計関数との親和性が高い. これはスクリプト言語としての S が優位な点である.
S は標準入力からプログラムを読み込むので, 動的に生成したプログラムをリダイレクトすることが容易である. CGI で非常に役に立つ仕様であるといえる. これにかぎらず, 随所に Unix の思想が生かされていることは, S がすぐれたスクリプト言語であることを物語っている.
もちろん, これら以外にもグラフの作成が非常に簡単なのは S の大きな特徴である. テューキー流に「データに語らせる」ことは, S の神髄である.
インストールは非常に簡単でスクリプトを起動するだけである. 必要な環境変数は SHOME ひとつである.
S を利用するには対話型のコマンドインタープリタとして利用する方法, コマンドをファイルにまとめておくバッチ利用がある. また, さまざまなデータ編集や統計解析をメニューから選んで実行できる Parole もある. 統計やプログラム言語に通じていない場合は, Parole で少しずつ統計処理の考え方について学ぶのもよいと思う. ほとんどの場合, Parole だけで作業が完了すると思う. 他の統計パッケージの同等アプリケーションと比較しても, Parole は遜色なく, 統計初心者にも容易に利用可能である.
最近はやりの WWW のバックエンドとしても S は有用である. アイザックの Web サイトでも, 「WWW 上で S を使う」として, サンプルが紹介されている (ただし, このサンプルはそのままでは動かないことが多いかもしれない). Perl や PHP のように, 利用者のコミュニティで情報交換しあうような機会が多くなればよいと思う. また, S に限らないことであるが, 統計パッケージを WWW のバックエンドで使う場合のセキュリティへの配慮 (またはその点への言及) がとぼしいと思う. 実績を作って安全なサイト構築の参考になるような情報を提供することはベンダー側のつとめではないかと思う.
筆者は時間もなくうまく起動できなかったが, Oracle や Sybase, PostgreSQL と連携するプログラムもあるので, 高度な Web サイト作成も努力次第で可能である.
先に述べたとおり, 筆者は Windows 版の S Plus も利用している. それとの比較について述べる.
まず, 普通に統計パッケージとして利用する場合には, 筆者の利用法では特に大きな差はみられない. 他の統計パッケージでは Unix 版はグラフィクスの扱いが面倒であったり, 機能が貧弱であったりするが, S は問題ないと思う.
次に, CGI では Windows の方が柔軟性に欠ける分, CGI で利用しづらい. もちろん, これは S の機能の差ではなく, Windows と Unix の差である.
次に他のスクリプト言語と比較した場合の S の優位性について述べる. システム管理者が日常作業のためのツールとして, Perl や PHP, Tcl/Tk, Python, 昔かたぎの人なら sed と awk を利用していると思う. 用途によっては S はそれらに匹敵し, また補完するというのが私の考えである. 統計関数が充実しているのはもちろんであるが, それだけではない.
S はベクトル型のデータを使うように設計されている. もちろん他のスクリプト言語でもベクトルは扱えるが, 非常にプリミティブな処理しかおこなえない.
Perl を使ってログ解析をしたことがある人は頭を悩ませたことがあると思うのが配列の扱いである. データ量が多くなると扱いもむずかしく, また処理時間の増加がばかにならない. メモリの問題も深刻である. Perl だと, 二次元配列を DBM と結びつけて処理することも多くなるが, エレガントな設計にはまずならないのでフラストレーションがたまる. S であればベクトル処理が容易であるので, 問題がかなり簡単になる.
S では Perl より文字列処理が貧弱であるなど弱点もあるので, 複数のスクリプト言語間でプログラムやデータをやりとりして, 互いの得意分野をいかして連携することが考えられる.
具体的な商品名を出すのは控えるが, いくつかの統計パッケージと比較した S の特徴について述べる.
ベル研で開発されたからか, Unix との親和性がもっとも高いのが S である. S ならシステムのコマンドを実行して結果をベクトルに保存してプログラム中で処理することが簡単である. また, 標準入力からプログラムを読み込むのも S ならではで, 他のパッケージではそう簡単ではない. したがって, CGI から統計パッケージを起動することも非常に簡単である. 他のパッケージでは別製品が必要であったり, 仕掛けがトリッキーであったりでなかなか理解しにくい.
逆に S の弱点は標準的に用意されている統計手法や統計量が若干少ないと思われるところである. この点については筆者の勉強不足かもしれないし, 簡単にプログラムできるという意見も予想される. しかし, あらかじめ組み込まれた統計手法は多ければ多いほど助かるのだ. 自力で開発したプログラムには最後までバグがひそんでいる可能性があり, 不安なのである.
PC が好きで Linux にはまっていったユーザーにとっては, プログラム言語や統計処理の理解が必要な S はとっつきにくいかもしれない. しかし, プロのシステム管理者はそろそろ直感にもとづく管理から脱して, 利用者の傾向をデータに基づいて探索的に把握しなければならないのではないかと思う. そのためのツールとして S は十分な機能を備えている. ログデータを PostgreSQL などのデータベースに保存して, S によってグラフを作成しながら分析し, その結果から得られた利用者の動向をふまえた上でシステムの増築やパラメータの変更をおこなう. そんなことが当たり前にならないかと思う.