ブートストラップされた回帰スロープを比較するにはどうすればよいですか?


13

それぞれ独立変数xと従属変数yのデータペアのn個の観測値を持つ2つのデータセットがあるとします。さらに、観測値を(置換を使用して)N回ブートストラップし、回帰y = a + bxを計算することにより、各データセットの回帰勾配の分布を生成すると仮定します。毎回。勾配が大幅に異なると言うために、2つの分布を比較するにはどうすればよいですか?分布の中央値間の差をテストするためのUテストはNに大きく依存します。つまり、ブートストラップを繰り返す頻度が高いほど、差は大きくなります。有意差を決定するために、分布間のオーバーラップをどのように計算する必要がありますか?

回答:


19

ブートストラップは、大規模なサンプル理論で想定されているものよりもサンプリング分布の堅牢な画像を取得するために行われます。ブートストラップするとき、取る「ブートサンプル」の数に事実上制限はありません。実際、より多くのブートサンプルを取得すればするほど、サンプリング分布に対するより良い近似が得られます。使用するのが一般的であるという数について何も魔法があるが、bootsamplesを。さらに、ブートサンプルでテストを実行しません。サンプリング分布の推定値があります。直接使用してください。アルゴリズムは次のとおりです。B=10,000

  1. ブート監視を置換でサンプリングして、1つのデータセットのブートサンプルを取得します。[以下のコメントに関して、関連する質問の1つは、ブートサンプルに使用する有効な「ブート監視」を構成するものです。実際、いくつかの正当なアプローチがあります。堅牢でデータの構造をミラーリングできる2つについて説明します。観測データがある場合(つまり、データがすべての次元でサンプリングされた場合、ブート観測は順序付けられたnタプル(行など)になります。たとえば、1つの予測変数と1つの応答変数がある場合、n 1x y をサンプリングしますn1n1 (x,y)順序対。一方、実験データを操作する場合、予測変数値はサンプリングされませんでしたが、実験単位は各予測変数の意図したレベルに割り当てられました。このような場合、予測変数のjレベルのそれぞれから y値をサンプリングし、それらのyをその予測レベルの対応する値とペアにすることができます。この方法では、Xでサンプリングすることはありません。]n1j yjyX
  2. あなたの回帰モデルを当てはめ、スロープ推定値を保存する(それが呼び出すβ 1β^1
  3. ブート観測を置換でサンプリングして、他のデータセットのブートサンプルを取得しますn2
  4. 他の回帰モデルを当てはめ、スロープ推定値を保存する(それが呼び出すβ 2β^2
  5. 2つの推定値から統計量を形成する(提案:勾配差を使用β 1 - β 2β^1β^2
  6. 統計を保存し、メモリを無駄にしないように他の情報をダンプします
  7. 繰り返し手順1 - 6、B=10,000
  8. 勾配差のブートストラップサンプリング分布を並べ替える
  9. 0とオーバーラップするbsdの%(右テール%または左テール%のいずれか小さい方)を計算します
  10. この割合に2を掛けます

統計的検定としてのこのアルゴリズムのロジックは、基本的に古典的な検定(t検定など)と似ていますが、データまたは結果のサンプリング分布に特定の分布があるとは想定していません。(たとえば、正規性を仮定していません。)あなたがしている主な仮定は、あなたのデータがあなたがサンプリングした/一般化したい母集団の代表であるということです。つまり、サンプル分布は母集団分布に似ています。データが関心のある母集団に関連していない場合、運が悪かったことに注意してください。

一部の人々は、正規性を引き受けたくない場合、例えば回帰モデルを使用して勾配を決定することを心配しています。しかし、この懸念は間違っています。ガウス-マルコフの定理は、推定値が不偏(つまり、真の値を中心とする)であるため、問題ないことを示しています。正規性の欠如は、真のサンプリング分布が理論的に仮定された分布と異なる可能性があることを意味しているため、p値は無効です。ブートストラップ手順は、この問題に対処する方法を提供します。

ブートストラップに関する他の2つの問題:古典的な仮定が満たされている場合、ブートストラップはパラメトリックテストよりも効率が低い(パワーが小さい)。第二に、ブートストラップは、分布の中心付近を探索しているときに最適に機能します。平均と中央値は良好で、四分位数はあまり良くない、最小または最大のブートストラップは必ず失敗します。最初の点に関しては、状況に応じてブートストラップする必要はありません。2番目の点に関しては、勾配のブートストラップは完全に問題ありません。


私はよく間違っているかもしれないが、私は...回帰でブートストラップを検証するために、残差ではなく、生データ上にあると思っていた
西安

@ Xi'an、私は自分自身の前に間違っていましたが、ブートストラップ残差だけが有効であると思う理由がわかりません。Efron&Tibshirani(1994)セクション9.5は、「ブートストラップペアは、ブートストラップ残差よりも仮定の影響を受けにくい。ブートストラップペアによって得られる標準誤差は、[線形モデルの確率構造]が完全に間違っていても合理的な答えを与える」と述べています。意味は、ブートストラップのアプリケーションはより堅牢であるということですが、場合によっては効率が低下する可能性があります。
GUNG -復活モニカ

ペアのブートストラップに関する心配は、予測子の分布も組み込むことです。これは通常、通常の線形モデルでは画像の外側に残されます。だからこそ、私はいつも生徒に残差だけをブートストラップするように教えます。
西安

@ Xi'an、それは合理的なポイントです、私は観測データ構造を仮定していたと思います。これらの懸念に関する詳細を追加するために、回答を編集しました。ただし、ブートストラップペアが必ずしも無効であることをどのように意味するかわかりません。
GUNG -復活モニカ

2つの独立したデータセット間のペアリングを強制することは、人為的で非効率的です。あなたはそれよりもはるかに良いことができます!
whuber

4

si

yi=β0+β1xi+β2si+β3sixi+ϵi
β3
E[yix,si=1]=(β0+β2)+(β1+β3)xiE[yix,si=0]=β0+β1xi.
β3nn2n

エラー用語に相関関係がある場合は、この手順を少し変更する必要があるかもしれません。その場合は書き直してください。

このアプローチは、一見無関係な回帰(SUR)フレームワークに一般化できます。このアプローチでは、2つのデータセットで切片の係数と勾配を任意に変えることができます。


1
いい考えだね。しかし、これは、2つの回帰にiidエラーがあると仮定していませんか?
whuber

1
いい視点ね。グループごとにエラーに異なる分散がないこと、およびエラーが異なるグループで相関しないことが必要です。
チャーリー

0

1回の回帰ですべてを行うことは適切であり、独立性の仮定は重要です。しかし、この方法でポイント推定値を計算するに、一定の分散必要ありませ。このRコードを試してください。

x <- rbinom(100, 1, 0.5)
z <- rnorm(100)
y <- rnorm(100)
coef(lm(y~x*z))
coef(lm(y~z, subset= x==1))[1] - coef(lm(y~z, subset= x==0))[1]
coef(lm(y~z, subset= x==1))[2] - coef(lm(y~z, subset= x==0))[2]

どちらの方法でも同じポイント推定値が得られます。標準誤差の推定には一定の分散が必要になる場合があります(どちらを使用するかによって異なります)が、ここで考慮されるブートストラップは推定標準誤差を使用しません。


1
勾配の差がゼロであるかどうかをテストする場合(フォローアップしていると思われる@Charlieの回答のように)、標準誤差の正確で有効な推定値が必要です。その推定値をブートストラップするかどうかは関係ありません。
whuber
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.