p値に基づいて特徴を選択するのは間違っていますか?


12

機能の選択方法に関する投稿がいくつかあります。メソッドの1つは、t統計に基づく機能の重要性を説明します。標準化された特徴をvarImp(model)持つ線形モデルに適用されるRでは、各モデルパラメーターのt統計量の絶対値が使用されます。したがって、基本的には、t統計に基づいて特徴を選択します。つまり、係数の精度を意味します。しかし、私の係数の正確さは、特徴の予測能力について何かを教えてくれますか?

私の機能は低いt統計量を持っていますが、それでもモデルの精度を向上させることができますか?「はい」の場合、t統計に基づいて変数をいつ除外したいでしょうか?それとも、重要でない変数の予測能力をチェックするための出発点にすぎませんか?


3
平均の1サンプル検定の場合、t統計量は、単純にサンプル平均を推定標準誤差で割った値(サンプル標準偏差をサンプルサイズの平方根で割った値)です。その統計自体、特定の仮説に依存しません。その統計からp値を導出することはないという仮説に依存しています。
ダンヒックス

@DanHicks質問を編集しました。
アリーナ

キャレットについてはあまり詳しくvarImp()ありませんが、機能の選択や削除に直接使用されるのではなく、有益な機能または診断機能を目的としているようです。
-david25272

回答:


11

t統計は、フィーチャの予測能力について何も言うことができないので、予測変数を予測モデルから選別したり、予測変数を予測モデルに含めるために使用しないでください。

P値は、偽の特徴が重要であると言う

Rでの次のシナリオのセットアップを考えてみましょう。2つのベクトルを作成してみましょう。1つ目は、単純にコインフリップです。5000

set.seed(154)
N <- 5000
y <- rnorm(N)

2番目のベクトルは観測値であり、それぞれ500個の同じサイズのランダムクラスのいずれかにランダムに割り当てられます。5000500

N.classes <- 500
rand.class <- factor(cut(1:N, N.classes))

次に、y与えられrand.classesたを予測するために線形モデルを適合させます。

M <- lm(y ~ rand.class - 1) #(*)

すべての係数の正しい値はゼロであり、いずれ予測力を持ちません。それにもかかわらず、それらの多くは5%レベルで重要です

ps <- coef(summary(M))[, "Pr(>|t|)"]
hist(ps, breaks=30)

p値のヒストグラム

実際、予測力はありませんが、それらの約5%が重要であると予測する必要があります。

P値は重要な特徴を検出できません

他の方向の例を次に示します。

set.seed(154)
N <- 100
x1 <- runif(N)
x2 <- x1 + rnorm(N, sd = 0.05)
y <- x1 + x2 + rnorm(N)

M <- lm(y ~ x1 + x2)
summary(M)

それぞれ予測力を持つ2つの相関予測子を作成しました。

M <- lm(y ~ x1 + x2)
summary(M)

Coefficients:
            Estimate Std. Error t value Pr(>|t|)
(Intercept)   0.1271     0.2092   0.608    0.545
x1            0.8369     2.0954   0.399    0.690
x2            0.9216     2.0097   0.459    0.648

相関はモデルがデータから2つの個々の係数を推定する精度に影響するため、p値は両方の変数の予測力を検出できません。

推論統計は、変数の予測力や重要性を伝えるためのものではありません。これらの測定値をそのように使用することは、これらの測定値の乱用です。予測線形モデルの変数選択には、はるかに優れたオプションがありますglmnet。の使用を検討してください。

(*)ここでインターセプトを省略していることに注意してください。したがって、すべての比較は、最初のクラスのグループ平均ではなく、ゼロのベースラインに対して行われます。これは@whuberの提案でした。

コメントで非常に興味深い議論につながったため、元のコードは

rand.class <- factor(sample(1:N.classes, N, replace=TRUE))

そして

M <- lm(y ~ rand.class)

次のヒストグラムにつながりました

p値の歪んだヒストグラム


2
うーん、なぜこのp値分布は均一ではないのですか?
アメーバは、モニカを復活させる

4
うわー、どうやって種番号を選んだの?他の結果はほぼ均一なpsになります
...-psychOle

3
この種のものには常に同じシードを使用しようとしています:en.wikipedia.org/wiki/154_(album)
マシュードゥルーリー

9
間違ったテストを実行しています。499のグループ平均を最初のグループの平均と比較しています。シード154では、1.18 ...の最初のグループ平均は異常に高く(グループサイズ5が非常に小さいために発生する可能性があります)、他のほとんどは著しくマイナスの効果があります。モデルを実行して修正しlm(y ~ rand.class - 1)ます。これにより、すべての発言の有効性が変わるわけではありません(+1)。:グループの大きさのバランスをとる、もっと説得力であるためにrand.class <- cut(1:N, N.classes)
whuber

1
もちろん:/私は@whuberが立ち寄るのを100%期待し、私が見逃したことを完全に明確で明白なことを言う。今すぐ修正します。
マシュードゥルーリー

2

t統計量は、エフェクトサイズとサンプルサイズの影響を受けます。エフェクトサイズがゼロ以外の場合でも、サンプルサイズが大きくなるほど大きくない場合があります。

t=バツ¯sn

バツ¯s 効果サイズのサンプル推定値です。小さい場合、p値は、 n 期間が長くなります。

あなたの場合、ゼロ以外の効果を持つ機能はパフォーマンスを改善しますが、その機能のp値を有意にする十分なデータがない場合があります。


4
ゼロ以外の効果を持つ機能によってパフォーマンスが改善されるとは思いません。たぶん、これはトレーニングデータには当てはまりますが、テストデータには当てはまりません。
マシュードゥルーリー

@MatthewDruryサンプルから母集団の測定値を推測する方法がないと言っていますか?
トッドD

いいえ、しかし、偽の機能があなたの能力を妨げる可能性があることは事実です。
マシュードゥルーリー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.