「再編成トリック」の名前(データセットをランダムに並べ替えて、推定器のバイアスを推定します)


8

複雑なモデリング手法が偏っているかどうかを調べるための次の方法の参照または名前を知っていますか?T

  1. 元のデータセットにを適用します。そのパフォーマンスを測定します(例:回帰設定のR-2乗)。T
  2. 応答変数をランダムに並べ替えて、新しいデータセットを取得します。を適用し、そのパフォーマンスを測定します。[観測が依存している場合、このステップはより複雑になります。]P 'TP

が実質的にゼロのパフォーマンスと異なる場合、がバイアスされていると結論付けます。 TPT

リソースが許す場合、ステップ2を繰り返すことができます。これにより、パフォーマンス測定の順列ヌル分布が発生します。しかし、私のアプリケーションでは、リソースの問題のためにこれを行うことはできません。

この「再編成」のトリックは、誰かが(一部の設定で)リーブワンアウト相互検証のバイアスを調査するために使用したことを暗に覚えています。しかし、彼が私のプロセスの中で一度だけプロセス全体を繰り返すことができたのかどうかはわかりません。

単純な後方選択の「力」を示すRの例:

# Generate random data set. Only random performance is expected.
n <- 100
p <- 30

set.seed(7567)
y <- rnorm(n)
X <- rnorm(n*p)
dim(X) <- c(n, p)
data <- data.frame(y, X)

# Modelling technique: backward selection with OLS
T <- function(data) {
  step(lm(y ~ ., data = data), trace = 0)
}

# Performance: R-squared
P <- function(fit) {
  summary(fit)$r.squared
}

# Step 1: Compute performance on original data. Happily publish high R-squared...
P(T(data)) # 0.240405

# Step 2: Your mean colleague reshuffles response and gets also R-squared far away from 0
data$y <- data$y[sample(n)]
P(T(data)) # 0.1925726

例に関する結論:選択したモデリング手法は、少なくともこの特定の設定では、過剰適合しがちです。

いくつかの背景

私はかつてこの再編成のトリックを使用して、いくつかの面倒なモデリングプロセスの相互検証が適切に実装されたかどうかを確認しました。ランダムな順列の下で、CVは本質的に0のR二乗を与えました(期待どおり/望ましい)。


3
この質問は非常に関連性があるようです:stats.stackexchange.com/questions/192291/…とそれに引用されている参照
ヒラメ

2
@Floundererを検索しました。さらに読んでみたい人のために、この質問へのリンクを私の回答に追加しました(そして、おそらく、それに値する賛成票のいくつかにアメーバの回答を得ます)
IWS

回答:


15

タイトルの質問に答えるために、これは順列検定と呼ばれています場合、これはあなたがが探しているものを実際にある質問で説明したように、それは動作しません。

(ある程度)簡潔にするために、順列テストは実際に「列」の1つをシャッフルし、目的のテストまたは計算を実行することによって機能します。ただし、コツは何度もこれを行うことで、毎回データをシャッフルします。小さなデータセットでは、可能なすべての順列を実行することさえ可能かもしれません。大規模なデータセットでは、通常、コンピューターが処理できる量の置換を実行しますが、これは対象の統計の分布を取得するのに十分な大きさです。

最後に、この分布を使用して、たとえば、2つのグループ間の平均差が分布の95%で> 0かどうかを確認します。簡単に言えば、分布のどの部分が特定の臨界値の上または下にあるかをチェックするこの後者のステップは、仮説検定の「p値」です。

これが元のサンプルのp値と大きく異なる場合は、対象の検定/統計に問題があるとは言えませんが、サンプルには、検定結果に特に影響を与える特定のデータポイントが含まれています。これはバイアス(一部の奇妙なケースを含むことによる選択バイアス、特定のケースでの測定エラーなど)であるか、テストの誤った使用(たとえば、違反した仮定)である可能性があります。

詳細については、https://en.wikipedia.org/wiki/Resampling_(statistics)を参照してください

さらに、置換テストと変数選択を組み合わせる方法について詳しく知りたい場合は、この質問に対する@amoebaの回答を参照してください。


1
T

5
T

1
@MichaelM順列検定とランダム化検定は同じ検定です。統計の計算に長い時間がかかる場合、置換テストの実行には非常に長い時間がかかります。
AdamO

@AdamO:タイミングについては完全に同意します。しかし、このテクニックは仮説をテストすることではありません。これは、バイアスの推定に関するものです(これは、ブートストラップアプリケーションの方向に向かっていきます)。しかし、それが私が質問した理由です!
マイケルM

2

私はようやくフランクハレルの著書「回帰モデリング戦略」[1]のセクション5.2.4(データ分割の改善:リサンプリング)で答えを見つけました。

「ランダム化手法」は、特に変数選択と組み合わせて(OPの例のように)応答のランダムな順列を通じて楽観性を推定する興味深い手法として提示されています。

彼は特に、関連するアイデアについて[2]を参照しています。

この方法は非常に単純です。たとえば、複雑なモデリング戦略に前向き/後ろ向き(および横向き)の選択が含まれていて、データセットが小さすぎて、トレイン/検証/テストを適切に分割できないとします。さらに、フォールド内の特定の割合のデータを常に破棄することを意味するため、相互検証を完全に信頼することはできません。0.7のR二乗が有効であるか、それとも過適合の結果であるかをどのように判断できますか?ランダム化の方法は次のように機能します(ここではR-2乗について説明していますが、これは対象となる任意のパフォーマンス指標になる可能性があります)。戦略に偏りがない場合、ランダムに並べ替えられた応答変数を含むデータセットで繰り返された場合、R-2乗は0に近いと予想されます。20個の置換後、平均R-squaredが0ではなく0.6になるとします。つまり、元のRの2乗が0であることがわかります。7は、おそらく過剰適合の結果にすぎません。「真の」R二乗のより正直な推定は、0.7-0.6 = 0.1(小)になります。あなたはあなたの戦略がどれほどひどくオーバーフィットしているかを示しました。

この方法の利点

  • とてもシンプル
  • 常に完全なデータセットを使用します

短所は次のとおりです

  • 楽観論の推定は非常に正確ではないようです
  • この方法は、相互検証やブートストラップ検証とは異なり、よく知られていません。

[1]フランクハレル、「回帰モデリング戦略」、2001年。スプリンガー。

[2] R. TibshiraniおよびK. Knight。適応モデル選択のための共分散インフレ基準。JRSS B、61:529-546、1999。


1
+1興味深いことに、この方法を見逃しているようですが、リサンプリング方法の一般的な説明についての私の回答に対する賛成投票を楽しんでいます。この単一の並べ替え方法がどのように機能するかでこの答えを詳しく説明できれば、それはすばらしいことです。
IWS 2018年

謝罪する必要はありません!あなたの答えはいつでも大歓迎です。実際には詳しく説明することはあまりありませんが、回答にいくつかの情報を追加しました。
マイケルM

さらに読んだ結果に基づいて、私はOPとは対照的に、通常、いくつかの順列を実行して十分な精度で楽観主義を計算することを強調するように答えを変更しました。
マイケルM

これは、この手法に関する最近の出版物です。arxiv.org
Michael M
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.