付属 CD-ROM には有名なテストデータが収められています。

周知のものと考え、詳しい説明を忘れていました。

この文章はそれを補うものです。

テストデータの解説

「経済セミナー」1991年9月より

深谷庄一(Shoichi Fukaya)

 統計ソフトを自作した人は、自分のプログラムが正しく計算しているかどうかを確かめる必要がある。他のソフトと同じ結果を打ち出せば一応可とすべきであろうが、元のソフトが間違っていたら目も当てられない。最終的には、広く使われていて、信頼のおけるソフトと比べることになるだろうが、もう一つの方法は、テストデータを使うことである。

 重回帰分析の場合は、W.J.Longley,"An Appraisal of Least Squares Programs for the Electronic Computer From the Point of View of the User",JASA,1967,Vol.62. や Roy H.Wampler,"A Report on the Accuracy of Some Widely Used Least Squares Computer Programs",JASA,1970,Vol.65. などが有名である(と思う)。

 前者(Longley)は経済データで、雇用に対するインフレ率の影響を表す偏回帰係数の精度を調べるものである。正解は手計算で求められていて、15.061872271373ということになっている。

 ただ既成のパッケージでは、計算結果の表示桁数を自由に変えられない場合が多い。そして通常、小数点以下10桁も表示されることは稀である。自作の場合はともかく、既成パッケージのテストには不向きかもしれない。

 たとえば、Lotus 1-2-3(内部で16変数までの重回帰分析が可能である)という表計算ソフトで、実際にデータを入力して計算してみることが出来る。驚いたことに(失礼)、15.061872295で、9桁の正解である。たとえば、筆者のアクセスできるメインフレームのSASというパッケージで計算したところ、15.06187236で8桁の正解だった。あるいは、自作ソフト(LU分解法という方法で逆行列を計算)で試したところ、15.0618723098で8桁しか正解しなかった(残念)。という具合に利用する。なお、室田泰弘他「計量予測パッケージ・エコノメイトの構成と設計理念」DATABASE FORUM,1989,Vol.3では小数点以下4桁で比較しているが、これでは差が出るはずがない。テストのためには、それ以下の数値を知りたいのである!

 ところで、正解だとされる数値は本当に正しいのだろうか。念のため、10バイト浮動小数点演算で計算したところ、15.061872271322006であったから、12桁の正解ということになる。ということで、小数点以下10桁までは信じることができそうである(?)。

 後者(Wampler)は人工的なデータで、多項式y=1+x+x^2+x^3+x^4+x^5 (x=0...20) という式から作成したものである。正解はいうまでもなく、定数項を含めて偏回帰係数が全て1である。これは扱える桁数を検査している。しかしこのデータは、いわゆる倍精度(8バイト)で素直に計算すれば、まず大丈夫であろう。通常単精度で7桁、倍精度で16桁の精度が期待できるといわれている。

 単精度ではなかなか正解するのが難しいといってよい。試みに単精度で計算してみると、変数を取り入れる順番によって係数が変わったり、データの入力方法や計算方法で答えが変わったり、さまざまの奇妙な現象を体験することができる。コンピュータによる数値計算の解明には、うってつけのデータである。

 なお、C言語は内部では倍精度で計算しているので、単精度で計算するとその変換に時間をとって、かえって遅くなるという結果が一般的である(処理系によって多少異なる)。

 そのほか、さまざまな人工的なデータを作成することができるが、問題は、危ないデータに対してはそれなりのメッセージで警告してくれるかどうかであろう。何のメッセージもなく、間違った答えを出して平然としているとしたら、それこそ危険である。熟練者なら、付随する統計量(回帰係数の標準誤差やt値)からデータの「異常」を直ちに推察できるが、初心者に対しては親切すぎることはない。最初のLongleyのデータでは、もともと標準誤差の大きい(t値の小さい)係数に対してその精度を問うという、意地悪なことをやっている。

 もっとも、精度の追及とメモリの確保には二律背反的関係があるので、精度が高ければ高いほどいいわけではない。適当なところで妥協しなければならない。通常問題になるのは、他の事情にして一定にして、アルゴリズムだけでどれだけ精度を高めることができるかということになるが、これとてその他計算時間などとのトレード・オフが避け得ないのである。

 このように、テストデータといっても、数値計算の側面の一つを浮き上がらせるもので、万能でも神様でもないということも充分心得ておくことが必要であろう。

 1988年夏、『日経バイト』という雑誌が「問題だらけの国産統計ソフトウェア」という記事を載せた。パソコン用の市販パッケージ、13本をやりだまにあげて、ほとんどのソフトが問題ありと論じた。特に「重回帰分析では著名なテスト・データを使ったにもかかわらず」「結果はあまり思わしくない。」と実例で示している。これには開発元も、カチンときたらしく、しばらく論争がやまなかった代物である。

 あれからもう3年経過したが、現在の事情はどうだろうか。興味ある問題である。


 ということでいくつかのソフトをテストしたのですが、その結果については元の記事にあたってください。著名なソフトでもテストをパスしないものがあります。もっとも、5年以上前の報告ですが。


to Home Page