パーティションツリー回帰の「重要な変数」を特定するJMP 13 を使用してパーティション ツリー回帰分析を開発しています。83 個の変数があり、分析を開発するために最も「代表的な」変数を特定できるようにすることを目的として、VIF と共線性がない変数を特定しています。パーティションツリー回帰の(私が使用する例は銀行収益です。
変換を伴う多重線形回帰 / JMP Pro によるより良いモデルの構築より、第 4 章、SAS Press (2015)。 グレイソン、ガードナー、スティーブンス。)。 私の質問ですが、これは適切な方法でしょうか?あるいは、JMP には、回帰パーティション ツリーで使用するこれらの「重要な」変数を識別するための、より具体的なプロトコルがあります。
Re: パーティション ツリー回帰の「重要な変数」を特定する時間をかけて提案や推奨事項を作成していただき、大変感謝しています。
同様に、何事においても幸運を祈ります!
Re: パーティション ツリー回帰の「重要な変数」を特定するJMP Pro にアクセスできない場合、モデルの生成にはいくつかの制限があります。 一方、ARIMA モデリング (適切な場合) や、簡略化された NN およびパーティション ツリーを実行することもできます。 役立つ可能性のあるもう 1 つのプラットフォームは、[分析] -> [スクリーニング] にある予測子スクリーニングです。 これは、多くの要因のうちどれが重要であるかを特定するのにも役立ちます。
もう 1 つ試すことができるのは、Fit Model プラットフォームで、「性格」の下で「段階的」を選択することです。 また、どの要素 (および混合用語) が必要でどれが不要かを選択するために、さまざまな基準が使用されます。 ここで、どのようなモデルを使用するかをよく理解すると非常に役立ちます。 大量のデータがある場合は、すべての因子を選択してから、「マクロ」ドロップダウン ボタンで応答曲面を選択できます。 自由度が減りすぎないようにする必要があるだけです。 応答を支配する何らかの物理的プロセスがあることがわかっている場合は、これがモデル方程式を生成する方法の開始点となる可能性があります。 最後に検討すべきことの 1 つは、特にデータが正規分布していない場合に、データをモデル化する前にデータを変換することです。 データを変換すると、モデリング プロセスが、そうでない場合よりも優れた予測機能を備えた堅牢な適合を達成するのに役立ちます。
検証列に関する限り、標準の JMP には検証列を生成するための GUI が付属していないことはわかっていますが、階層化された N 個 (私は 5 に設定しています) の検証列を生成する JSL をいくつか示します。 一部のモデルは、特定の応答を階層化する場合でも検証列の影響を受けやすいため、さまざまな検証列をテストすることは、モデルの堅牢性を評価するのに役立ちます。
Names Default To Here( 1 );
dt = Current Data Table();
For( i = 1, i <= 5, i++,
dt << Make Validation Column(
Training Set( 0.6 ),
Validation Set( 0 .2),
Test Set( 0.2 ),
Stratified Random( :Group )
)
);
上記のスクリプトでは、i は 1 から 5 まで実行されるため、60% のトレーニング、20% の検証、20% のテストに分割された 5 つの検証列が生成されます (データに最適な値に変更できます)。 :Group ポップアップ ウィンドウで選択した列に層別ランダムを適用します。 階層化したくない場合は、そのコマンドをランダムなカテゴリ式に置き換えることができます。
JSL はコーディングが非常に簡単な言語なので、時間があれば、いくつかのスクリプトを試して慣れておくことを強くお勧めします。 異なるデータセットに対して同じタスクを実行するときに、これが非常に役立つことがわかりました。作業を自動化するのに役立ちます。 [ヘルプ] メニューの [スクリプト インデックス] を確認することもできます。
幸運を!、
DS
Re: パーティション ツリー回帰の「重要な変数」を特定する提案をありがとうございます。彼らは私にとって多くの問題を明確にしてくれました。私はその文脈で取り組んでいきます。 ただし、モデル間の比較など、使用および開発できる制限の 1 つは、JMP PRO バージョンでは作業できないことです。 しかし、私はオプションである JMP to R アドイン ビルダーを特定することができました。これは、示唆されているように、分析の開発に他のアルゴリズムの使用を容易にする可能性があることを理解しています。私がこの最後のことを指摘するのは、私がプログラマーではない人間だからです >.<
ありがとう!
Re: パーティション ツリー回帰の「重要な変数」を特定する私は専門家ではありませんが、その本にも目を通しました(余談ですが、例と実践ワークが気に入りました)。 後の章には、特定の状況にも適用できる可能性のある良い例がいくつかあります。
VIF は確かに、モデル内でどの変数が過度に強調されているかを判断する方法です。 デシジョン ツリー結果の列の寄与を調べることも非常に役立ちます。 もう 1 つのアプローチは、主成分分析 (PCA) を使用することです。これは、最も重要な変数をグループ化し、それらを応答のモデル化における PC として使用するのに役立ちます。ブートストラップ フォレスト プラットフォームは、応答と因子の両方でランダム化されているため、過学習に対して堅牢であると考えられています。 ブートストラップ フォレストとブーストされたツリーはどちらも、役に立たない要素を「追い出す」必要があります。これは、これらの要素に沿って分割されず、それらの寄与が非常に低い値に低下するためです。
トレーニング、検証、テスト データを含む検証列を作成するのに十分なデータがある場合、これはモデルを大幅に簡素化するのに役立ちます。 検証部分はグループから最も節約的なモデルを選択するのに役立ちますが、テスト データはモデルが「ブラインド」データでどの程度うまく機能するかを確認するために使用されます。 これについて 1 つ注意してください。これを層別化するか、ランダム化するか、またはその他の方法で選択する必要があるかどうかを検討してください。 これは、モデリングの応答に部分的に (または主に) 基づいている可能性があります。 それは連続的ですか、それともバイナリなどですか?
最後に、NN、パーティション、ブースストラップ フォレスト、ブースト ツリー、一般化回帰などのいくつかの異なるモデル (モデル比較プラットフォーム) を比較することも、データに最適なモデルを選択するのに役立ちます。 必ず「テスト」データのみでモデルを比較するか、非表示や除外によって手動で抑制されたモデルと比較してください (つまり、トレーニング データでテストしたくない場合)。
これを決定するための「標準化された」方法があるかどうかはわかりませんが、いくつかの異なる角度から問題にアプローチすることは、最も重複している部分がどこにあるのかを確認するのに役立ち、「代表的な」変数を決定する際の決定に役立つことは確かです。
お役に立てれば!、
DS