MCDAアドインについてのお知らせ

『JMPではじめる統計的問題解決入門』には,本書購入者の特典としてMCDAアドインというJMPアドインがバンドルされています.その2020年後期版(バージョン200708)を来週からリリースします.本書に記載のSAS社の専用サイトのURLからダウンロードしてください.お手数ですが,新規にダウンロードするのと同じく,必要事項を記入してくださいね.この手続きがあるので,どのくらいの方がお使ってているか大体わかるんです.本書は二回増刷になったので,JMP関連書籍の中ではそこそこ売れているのですが,それに比べるとMCDAアドインをダウンロードしてくださる人はもっと多くてもいいのになと思ってます.多くの方に最適化設計の面白さを味わって頂きたいので,ぜひMCDAアドインを使ってみてください.

そもそも,読者サポートがこのブログを開設した目的です.「MCDAアドイン」のタグを作ったので.今後はMCDAアドインを使いこなすヒントを投稿していきます.とはいえ,「JMP超入門」をはじめると言いながら,それきりになっていたりしているので,もう少し時間に余裕ができればということでご了承ください.さて,本日は,改めてMCDAアドインを使う際の注意事項についてお話しします.因みに,アドインそのものは,有効期限が延長されているだけで,変更内容はありません.


第5講で使うアドインなので,まだそこまで到達していない方も多いのかもしれません.それに第5講を理解するには,実務で実験計画を経験してからでないと,難しいとも思います.そこをもう少し丁寧に解説する書籍にできなければ,カットしたほうが良いとも考えたのですが,山の頂上を読者に示すのもいいのではないかと出版社に言われて,第5講は残しました.以前にもお話ししたように,『統計的問題解決入門』のオリジナルの原稿は第8講までありました.前半が基礎編で,後半は応用編という構成だったのですが,ページ数の制約から,止むを得ず,最終段階で2講分を大幅にカットしました.その上で,繋ぎが悪くなってしまった二つの講を部分的につなぎ合わせて一つに合併するという荒技の結果が第5講なんです.本当は,もっとなだらかに難易度を上げていくはずだったのが,ここから急に難しくなってしまったのはこれが理由ですね.当時は本を書くことはもうないと思っていたので,言いたいことがたくさんありすぎて,それを詰め込んでしまいました.反省しています.これでも,「実験計画のためのノート術」のようないくつか断念したこともあるのですけど.


MCDAアドインを使うには,ノイズ因子をモデルに取り込む必要があるので,それが難しいかもしれません.因子数が多い場合は,当然ながら実験数の圧縮のためにカスタム計画を推奨します.とはいえ,数因子程度であれば,まずはカスタム計画で「RSM」でモデルを作れば十分です.具体的には,p248の「やってみよう」をマスターしてください.(今,手元には第二刷しかないので,それ以外の刷ではもしかしたらページ数が異なっているかもしれません.)サポートファイルは「虫の目.jmp」を使えば,計画を作成する手間も省けますよ.ここから,P254までの正味6ページをしっかりフォローできれば,MCDAアドインの免許皆伝です.背後にある考え方については,本文中でも書いてありますが,そのうちもう少しわかりやすく解説します.


ここで重要なことを一つリマインドします.本文中にも書いてありますが,自分のJMPで得られた結果と本書の図版の最適化の結果とは,JMPのバージョンやOSの種類,CPUの種類,その他様々な環境の違いで,必ずしも同じになりません.だから,本書で示した結果は参考にとどめ,異なる結果が得られてもそんなものだと思ってください.重要なのは,満足度関数の小数点以下の違いがあるだけで,どちらも最適化の候補だということです.例えば,私の環境(WIN10,i7,JMP15.0)ではp265のJMPくんの解は,このような結果となりました.



 この本を執筆する際は,SAS社の方で図版を作成してもらったので第一刷では,その環境での結果が掲載されています.その後,MCDAアドインの改良で計算結果に違いが生じたので,第二刷ではその当時の自分の環境での結果に差し替えました.今回の結果は,それらとも違っています.この例題のように予測式が二つもあって.ノイズ因子も二つあるような複雑な統計モデルに対しては,PCによる最適化で得られるのは,所詮は近似解なのでこれが実態です.この例題をつくったとき,複雑にしすぎたとは思ったのですが.応用編ではできるだけ実践的な状況を再現すべきと考え,敢えてこのままにしました.このため,初心者の方が不審に思われるかもしれません.


このような解の不安定性を解消するため一つの方策が「最適化のオプション」のパラメータを変更することです.シード値以外を5倍程度を目安にして変更すると本文にも書きました.ですが,実践的には解を追い込むという手順を推奨します.例えば,上の解ではN2が50.026646353となっていますが,最適解としてこれが受け入れられるのであれば,「ロック」にチェックを入れて50を入力します.その上でもう一度最適化します.そうすれば,N2=50という制約下での最適解が得られることになりますね.さらに制約を加えていくことで最終的に所望の最適解に到達するという手順です.この手順では真の最適解にはなりませんが,そこそこ近い最適解が得られる過程で,何がボトルネックになっているのかなどの情報も理解できるようになります.


因みに,冒頭に全ての因子をロックして書籍掲載の最適化を入力した結果を示しました.そうすると得られた最適値も書籍とぴったり一致していることがわかります.この最適解の揺らぎは,MCDAのバグではなく,最適解の不安定性によるものだということがお分かりいただけると思います.


この手順に加えて,「条件設定」も変更していくのが常套手段です.このときJMPだけでは実施不可能な(スクリプトを作れば可能です)範囲の制約を条件にできます.このアドインの価値はこれだけではありませんので,ぜひ自分のデータで試してみてください.質問等はこのブログのコメントでいつでも受け付けています.非公開になっているので,遠慮なくどうぞ.『データサイエンス』の方でももちろん構いませんよ.会社からですとコメント欄が表示されないこともあるらしいので,その場合はご自宅からお願いします.


それでは,また.