PSPP:業界標準の統計ツールのLinux版
最近の情報システムのおかげで、さまざまな組織や機関で山のような情報の収集と参照が可能になっている。ところが、こうした情報は、その山に埋もれた関係性やトレンドを探し出して把握しなければ何の役にも立たない。複雑な手順を踏んで調査を行うプロジェクトではSPSSやSASのようなハイエンドな統計解析ツールが有用だが、これらのツールは高価であり、プロプライエタリなライセンスで提供されている。しかし、よく使われているプロプライエタリな統計処理パッケージの1つであるSPSSには、PSPPというオープンソースのクローンが存在する。
FedoraやUbuntuといった主要ディストリビューションのパッケージリポジトリには、旧バージョンのPSPPが入っている。Ubuntu、Fedora、openSUSEの次期バージョンにはPSPP 0.6.0が収録されるはずだが、その前にPSPP 0.6.0を試したければ、ソースからコンパイルするか、あるいはPSPPのWikiをあたって、自分のディストリビューションで使えるバイナリが提供されていないか確認することになる。
SPSS:プロプライエタリな標準ツール
PSPPの前に、SPSSを紹介しておこう。もともと社会科学の研究者向けに作られたSPSSだが、今や多くの分野に広まり、連邦および州当局、大企業、学術研究機関のデータ分析者にも利用されている。SPSSのすばらしさは、複雑なデータを分析できるロバストなプログラミング言語と、人文系のユーザでもシステムのパワーを十分に引き出せるユーザインタフェースにある。
SPSSは、GUIが直観的でわかりやすく、プログラミングの経験がほとんど、あるいはまったくないユーザでも利用できる。一方、R(オープンソース)やSAS(プロプライエタリ)といったほかの統計処理パッケージは、もっぱら熟練プログラマが使っている。SPSSはスプレッドシートによく似たインタフェースを持ち、分析者はこれを使って、複雑なデータ変換を設計したり詳細なクロス集計表を作成したりできる。
SPSSでは、GUIを訴求力の高い重要な特徴の1つとしながらも、プログラマがスクリプトを書く機会も少なくない。その際には、データ解析専用に設計されたSPSS Syntaxという使いやすい関数型プログラミング言語を用いる。またSPSSでは、プログラマの進化を想定して、プラグインの提供や言語の拡張によってプログラミングが可能な範囲を拡大できるようになっている。
SPSSの最近のバージョンは、Javaのクロスプラットフォーム性のおかげでLinuxでも動作するが、(学生向けでない)フルライセンスの購入に1700ドルほど、さらに保守費用として毎年425ドルかかる。そのうえ、このライセンスには有効期限があり、私が正規に購入したライセンスは2011年に失効する。こうしたSPSSのコストとライセンス条件が、我々オープンソースコミュニティによる代替ソフトウェアの開発を促したといえる。
PSPP:オープンソースの代替ソフトウェア
SPSSの代替となるオープンソースソフトウェアPSPP 0.6は、まだ完成されてはいないが、開発者、そしてエンドユーザにとっても十分に魅力的な製品に仕上がっている。Linux向けの汎用データ解析ツールであるだけでなく、プロプライエタリなSPSSと同様の使いやすさも備えている。オープンソースの統計処理パッケージを求めているなら、限られた選択肢の中にこのPSPPも含めるべきである。その理由として挙げられるのが、新しいGUIのpsppireと、SPSS Syntaxとの互換性の高さだ。
多くのユーザにとって、psppireは、PSPP 0.6シリーズで最も重要な特徴といえるだろう。以前のバージョンはコマンドラインにしか対応していなかったので、プログラマに対する訴求力は限定的だった。psppireではSPSSでおなじみのダイアログボックスが模倣されているため、PSPPへの移行も容易だろう。SPSSのGUIと同様、psppireを使えば、プログラマでなくてもシステムのパワーを十分に引き出すことができる。それに、pippireのダイアログボックスは簡明で使いやすい。同じ解析を繰り返し行う場合には、スクリプトを書いたほうが間違いなく便利だが、pippireからも、スクリプトを書くプログラマが使うのと同じツールが利用できる。
pippireに関して、私が気になった大きな制限は1つだけである。今のところPSPPには、類似の製品に見られる統計処理ツールの多くが欠けている。当然、この制限はGUIであるpippireにも影響を与えており、SPSSを使い慣れたユーザにはpsppireのメニューがわびしいものに感じられるはずだ。
GUIに劣らず重要なのが、SPSS Syntaxとの互換性である。SPSS Syntaxは、多くの企業や政府機関に標準的なコマンドとして広く知れ渡っている。私の仕事では、州当局に協力して、連邦政府が児童および家庭サービス調査(Child and Family Services Review)の一環として制定した複雑な結果指標の算出を行うことがよくある。連邦政府は、この指標の算出に必要な何千行にも及ぶコードを公開しているが、これはSPSSでしか使えない。別のツールへの移植は不可能ではないが、その作業は決して簡単ではない。また、このコードを移植すれば、指標の算出にわずかな誤差が生じる可能性もある。インターネットから無償で入手できるコードを実行するために、多くの州がプロプライエタリな製品を使っているとは、皮肉なことだ。
現時点でも十分に使える
PSPP 0.6シリーズは完成された製品ではないが、データ変換や基本的な統計解析は実行できる。また、単変量の統計値を示す表や多変量の複雑なクロス集計表を作成することも可能だ。ある変数に基づいて簡単に事例の重み付けを行う機能も、期待どおりに動作する。このままPSPPが成熟を続ければ、SPSSからオープンソースのPSPPへの移行に抵抗を感じない専門家や学生が増えていくだろう。
PSPPには、いくつかの制限がある。MANOVA(多変量分散分析)など、高度な統計解析手法の多くは、まだ実装されていない。また、PSPPで作成した図表は、SPSSやRで作成したものほどカスタマイズ性が高くない。特に重大なのは、バージョン0.6.0の線型回帰の計算に誤りがあることだ。そのため、PSPPプロジェクトは、10月10日にこの回帰計算の不具合を修正したバージョン0.6.1をリリースしている。今後のリリースでは図表の作成機能の改善が優先事項になっているほか、開発者はツール群の拡張にも懸命に取り組んでいる。
PSPPのマニュアルは、GNUのWebサイトにあり、実装済みの機能ごとにプログラマ向けの詳しい説明が記されている。このマニュアルには、まだPSPPに実装されていないSPSSコマンドの一覧も付属する。残念ながら、現時点のマニュアルは、プログラミング言語の実装に重点を置いた内容になっている。PSPPコミュニティでも、GUIのpsppireを対象としたマニュアルは作られていない。
PSPPには、開発者も交えて活発なやりとりが行われているメーリングリストがある。PSPPのコンパイルに関するやりとりが多いが、それ以外の質問も受け付けている。またPSPPプロジェクトでは、協力者の募集も行っており、統計学に詳しい開発者を特に求めている。
Andrew Choensは、リサーチポリシーアナリストとして福祉サービスを専門とするコンサルティング会社に勤務する医療ソーシャルワーカー。2000年にWindowsを捨てSUSE Linuxに移行。ときおりUbuntuフォーラムにgunkstaという名前で投稿している。