過去の投稿に画像リンク切れ多数ありご迷惑おかけしています.

p82の列の寄与について

覚え書き

p82に示した,エクセルでやるようなクロス集計法との比較はオフトピックで,原稿段階でもこの部分は削除対象だったということもあってこの部分の手順説明は省略しています.p82一番上のグラフの描き方については少し前にお話していますが,今度はその下にある「列の寄与」のグラフが描けないとの質問をいただきました.統子ちゃんのセリフ「この結果を「パーティション」による「赤三角>列の寄与」と比較すればいいのね.」,その次のJMPくんのセリフ「これは装置#を除外してk分割交差検証によって自動分割した結果だよ.」をそのまま実行してもp82のグラフは得られません.ヒントは除外されている行の扱いです.以下に書くことはJMP経験者であればご存知だと思うのですが,本書をもとに新たにJMPを勉強してくださっている方もいるようなのでこの場でもう少し丁寧に説明します.詳細なJMPの操作を示すことまでは本書の守備範囲と考えていませんが,このブログでは可能な限りJMP操作もサポートしていこうと思っています.

さて,以下に手順を示します.まず,データは同じ「5_概観結果.jmp」を用意してください.ファイルを開いたら,すべての非表示かつ除外になっている行が選択されていることを確認して,もしも選択が解除されているならば,「装置No.」列と1行目を選択してから,右クリックで「一致するセルを選択」を実行します.これですべての非表示かつ除外になっている行(装置No.が#4)が選択されるので,この状態で「行>行の削除」です.(ここがポイント)
ここで「パーティション」を実行するわけですが,このとき装置#を「X」に入れないでください.パーティション プラットフォームが出てきたら,赤三角から「k分割交差検証」を実行するとkの値を入力するように聞いてきますので,デフォルトの5のままにして『OK』です.この操作で『分岐』『剪定』の隣に『実行』ボタンが出てきますので,それを押せばp82のグラフが描けます.


因みに,このデータでは「k分割交差検証」を実行しなくても最初から『実行』ボタンが出ています.それはなぜかという理由は,なぜ非表示かつ除外のままではいけないかという理由と同じなのです.JMPではモデリングの際のオーバーフィッティング対策として検証という機能が実装されています.データを学習セットと検証セットとに分けて,前者でモデルを作成し,後者でそのモデルを評価します.検証セットの指定方法にはいくつかあって,JMP Proでは検証列を指定することも可能ですが,JMP Stdで最も簡単なのが「k分割交差検証」を使うことです.デフォルトのk=5であれば,データを5分割してそのうちの一つが検証セットに割り当てられます.(kの選び方は観測データの性質によって選ばれるべきですが,今のデータサイズであればデフォルトのままでよいでしょう.)k個のデータセットそれぞれを検証セットとしたすべての結果が比較され,最終的にこれらの中で最もR二乗の大きいモデルが採用されます.ここで問題となるのは,「除外」された行があるとこれらが(頼みもしないのに)検証セットとして扱われてしまうという仕様があるのです.このためデータに除外された行があると本それは異常値としてモデル作成には使いたくないデータですから,「k分割交差検証」を実施してもおかしな結果になってしまうのです.このため,実質的に「k分割交差検証」をかけるデータでは一部を除外するという機能が使えないのでとても不便です.


厳密には装置#4以外にも除外されているデータが二つあるわけですが,この二つは削除しなくても「k分割交差検証」の結果には大きな違いはありません.すべての除外された行を削除して「k分割交差検証」を実施した結果を示しておきます.(p82の結果とは微妙に違います.)

列の寄与.png
リンク切れてます.すいません.元画像は消去してしまったので,ご要望あればお問い合わせください.

今週は別のお話をしようと思っていたのですが,それはまた来週ということで.それではまた.

統計的問題解決研究所

コメント