UA-115498173-1

2018年08月11日

台風とJMP

アドインの話の続きを書こうと思ったのですが,同じ話が続くのは避けて本日は台風の話でも.
先日の台風は,合同台風警報センター(JTWC)ではかなり前から上陸はしないとの予報でしたが,気象庁の予報では数日前まで関東直撃でした.個人的にはJTWCの予報の方が当たるような気がしているのですが,まっすぐに関東地方に向かってくるのでどうなるかと興味深く観察していました.結局,JTWCの予報通りになり,何事もなかったように過ぎ去ったわけですが,犬吠埼に最接近した以降の後半の進路は定性的には気象庁の予報に近かったようにも思います.気象庁も予測精度については米軍に引けは取らないのでしょうけれど,台風の進路の長期予報をしてくれないのが難点ですね.おそらく予報が外れ(国民生活に大きな影響が出)ることを恐れているのでしょう.それと,ワーストケースを想定して予報を出しているのかもいるのかもしれません.その予報をもとに市町村が防災対策を立てるので,予報を信じて対策を怠るようなことのないようにという配慮もあるのかと勘繰りたくなります.狼と少年という童話もありますし,おそらく,そのようなことはないと思いますが.
知り合いと話していて,梅雨明けが早かったり,この時期に台風が来たりとどうも季節が早まっているのではないかと言うので,そうかな?と思って調べてみました.今日はその話です.
私の感覚でも台風は9月のものなので,それはなぜかと考えるにおそらく夏目漱石の二百十日にあるのではないかと思い当たりました.このほぼ会話文からなる物語は漱石の実体験に基づいたものだそうで,タイトルの二百十日とは立春から数えて210日目のことで,今年は9月1日になります.この日は台風が来る確率が高い日と言われていて,実際,物語で主人公は台風に遭遇します.おそらくデータに基づいたものではなく台風の備えを怠るなという農家の警戒標語のようなものだったのではないでしょうか.
9月1日に日本に到来するということは発生は8月ということになります.このことをデータをもとにJMPで10分可視化してみます.このブログをご覧になっている方にJMP歴半年未満のかたもいらっしゃるということを最近知りましたので,少し丁寧に手順も書いておきます.
まずデータは気象庁の「台風の統計資料」にあります.ここには統計を開始した昭和26年(1951年)以降の台風の発生数,接近数,上陸数がテーブルで表示されていて,2017年までに記録はCSVフィルでも提供されています.このデータをJMPに取り込むのにもっとも簡単なのは「ファイル>インターネットから開く」でURL入力画面を出して,例えば発生数ならば「https://www.data.jma.go.jp/fcd/yoho/typhoon/statistics/generation/generation.html
を入力することです.「OK」でそのアドレスにあるテーブルの種類が表示されますので,「2017年まで...」のほうを選択して「OK」です.
さて,このJMPテーブルを分析・可視化するにはもうひと手間かけなければなりません.まずは「年間」列は集計値なので削除します.次にデータを名義尺度から連続尺度に変換しますが,ここらへんがノウハウと言うのかもしれませんが,いきなり「列情報」を呼び出すよりも,先に「テーブル>列の積み重ね」を実施しておきます.(もっとも,「列属性の一括設定」を使えばたいした手間の違いはないのですが.)それから尺度を変換して,その際欠測値になったデータに0を入力します.もちろん「列>再コード化」を使ってください.「年」列は名義尺度のままでかまいませんが,「年」という値が入っている行を選択してでそれらを削除します.積み重ねを先に実施しておくと,データフィルタを使わないでも下の方にまとまっているのでこういうときに便利です.同様に接近数と上陸数も加工しておいてから,「テーブル>結合」です.
さて,ここまでくれば後は楽しいグラフ作成のお時間です.グラフビルダーでどんなグラフを描こうか考えるとワクワクしますね.色々トライ&エラーを繰り返しつつ,今回は発生数,接近数,上陸数というデータがあるので,それらを積み上げた棒グラフにしようと思いつきました.そのためには,発生数から上陸数と接近数とを差し引いた数を「その他」と定義して日本に関わらなかった台風の数を計算しておきます.そうするとこんなグラフが描けます.この図で青が接近数,赤が上陸数,緑がその他です.
image001.png
一つ注意があって,この「その他」の定義では月をまたいだ台風の活動が正確にカウントされません.ですので,値がマイナスになったりもしますが,平均値にするとそこらの粗は隠れますし,まあ,とりあえず積み重ね棒グラフにしたかったので細かいことは目を瞑ります.この図から読みとれることは,台風の発生は8月が一番多いこと,9月は上陸数は8月と同程度であること,10月は7月並みに台風は発生するけれど日本に関わらないものが多い,などなど.
 これだけでは面白くないので年を読み込みます.異常気象などと絡めるならば別の気象データが必要になりますが,この場では「グループY」にドロップします.水準を三つにしたのがこの図です.
image002.png
 どうでしょう.予想に反して,1974年以前と比較して近年(1996年以降)はむしろ9月に台風が多くなっているようです.特に上陸した台風の数は9月の方が多くなっているくらいです.従って,台風に関する限り季節はむしろ遅れていることになります.
 とはいえ,データからは台風は8月のものと言ってもいいようです.とはいえ,私たちの意識では台風は9月のイメージ.この解離はなぜかと気象庁のデータを見ならが考えるに,9月が台風の月と思われている理由を見つけました.中心気圧が低い台風 (統計期間:1951年〜2018年第5号まで)ワースト10が載っていますが,このうち8月上陸は2つ,9月7つ10月が1つとなっています.9月の台風は過去に大きな被害をもたらしたのでそれだけ人々の意識に残っているのでしょうか.
まだまだ二百十日まで間があり,これから本格的な台風シーズンを迎えることになりますが,皆様も対策怠りなきよう.
それではまた.
タグ:JMP
posted by Tad at 19:00| Comment(0) | TrackBack(0) | 雑記

2018年08月04日

パラメータ設計のアドイン(その2)

先週の続きです.パラメータ最適化のためのアドインについてそれぞれの違いなどを説明しようと思います.本日はHOPEアドインとSRPDアドインについて.
もっとも端的に説明するならば,これらのアドインを使えばパラメータ設計のためのJMP操作が簡単になるということでしょうか.
HOPE.png
この図(クリックで拡大表示します)に示したように,HOPEアドインの設計画面にはJMPでは赤三角から「因子グリッドのリセット」で呼び出さなければならない各種設定がGUIに実装されています.これだけで便利なので,なぜJMP標準になっていないのか不思議なくらいです.見た目だけではなく,実はこの二つのアドインは今年の1月13日の記事で言及していますように,「実はJMP単独ではスクリプトを書くでもしないと困難なことがあって」という問題に対応しています.その一つが先週お話しした範囲を目指す最適化のための満足度関数の定義であり,更にもう一つが,品質工学でいう動特性のための信号因子を設計に取り込みにくいということです.(誤差因子と信号因子は本書ではそれぞれノイズ因子と目的因子という名称で呼びましたので,以降ではこの名称を使います.)これらの因子がJMPでどのように扱われているかというと,ノイズ因子だけはグラフメニューのプロファイルを実行する際に「誤差因子」としてオプション設定でお目にかかれます.ある因子(連続量)を誤差因子に指定すると,その因子による(特性の)予測式を偏微分した関数が予測プロファイルに出現します.満足度はゼロ望目に自動で設定されていますので,「満足度の最大化」によってその因子の影響を緩和した最適化が可能となり,結果としてロバスト最適化が可能になります.この機能はもちろん便利なのですが,システムのロバスト性を点で目指してしまうためあまり実用的ではありません.例えば,予測式が二次関数になっていたとしてその頂点を満足度最大にしてしまうので制約が強すぎるのです.その因子がノイズとして動いてしまっている状況であれば,二次関数の二次係数を最小にするような最適化が実務的には望ましいはずです.このため,わたしのセミナーではこの機能に言及せず,プロファイルを弄りながら予測式の傾き(あるいは二次係数)を小さくするにはどうすれば良いかを考えてもらっています.
HOPEアドインではばらつきは範囲で定式化されます.特性の変動する範囲(Range)を最小にすることがロバスト化であると捉えるわけで,実務的にはとても扱いやすいと言えます.但し,この定式化のためにロバスト化の制約を数値で設定しなければなりません.平坦化を目指すに,真っ平らという極限ではなく,Rangeにしてどのくらい以下であれば良いかを考えなければならず,技術者の考察がとても重要になります.
ノイズ因子はまだ良いのですが,目的因子を設計に取り込み難いことの方が問題です.HOPEアドインはこのためにあるといっても過言ではなく,現在は慶應大学大学院の客員教授の高橋武則先生のHOPE理論をベースとして,その理論検証のために開発されたアドインです.実務的にも大変有効でHOPEアドインを使えば,範囲を目指す最適化も可能になりますし,目的因子(HOPEアドインでは入力)を取り込んだ柔軟な設計も可能となります.HOPEアドインを使った最適化について詳しく知りたい方は,河村・高橋(2013)『統計モデルによるロバストパラメータ設計』日科技連,を参照してください.この本にはHOPEという言葉は出て来ませんし,HOPE理論についても書かれていませんが,全ての例題はHOPEアドインを使って解かれています.
残念なことにHOPEアドインは一般公開されていません.一つにはSAS社の公式アドインでないため,どのような結果が出ても誰も責任が取れないという事情があります.といっても,最適化のライブラリはJMPの機能を呼び出しているだけですから,実務にも十分使えますが,バグがないというわけではないのでそこは利用者の責任で使うことになります.それと,最近は落ち着いて来た感がありますが,機能変更が頻繁でマニュアルの更新が全く追いついていない状況であり,一般公開して間違った使い方が広まってしまうのを危惧しているという事情もあります.とはいえ.その存在をここに明かしてしまった以上,入手方法についてもお知らせする必要があると思いますので,興味がある方はコメント欄でお知らせください.(前にも書きましたが,コメントは私のところで一度止まるので内容が公開されることはありません.)
一方,島根大学の河村先生は別の書籍,河村(2016)『製品開発のための実験計画法』近代科学社ではSRPDアドインというHOPEアドインの派生版を使っておられます.こちらはJMPの正規ライセンス保持者かつ書籍購入者であれば誰でも書籍に記載されている方法で入手できます.SRPDアドインは一言で言うとHOPEアドインのロバスト設計に特化した機能限定版と考えてください.設計やモデリングの画面等はほぼ同じであり,SN比や感度の計算なども実装されているので.品質工学によるロバスト設計をやるだけならばSRPDアドインも良い選択肢です.(因みにSRPDはSatistical Robust Parameter Designを意味しています.)
これら二つのアドインは外側直交計画という品質工学特有のデータ構造をJMPに実装しているところが大きな特徴です.JMPだけでは作成に手間がかかるL18やCCDもプルダウンで指定できます.過去に品質工学をやってうまくいかなかったけれど,JMPを使ってもう一度当時のデータを分析してみたいならば必須のアドインです.
それでは,なぜ本書でMCDAアドインというまた別の派生版を開発したかというと,上記二つのアドインがJMPの枠から少々はみ出ているところがあって,本書の対象であるJMP初心者が戸惑うことを危惧したためです.例えば,HOPEアドインではモデリングに独自のGUIが実装されていて,結果の表示や統計データの出力などがJMPとは異なっています.更にはデフォルトでは寄与率基準というJMPには実装されていない基準でステップワイズが走ります.(JMPデフォルトの最小BICc等を選択することはできます.)いわば独自の世界が展開されているので,経験者にはとても使いやすくパワフルなアドインなのですが,初心者には荷が重いところがあります.これに対し,MCDAアドインにはモデリングに独自の画面はありません.「モデルのあてはめ」で作成した予測式をそのまま指定するだけです.「JMPとの繋がりが良い」ことがMCDAアドインの特徴です.
更には,HOPEアドインもSRPDアドインもトライアルライセンスでの使用は認められていません.(例外はあります.)本書はトライアルライセンスでJMPを初めて触る技術者も対象にしたため(それにしては難しいとよく言われますけど),新たに別のアドインが必要になったのです.といっても,無制限に拡散することを避けるため(その心配はないのかもしれませんが),SAS社との取り決めで唯一「本書の購入者である」という制約は掛けざるを得ませんでした.
その他のMCDAアドインの特徴(実はこのほうが大きい)については後日改めて説明することにして本日はここまで.それでは.
タグ:JMP
posted by Tad at 19:00| Comment(0) | TrackBack(0) | 統計的問題解決

2018年07月28日

パラメータ設計のアドイン(その1)

パラメータ設計のアドインについて質問を受けました.私の知っている限りでは,本書のために開発したMCDAアドイン以外にも,HOPEアドインとSRPDアドインがあります.実はこの三つのアドインのベースは同じものなのですが,それぞれの機能と思想が違っています.それらの違いについてお話しする前に,本日はまずその1としてなぜアドインが必要なのかについて説明しておきます.
JMPでは「満足度の最大化」でパラメータ設計ができるのはご存じでしょう.「プロファイル」とシームレスに繋がっているので使いやすい一方で,本格的なパラメータ設計には機能面で少々物足りないことも事実です.例えば,実験計画で応答の目標を設定する場合,「最大化」「最小化」以外では「目標値に合わせる」という三つの選択肢しかありません.(厳密には「なし」という選択肢もあるわけですが.)このとき,目標値に合わせる際に下側限界と上側限界を設定します.例えば,スペックが25±5であるならば,下側限界に20,上側限界に30と入れればいいわけです.
ところが,スペックはそのままで23を狙いとする場合は,「予測プロファイル」の赤三角から「最適化と満足度>満足度の設定」で「応答目標」を設定しなければなりません.
DraggedImage.png
これが面倒だからと,満足度関数のハンドル(小さい四角)をドラッグしてもうまくいきません.細かい仕様は不明ですが,満足度関数のハンドルをドラッグするとその度に関数を新たに引き直すようです.数値的にというよりは画像処理的に満足度関数が設定されているような感じです.とにかくプロファイル上で満足度関数に微妙な修正を加えるのが困難なことはみなさんも経験あるでしょう.
とはいえ.このような点を目指す最適化のための満足度関数はまだ何とか設定可能ですが,どうしてもJMPでは設定できない最適化のケースがあります.それは点ではなく範囲を目指す最適化の場合です.どういうことかと言いますと,応答の値が例えば20から30の範囲に収まっていさえすればよいというような最適化の場合です.このような範囲を目指す最適化は,特に多目的最適化の場合は重要です.なぜかというと,多目的最適化の場合,それぞれの特性に優先順位があるのが普通なので,優先順位が低い特性に対しても点を目指すと,制約が強すぎてしまうからです.20から30の間にありさえすればよいのに25を目指してしまうと優先順位の高い特性がそれに縛られてしまい,真の最適解が得られなくなってしまうのです.
一つの手段として「満足度の設定」でデフォルトが1の「重要度」を大きく書き換えることができます.しかし,この方法で得られた解は特定範囲に収まれば良いという制約を前提としていません.そこで「満足度の設定」で満足度関数の形状を定義しようとすればこの問題が理解できるでしょう.このような最適化を実現するためには満足度関数の形状は三角形でなく台形にならなければならないことに気づくはずです.しかしながら,ハンドルが三つしかない今の仕様では実現不可能です.どうしてもという場合は,応答の範囲を二つに分割してそれぞれの領域で,ステップ形状の満足度関数を設定して満足度の最大化の際にそれを繋げるというようなことをしなかればなりません.もちろん,スクリプトを組めばこのことは実現可能です.
スクリプトを組めば実施可能といっても,自作するには敷居が高いというのが本音です.そこで上で紹介した既製のスクリプトがアドインとして存在します.これらのアドインは上述した満足度関数の定義を実現するためだけではなく,それぞれに特徴があります.本日は台風が来るということで色々家の周りのことをやらなければならず,時間がないので来週以降それぞれのアドインの違いを説明していきます.
皆様におかれましても台風の備えに怠りなきよう.ともども被害のでないことを願っています.
それではまた.
タグ:Q&A JMP
posted by Tad at 19:00| Comment(0) | TrackBack(0) | 統計的問題解決

2018年07月21日

神の視点

コメントをいただいたことを受けて,本日は観察について書きます.暑いので短めにします.
計画作成に先だってシステムについての考察は必須であり,そこでは観察が重要なのはいうまでもありません.とはいえ.観察には対象を注視するというニュアンスがあるので注意が必要です.以下の考察は,ボー・ロット(2017)『脳は「ものの見方」で進化する』サンマーク出版にインスパイアされています.この本によると.脳神経科学では,私たちの脳内で生まれる可能性のある「知覚」の適応度地形モデルという概念があるようです.ここ言う「知覚」は思考や概念,行動あるいは判断と読み替えても構いません.脳内で生まれる可能性のある「知覚」は無数にあるけれど,過去の思考や行動によって実際に取りうる「知覚」は制約を受けるということ,即ち,私たちの思考や行動はいついかなる時でも常に思い込み(バイアス)に支配されているとこの本には説かれています.
この議論のアナロジーを問題解決に適用します.ちょうどセミナーでこの話をしようと図を作成しているところだったので,この図で説明します.
神の視点.001.png
この図では横軸をシステムの状態とし,縦軸をその適応度としたシステムの可能性の空間を示していると考えてください.適応度は満足度のようなものと考えても差し支えないでしょう.まず重要なことは現状は何らかの局所的な最適解にはなっているはずだということです.だからこそシステムは安定しているわけです.それが何らかの理由でより高みを目指さなければならなくなった.これが問題解決のスタートです.問題を意識しなければこの準安定状態から脱することはなかなか難しいものです.おそらく手遅れになるまで気づかないということもあるでしょう.
現状を抜け出そうと第一歩を踏み出せたとしても,このとき,「知覚」の可能性の空間の探索が過去の経験を拠り所とするように,現状のシステム状態をベースに探索することが一般的です.品質工学でL18の2列目以降の第二水準を現状値に設定せよとするのはその一例です.もちろん,現状からスタートすることは現状の改善には有効ですが,この図のように近くの高みに出ることがせいぜいであるということが問題です.
神の視点.002.png
この状況ではこの図に示したより良い最適解にたどり着くのは困難です.
神の視点.003.png
システムの場合,更に複雑な状況があります.それはこの図に示したような,ある状況下においてのみ真の最適解が出現する可能性があることです.
神の視点.004.png
真の最適解を見出すにはどうすればよいのでしょうか.
ボー・ロット(2017)の「知覚」の議論では,この状況で私たちは挑戦と失敗を繰り返しながら「可能性の空間」を探検するしかない,と書かれています.なぜならば,この図のように,人間である私たちには現状の近くまでしか見渡せないからです.多くの争いは各人が知覚している(あるいは知覚できる)最適解が異なっていて,しかもそれは互いに認知できないということにあります.実際の実験計画ではこの図のような状況であるということです.
神の視点.005.png
全ての人に共通な最適解を見出すためには神の視点が必要なのです.知覚の空間で神の視点を持つことは容易ではありませんが,問題解決では実験計画によって神の視点からシステムを眺めることが可能となります.その鳥瞰図が応答関数ということになるわけですね.
神の視点で応答関数を眺めるには,現状を実験空間の中心に据えるという制約は外し,可能な限り広い領域で応答関数を眺めることを優先すべきです.このとき,必要になるのは応答関数という地形モデルに対する仮説です.その仮説はシステムの観察から立てられるものですが,その際に固定した視点からシステムを注視するのではなく,視点を切り替えることを意識すべきです.社会学者のアルフレッド・シュッツの現象学的社会学で提唱されている「多次元的な現実」は人の視点で社会の見え方が変わってくることを意味していますが,まさに社会をシステムと捉えれば同じことが言えるのです.
視点を変えるのには,それを意識することが肝要です.他の人の見方を身に付けるのはトレーニングもが必要になるかもしれません.システムの別の部分に光をあてるという感覚も大切にしたいです.自分なりにいくつかの方法論は持っているのですが暑いので本日はここまでとします.観察は大事ですが,陥り易い罠もあります.いずれにせよ,観察という日本語からは視点を切り替えるというニュアンスが弱いので注意したいところです.
それではまた.
posted by Tad at 19:00| Comment(0) | TrackBack(0) | 統計的問題解決

2018年07月14日

あひる三題


それほど気温が高いというわけではないのですが,日中歩いていると体力を消耗する日々ですが皆様いかがお過ごしでしょうか.PCに向かうのも怠いので今週は暇ネタにしようと思案しつつ,ツイナビを眺めていたら,「あひるが見える人は病院へ」という見出しが目にとまりました.その写真には確かに二羽のあひるが見えます.これはまずい...実はわたしは鴨とかあひるとかの水鳥が好きで観察に出かけて写真を撮ったり,カービングで木工作品を作ったりしています.たまたま昔作った写真が手元にありましたので,始めた手の頃でまだ下手なのでお恥ずかしいのですがこんなのを作ってます.
かも.jpg
胴体に線が入っているのがお分かりと思いますが,ここで二つに別れるようになっていて,頭部が蓋で胴体が小物入れになっている仕様です.色は塗っていませんが,チェリーのブロックを使ったので経時変化で赤くなっています.
さて,このブログとあひるを強引に紐付けると,本書p175のひとやすみで書いた「醜いあひるの子の定理」があります.この定理を命名した背景は定かではありませんが,おそらく渡辺先生はこの世のいかなる差別をも主観のなせるものと看破することを意識して証明されたのではないでしょうか.問題解決の観点から考えると意思決定には主観が必ず入るということが証明されているということです.考えてみれば,仮設検定にも有意水準という主観的な要素が入っている訳で,このことからもF検定で導かれる統計モデルにも主観的な要素が入っていることに気付かされます.
問題解決にはもう一羽あひるがいます.問題をロジカルに考えるときに使う手法のラバーダッキングです.手法と言っても簡単なもので,誰かにその問題について教えることで構造を整理しつつバグや解決法を見出すことです.プログラミング分野以外ではあまり使われないかもしれませんが,何かの問題を考えるときはとても有効な手法です.その誰かはなんでもよく例えば赤ん坊がお風呂に浮かべて遊ぶ玩具のゴム製のあひる(ラバーダック)であってもいいわけです.事実,あのエニグマの解読で有名なチューリングもこのブログ記事によれば,PorgyというTeddy Bearを前にしてラバーダッキングしていたそうですチューリングの不遇な最後を思うに,醜いあひるの子の定理がもう少し早く証明されていればと考えてしまいます.コンピュータ科学に偉大な足跡を残した科学者が,エリザベス2世女王の名をもって正式に恩赦されたのは2013年ですからまだ記憶に新しいところです.
チューリングの場合は講義の練習でラバーダッキングしていたそうですが,このようにプログラミングに限らず,人にものを教える過程でいろいろな粗に気づくことはわたしも常に経験しています.皆様も一度お試しください.
最初に「あひる三題」と名前をつけてしまったので,もう一羽のあひるを探しています.最近どこかで見かけたのですが...思い出しました.あひる本です.Stanを少し勉強しようかと思って松浦(2016)『StanとRでベイズ統計モデリング』共立出版に行き着いたのですが,この本はあひる本と呼ばれています.その理由はお分かりでしょうか?表紙のレゴブロックの構造物があひるだからだそうです.うーんちょっと見えないです.最初のツイナビの写真の方がアヒルに見えました.

三連休暑い日が続くようです.皆様も体調にお気をつけください.それではまた.
タグ:問題解決
posted by Tad at 19:00| Comment(2) | TrackBack(0) | 雑記