日曜日, 7月 10, 2016

Mathematica 3.0のアドオンパッケージで統計機能を使ってみた

Mathematicaの組み込み関数のLinearModelFit[ ]がバージョン7以降標準機能となっているとわかり、昨日最新OSX El Capitan (10.11.5)の9.0.1のMathematicaでも全く同様に動いた事から、SheepShaver上で動く3.0ではどうなんだろう!?と思った。過去の動き方は動いたり動かなかったりはっきりしていなかった。

昔はもっと古い2.2(?)もきれいに動いていたが、2回目の引っ越し後、3.0しかうごかない。その点Theoristは細かく検討していないがほぼ完全動作らしく、これはこれで場合によっては役立つ。

3.0には500頁以上にもなるStandard Add -On Pakckgesというチュートリアルが手元にあり、ちゃんと動作するなら参照に使えると思う。

改めてバージョンを確認したら3.0.1.1xとあった。当時からずいぶん細かい区分分けはあったという証である。

これは並べ方をかえて、目的変数が配列の最後の位置にくるよう並び替えた結果であるが、エミュレーションで動くといっても入力がどこかおかしい、と苦情を申し立てている。コピーして印刷すると、違いがわかる。

上から4行目のデータで、後ろにまわしたデータが消し忘れて残っている。最初の行で.34とあるのは1.34の間違いである。

それだけかとぽのったら、やはり昨日の例の様にデータは配列ではない、などと言っている。そこでMatrixForm[data]としたら、やはり一カ所だけ配列が足りていないところが出てきた。連続して.と,とがあったりして、そこだけ変な計算をして変な値に移し替えられて、画面で見ただけでは絶対わからないエラーも見つけた。この手は覚える事にしようと心に誓った。表計算と違い外部データの読み込みなどできないので、全部馬鹿のように忠実にインプットするしかないのである。

そこで、データの見た目はともかく、全部自分のデータになったので、昨日9.0や10.4などで動いた改良プログラムを試したが
、3.0では動かなかった。


しかたなくあきらめる。
これは現代数学社の小林教授の本の最初のあたりを試しにトライしたときの画像で標準で簡単な解析結果がでている。

データ入力が正しければ、アドオンパッケージは動く筈、という前提で行っている。

今度はデータ文をよみこませても苦情は言わなかった。そこで、修正したプログラムを実行したが動かなかったことは既に述べた。

そこでアドオンパッケージを読み込みに行かせ、回帰分析を行わせるコマンドを打ち込むとあっという間に結果が得られた。ただし、同一データの筈がアドオン機能でも昨日の
LinearModelFit[ data ]の結果とは違い、異なる値を返したregression改のプログラム結果にちかいような値である。

そこで今度は枝のデータ解析では、定数項はほとんどゼロに近く無視できる程度なので、定数項を落としたコマンドを実行したが、同じ結果だった。

統計学の教科書にはたとえ0と変わらなくても定数項を持たせる方がよいのであるなどと書かれているがもう少し便利に使えるという誤解があった。エクセルのアドインでは定数項をゼロにするなどはいとも簡単であるが、その癖が身に付いてしまったのかもしれない。

しかもしばらくすると警告音が立て続けに何報か響き収まった後、メッセージを見るとすぐにはわからないメッセージの一覧がそろっていた。

これである。そして、昨日ご紹介した10.4以降の結果を思い出した。
これは亘香通商さんのテクニカル担当ではない(多分?)からの返信にあった中身の一部だが、lmというのは、Rにもあって、回帰分析をおこなう線形モデルとして登場してくるので、Mathematicaのバージョン7以降というと2009年1月以降である。Rのほうは、1993年以降、オークランド大でRobert GentlemanとRoss Ihakaの二人がベル研究所のJohn Chambersが発明したS言語を改良し、発明したとされている。そして2000年代後半以降に人気が急上昇したと書かれている。どちらが先かは知らないがMathematicaもバージョンが細かいので、日夜改良の努力がおこなわれているのだろう。値段の高さには今は納得している。

分散分析に話を戻すと、自前のデータの分析がしたいが、まだ出せていない。この回答にもあるように[tmpdata,{x,y}, {x,y}]と指定しても定数項付きの分析結果が出てしまうようであり、統計専門ソフトではないのだからそこはご愛嬌ということか?。

ここで同一データに対する出力の違いを比較してみよう。
Mathematica Ver.10.4.1.0

0.0642594 + 0.299925x + 0.309511y

マルチ回帰
0.0520 +0.2997x + 0.3102 y

Mathematica  Ver.3.0.1.1x

-0.136656   + 0.519704x + 0.287987y

regression改 (10.4.1と9.0.1共に)

0.748217 +()0.00848892 + 0.279045y

エクセル回帰分析(2010)

0.062758 + 0.30113x + 0.309408

同定数項0モデル

------------ 0.356921x +  0.30553y

これがRのlmではどう出るか!?これからのお楽しみである。


0 件のコメント: