金曜日, 7月 22, 2016

やっと昔のMathematicaの時代の感覚が復元中

data文で、データ入力が可能な筈だったと思っていたがわずかなミスに気づかず、動かない!?おかしい??という思いが先行して、8.0や9.0の時代から例題やファイル内の時系列データの処理などでは使用していたが、肝心の自分のデータ解析では今年になってから取り組み始めた。亘香通商さまのヘルプ担当諸氏のサジェストにより、ようやく正常動作が確認できてたいへん嬉しいのだが、二十年近い空白は心理的に大きなギャップが出来ていた。



 これは小林教授の例題をVer.2.xのとき追試したファイルの名残だ。おなじVer.だから問題なく動いた。これは8.0でうごかしたバイクの燃費データの時系列分析だ。およそ5年前。
8.0にバージョンアップしたときに、TimeSeriesもバージョンアップしたが、今度は最初になかったカルマンフィルタもついたのでいろいろ追試してみた。
この時はそれらしく動くことを確認しただけでそれ以上の利用はまだ荷が重すぎた。カルマンフィルタを使った我々の分野の論文は一編だけ連名で掲載された事がある。

いろいろ梅雨らしく適当に雨が降るので、毎週3日以上は休みになりようやく自分のデータを見直す余裕ができたので、エクセルやMathematicaの各ファイルのデータの数値をチェックし直した。やはりけっこう時間がかかった。

それが済んでからそれぞれ演算を実行して出力結果を見比べた。

Mathematicaの演算結果から。

この重回帰モデルでは幹の場合と違い、定数項の値が小さく、林全体の枝の呼吸量推定では枝の本数が莫大でいちいち定数項を加算するのは出来なくはないが試験地の小プロットだけで(5メートル4方)でおよそ一万本近く(15年生、立木本数3600本ぐらい、ヘクタール換算)で定数項を0とするとその後の取り扱いが、ここだけではなく、他人様のデー他と比較したりする際に何かと便利である。そこで定数項をゼロと仮定したモデル式の値もはしいが、式のモデルが{1,x,y}としても{x,y}としても自動的に定数項付きの回帰式が出てしまう。

そこでネットで調べたら、Rrgressの項目で, IncludeConstant->Falseと指定すれば良いらしいが、RegressはVer.6.xまでで、7.0以降はFitやLinearModelFitを使えとなっているが、定数項0の指定方法が出ていない。

試しにVer.3.0で実行してみたが、内部演算方式の改良その他で、思わしい結果は得られない。
そこで、さらに検索して
に行き当たり、さらに
IncludeConstant->Falseとすると10.4でも赤字で表示され意味不明と出る。
勿論動作しない。そこで、もう少し一般的な説明を検索してで検索し、初めて定数項=0の指定方法を見つけた。(Upする過程で誤変換が生じ、あくまでMathematicaの表示例がただしいです。ご了承ください。
図の最下段に表示されている。これを実行したら、スッと結果が出た。

これも昔はIncludeConstant-0としていた昔の感覚を何となく思い出したからだ。必ず似たおまじないがあるはずだと思いいろいろ探した。

本日最後にやっと望んだ結果がえられた。これをエクセルのアドインで、定数=0として出力した結果と早速比較した。
結果はMathematicaの出力、
resp,=0.358486x+0.305327yに対してエクセルのアドインでは
resp.=0.358538x+0.305319yとなり、どちらの偏回帰係数も上位3桁は皆一致している。

今、Mathematicaで求めるとこの出力の["SdjustedRSquared"]は0.984974を示し、”AIC"は42.8989と定数項もでるよりちいさくなった。ダービンワトソン比は3.0437。
["SdjustedRSquared"]は、定数項モデルの0.978192よりも僅差だが大きめに出ている。
ただし、エクセルの結果とはこの点で異なる。


このデータは指導教官が学位取得後、私が学生だった頃、宿泊設備のある都内近郊の大学付属実験林で週に数回の寝泊まりをして赤外線ガス分析計(ロックフェラー財団からの補助で購入)で1968年の5月から6月にかけて得たのもので、他に幹でほぼ通年にわたって呼吸測定を実施した。幹データは1967年分もあるが、枝データはこの時期にしかなく、幹、枝ともに英文誌として出版されている。

個々の試料データから得られた情報をその試験林分の1ヘクタールのあたりの値に変換して推定するには、幹や枝の直径階分布や成長量分布などの試料から積み上げて行く方法が基本であり推定者の各人各様の推定方式が採用されている。

スギ、ヒノキや他の広葉樹とことなり、若いアカマツは枝や幹で年齢の識別が容易であるのでその特徴を生かした推定法として、年齢区分を指導教官は提唱した。

しかし、この細かい区分分けによる方法はまだ、林分あたりの推定法として確立しておらず、他樹種との比較に置いても年輪幅などの比較等を含めて共通部分を抽出する必要がある。
これは初めてマルチ回帰中の重回帰分析をした結果の出力であるが(既報)、今回あらためて入力データをチェック後再計算したら、微妙に違う結果が出力された。
これである。

赤池の情報量基準値が前回の44.043から44.061へ微妙に変化している。そして分散精度は赤池情報量基準のみだが、分散分析表内の不偏分散が、138.589から138.588へ変わり編回帰係数や定数項なども変化している。これはなぜだろう!?。MathematicaはMacだからWindowsのように、途中で修正コードの自動ダウンロードが起きて再起動したなんて事はない。しかし、エクセルではその後計算させたら、結果が微妙に違う。その後何回か再計算させたが、以後みなこの後者の結果である。
組み込み関数が持っている豊富なオプションの一部を上げたが、その都度呼びださないと出てこない。

0 件のコメント: