モデルを検証するためにデータをサブセット化することは必須ですか?


8

モデルの検証に関して、上司と同じページを表示するのに苦労しています。私は残差を分析し(近似値に対して観察された)、これを引数として使用してモデルによって得られた結果を議論しましたが、上司は、モデルを検証する唯一の方法はデータのランダムなサブセットを作成することであると主張し、 70%のモデルを生成し、残りの30%にモデルを適用します。

実は、私の応答変数はゼロに膨らんでいて(その85%、より正確にするため)、結果に収束するのはすでに非常に難しいので、サブセットを作成しない方がいいです。

だから、私の質問は:モデルを検証するための可能な(そして科学的に受け入れられる)方法は何ですか?データのサブセット化は唯一の方法ですか?可能であれば、質問を記事や本で参照してください。そうすれば、選択肢を提示するときに、それを引数として使用できます。


ただし、すべてのデータに基づいてモデルを選択しても、それはカウントされません...
アーロンは、Stack Overflow

データのサブセットに基づいてモデルを選択する必要があるということですか?データのすべてを使用しない場合、データの分布を適切に分析するにはどうすればよいですか?
Eric Lino 2018

はい、まさにそれが私の言いたいことです。モデルを真に検証するためのデータが必要な場合は、分析を選択するときにそのデータを提示する必要があります。これは、ウィキペディアがトレーニングおよび検証セットと呼んでいるものです。検証セットを使用してハイパーパラメータを適合させる場合、最終モデルをテストするための3番目のセット(テストセット)も必要になります。
アーロンがスタックオーバーフローを去った

私がそのことを主張しているわけではありません。あなたの場合、おそらくあなたが求めているものであるより伝統的な診断とモデル選択方法を使う方が良いでしょう(そして、悲しいことに、私は適切に答える時間がありません)。
アーロンがスタックオーバーフローを去った

2
あなたが探している答えは、おそらくフランク・ハレル回帰モデリング戦略のセクション5.3にあるでしょう。
アーロンがスタックオーバーフローを去った

回答:


6

最初に、私は通常、1つしかない という発言に注意することは良いことだと思います。何かをする方法。取得したサンプルを「トレーニング」と「テスト」のデータセットに分割することは、多くの機械学習/データサイエンスアプリケーションで一般的なアプローチです。多くの場合、これらのモデリングアプローチは、基礎となるデータ生成プロセスに関する仮説テストにはあまり関心がありません。実際、ほとんどの場合、この種のトレーニング/テスト分割は、予測パフォーマンスに関してモデルが過剰適合しているかどうかを確認したいだけです。もちろん、トレーニング/テストアプローチを使用して、特定のモデルがどのパラメーターが「有意」であるかに関して再現するかどうか、またはパラメーターの推定値が両方のインスタンスで期待される範囲内にあるかどうかを確認することもできます。

理論的には、モデルを検証または無効化することは、大規模な科学が行うことになっているものです。独立した研究者。観察可能な現象が発生する理由または状況下の理論についての議論を支持または否定する仮説を個別に調査、生成、およびテストします。したがって、あなたの質問に答えるために、私にとって、トレーニング/テストの分割でさえモデルを「検証」することはありません。これは、同じ一連の現象を研究している複数の独立した研究者から集められた何年もの証拠の重みがかかるものです。ただし、このテイクは、モデルの検証の意味と、適用された設定での検証という用語の意味についての意味論の違いの可能性があることを認めます...

データとモデリングのアプローチによっては、統計的な観点から、サンプルをトレーニングセットとテストセットに分割することが常に適切であるとは限りません。たとえば、小さなサンプルは、このアプローチを適用するのが特に難しい場合があります。さらに、一部の分布には特定のプロパティがあり、比較的大きなサンプルでもモデル化が困難な場合があります。ゼロ膨張のケースは、おそらくこの後者の説明に適合します。目的が、ある現象を説明すると考えられている一連の関係または基礎となるプロセスについての「真実」の概算に到達することである場合、所定の仮説をテストするための十分に能力のないアプローチを意図的に採用することはうまくいきません。したがって、おそらく最初のステップは、電力分析を実行して、サブセット化されたデータに関心のある結果を再現できるかどうかを確認することです。

別のオプションは、いくつかのモデルを指定して、観測されたデータを「よりよく」説明するかどうかを確認することです。ここでの目標は、一連の合理的な選択肢の中から最良のモデルを特定することです。これは、絶対的なものではなく、相対的なものであり、モデルについての議論です。基本的に、データを説明するためにポジショニングできる他のモデルが存在する可能性があることを認めていますが、そのモデルはテスト済みの代替セットの中で最高です(少なくともそう望んでいます)。セット内のすべてのモデル(仮説モデルを含む)は理論的に接地する必要があります。さもなければ、統計的なストローマンの束をセットアップするリスクを冒します。

代替シナリオと比較した特定の仮説について、データが与えられると、モデルが提供する証拠の重みを計算できるベイズ因子もあります。

これはオプションの完全なリストからはほど遠いですが、それが役に立てば幸いです。今からsoapboxを辞任します。人間の行動に関するすべての発表された研究のすべてのモデルが正しくないことを覚えておいてください。ほとんどの場合、関連する省略された変数、モデル化されていない相互作用、不完全にサンプリングされた母集団、および根底にある真実を不明瞭にするだけの単純な古いサンプリングエラーがあります。


Mattさん、このような詳細な回答を書いてくれてありがとうございます。ただし、概念的なレベルでは役立ちますが、上司とこのアプローチについて話し合う必要があるとの言及はほとんどありません。データをサブセット化する可能性について、論文や本がありますか?それが不可能な場合、あなたが話したこの電力分析を実行できるRパッケージをお勧めしますか?
Eric Lino 2018

Rパッケージとパワーの場合、モデル(pwr、simsemなど)によって異なります。単一の答えはありません。また、データをサブセット化する確率についても、私があなたを正しく理解しているかどうかについて、力について尋ねるもう1つの方法だと思います。パワービットに引き寄せられる場合は、最も弱い効果に集中して、それを複製するために必要な最小サンプルサイズを確認することをお勧めします。これは一種の最悪のシナリオです。
Matt Barstead、2018

そうですか。まあ、私はベンボルカー&他によって開発されたglmmadmbパッケージを使用しています。私の応答変数はゼロ膨張(特定のまれな疾患を持つ人々の数)であり、私の独立変数には、正規分布、非正規分布、ゼロ膨張分布が含まれます。私は時系列を扱っているので、グループ化の要素として「年」を使用しましたが、ZIGLMMファミリーのモデルを調べるのは良い考えのように思えました。この情報は私を助けるのに役立ちますか?
Eric Lino

2
simRパッケージをチェックアウトすることもできます。私の知る限り、これは、線形モデルと一般化線形モデルを使用した電力分析のための最も柔軟な既存のパッケージです。Green、P.、&MacLeod、CJ(2016)。SIMR:シミュレーションによる一般化線形モデルの電力分析用のRパッケージ。生態学と進化の方法。
Matt Barstead、2018

10

一般に、データ分割は、内部検証を行うための非常に非競争的な方法です。これは、深刻なボラティリティが原因です。再分割時の「最終」モデルと「検証」が異なるため、推定値の平均二乗誤差(平均絶対予測誤差や)は、適切なリサンプリング手順よりも高いためです。ブートストラップなど。これについては、回帰モデリングの戦略に関する本とコースノートで詳しく説明しています。リサンプリングには、機能の選択でボラティリティを公開するという、もう1つの大きな利点があります。R2


OPの主な動機は、ZIPモデルが適切であるかどうかを確認することであると考えています=モデル/機能の選択や予測パフォーマンスではなく、残差チェックですが、おそらく明確にすることができます
Florian Hartig

はい、@ FlorianHartigは正解です。しかし、ブートストラップは私に興味があり(この研究でない場合は、知識収集のため)、将来の参照のために私は間違いなくあなたのWebサイトを調べます。ご入力ありがとうございます。
エリックリノ2018

6

質問がいくぶん不明確であるため、ここでの答えは分岐していると思います。「検証」とはどういう意味ですか?

70または30の分割(またはその問題の相互検証)は、通常、モデルまたは分析チェーン全体(モデルの選択を含む場合もある)の予測パフォーマンスを評価するために実行されます。このような検証は、予測パフォーマンスに関してさまざまなモデリングオプションを比較する場合に特に重要です。

モデルを選択したくない場合や、予測パフォーマンスなどに関心がなく、推論(回帰推定/ p値)に関心があり、モデル/エラーの仮定が妥当かどうかを検証する場合は、まったく別のケースです。 GLMMの十分です。この場合、ホールドアウトを予測し、予測を観測データと比較することは可能ですが、はるかに一般的な手順は残差分析を行うことです。これを上司に証明する必要がある場合:これは基本的に、すべての統計の教科書が線形回帰の直後に行うことを教えるものです。

DHARMaパッケージ(免責事項:私はメンテナーです)を使用してGLMMの残差分析を実行する方法(glmmadmbよりも望ましいglmmTMBによるゼロインフレを含む)については、こちらを参照してください。


明確でありながら洞察に満ちた答えをありがとう。私の最初のケースは、あなたが提供した2番目の例でした。モデルの予測パフォーマンスの評価には興味がありませんが、応答変数と独立した変数の間の根本的な関係のみを定量化します。「差し控えを予測する」があなたの意味を正確に理解したかどうかはわかりません。実行後にモデルオブジェクト出力で生成される予測値を参照していますか?
エリックリノ2018

つまり、ホールドアウト(=検証)データの予測と観察を比較して、残差/バイアスを計算します
Florian Hartig

2

つまり、トレーニングで使用されていないデータに対するモデルのパフォーマンスを評価する必要があります。

最新のモデル構築手法は、データを任意にうまくフィッティングするのに非常に優れており、ノイズのある信号を簡単に見つけることができます。したがって、トレーニングデータに対するモデルのパフォーマンスは、ほとんどの場合バイアスされます。

クロス検証のトピック(ハイパーパラメーターを調整していない場合でも)を調べて、データを保持する理由、データが機能するタイミング、関係する仮定などについて理解を深めることは、時間の価値があります。私のお気に入りの論文の1つは:

k分割交差検証の分散の不偏推定量なし


7
R2

保留されたデータをブートストラップすることを提案していますか?
Chris

標準のブートストラップモデルの検証方法であり、R rmsパッケージvalidatecalibrate関数に実装されている、エフロンゴングの楽観的ブートストラップについて読んでください。このブートストラップを使用すると、データを保持することに関して一度だけの決定はありません。私のRMS ブックとコースノートで詳細に説明しているように、オーバーフィットの量は、ブートストラップサンプルで開発されたモデルが(オーバーラップする)元の完全なサンプルに適用されたときにどれだけバラバラになるかを見て推定されます。ブートストラップでは、すべてのモデリング手順を反復ごとに新たに繰り返す必要があります。
フランクハレル2018

面白い。私はあなたのメモとエフロンの論文を調べました。迅速にフィットするモデルの場合、特定のバージョンのブートストラップを採用することでいくつかの利点が実現するように思えます。
クリス

そして、ブートストラップが遅いように見える唯一のことは(安定性を提供するために10回の相互検証を100回繰り返す必要がある交差検証よりもまだ速いですが)、それを提供する単一のデータ分割と比較することです安定の幻想だけです。
フランクハレル2018
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.