クラシック線形モデル-モデル選択


16

私は古典的な線形モデルを持ち、5つのリグレッサがあります。それらは互いに相関関係がなく、応答との相関が非常に低くなっています。3つのリグレッサがt統計に有意な係数を持つモデルに到達しました(p <0.05)。残りの2つの変数のいずれかまたは両方を追加すると、追加された変数のt統計値に対してp値が0.05より大きくなります。これは、3変数モデルが「最良」であると信じさせることにつながります。

ただし、Rでanova(a、b)コマンドを使用すると(aは3変数モデル、bは完全モデル)、F統計のp値は<0.05であり、3変数よりも完全モデルを優先するように指示されますモデル。これらの明らかな矛盾をどのように調整できますか?

PS Editに感謝:さらなる背景。これは宿題ですので、詳細は投稿しませんが、リグレッサーが何を表すかについては詳しく説明しません。1から5までの番号が付けられているだけです。


6
適切なモデルは、事前に指定されたすべての変数(非線形性の考慮など)を効果的に使用するモデルを意味するものと見なされます。段階的な変数選択が無効であることを講師が理解することを願っています。ほとんどありません。
フランクハレル

1
こんにちは、ありがとう。前後にすみません。指示には、「必ずしも「最適な」モデルが1つというわけではなく、必ずしもすべての予測変数を含める必要はありません」とあります。また、共線性や非線形性はありません。実際、5つの予測子はすべて、正規分布からの独立したシミュレーションによって生成されます。その結果、予測変数と応答の間の相関も小さくなります(最大値は0.1未満です)。率直に言って、私の直感では、「最良の」モデルは単なるサンプル平均である可能性があります(調整されたrの2乗は0.03未満)
P Sellaz

@P Sellaz:これがシミュレートされたデータを使用した宿題であることを考えると、あなたの直感がここであなたに役立つかもしれません。あなたの直観について十分な理由のある説明を書きなさい。
ザック

1
一般に、を使用することはできません。その大きさはコンテキストに依存しているためです。ただし、シミュレーションの実行方法に正確に応じて、全体的な平均が必要なものである可能性があります。R2
フランクハレル

1
一般に、良い仕事をするためにすべての予測変数を含める必要はありません。ただし、どの予測変数を使用するかをデータから判断することはできません。
フランクハレル

回答:


18

問題は、予測モデルを選択するために主題の知識ではなく、縮小モデルを探してデータを使用したときに始まりました。変数の選択にペナルティを与えるための同時のシンカージュなしの段階的な変数選択は、頻繁に使用されますが、無効なアプローチです。これについて多くのことが書かれています。3変数モデルが「最良」であると信頼する理由はなく、事前に指定された予測子の元のリストを使用しない理由はありません。P値を使用して変数を選択した後に計算されたP値は無効です。これは、機能的イメージングの文献では「二重浸漬」と呼ばれています。

これは類推です。6つの治療法の比較に興味があるが、ペアワイズt検定を使用して、どの治療法が「異なる」かを選択すると、4つの治療法のセットが減少します。次にアナリストは、3つの自由度で全体的な違いをテストします。このFテストでは、タイプIのエラーが大きくなります。5 dfの元のFテストは非常に有効です。

詳細については、http://www.stata.com/support/faqs/stat/stepwise.htmlおよびを参照してください


1
お返事をありがとうございます。元の質問の編集を追加しました。それでいいと思います。これ以上のアドバイスは大歓迎です。
Pセラズ

6

1つの答えは、「これは主題の知識なしでは実行できません」です。残念ながら、それはあなたの割り当てでFを取得する可能性があります。私があなたの教授でない限り。次に、Aを取得します。

R2

それから

5つの予測子はすべて、正規分布からの独立したシミュレーションによって生成されます。

さて、これを知っている(つまり、インストラクターから教えられている)場合、「独立」とは「DVに関係ない」という意味であれば、最適なモデルは予測子のないモデルであり、直感が正しいことがわかります。


こんにちはピーター、ありがとう。Nは900です。データはすべてシミュレーションによって作成されました。私たちが自分でシミュレーションをしなければならなかったので、私はこれを知っています。この宿題に関する限り、それらは実際のデータを表すことになっています。100回のシミュレーションが行われ、応答との相関が最も大きい5つのシミュレーション(1回だけシミュレートされました)がリグレッサー候補として選択されました。
Pセラーズ

1
XとYの間の接続をシミュレートしないことを確認してください。他の人が言ったように、回帰モデルは無関係であり、全体の平均は十分です。
フランクハレル

1
はい、彼らは完全に独立しています。最大の5つの相関関係を持つデータをリグレッサー候補として選択し、そこから「適切なモデルを導き、正当化する」必要がありますが、「5つのプレディクターすべてを含める必要はありません」。
Pセラズ

教授は、a)完全に混乱しているか、b)非常に興味深いことをしているようです。どちらを判断するのは難しい。@FrankHarrellと私と他の人が指摘しているようなものを見せるために彼/彼女がこれを意図していたなら、それでいい!(それはbになります)。OTOH、これが「本当の」回帰であることを意図しているなら、それはそうですa)。
ピーターフロム-モニカを復元

1
論文にマークが付けられているのはどちらかをお知らせします:)
Pセラーズ

4

クロス検証を試してみてください。サンプルのサブセットを選択し、Fまたはt検定を使用してそのサブセットに「最適な」モデルを見つけ、それを完全なデータセットに適用します(完全なクロス検証はこれよりも複雑になる可能性がありますが、これは良い出発点です)。これは、段階的なテストの問題のいくつかを軽減するのに役立ちます。

このアイデアのかわいいシミュレーションについては、デビッド・フリードマンによる回帰方程式のスクリーニングに関するメモを参照してください。


2

私はcaretパッケージで使用されているメソッド、つまり再帰的な機能の削除が本当に好きです。ビネットで詳細を読むことができますが、基本的なプロセスは次のとおりです。 Variable Selection

基本的な考え方は、重要でない変数を排除するための基準(t統計など)を使用し、それがモデルの予測精度を改善する方法を確認することです。クロスバリデーションなど、リサンプリングループで全体をラップします。線形モデルを使用して、説明したのと同様の方法で変数をランク付けする例を次に示します。

#Setup
set.seed(1)
p1 <- rnorm(50)
p2 <- rnorm(50)
p3 <- rnorm(50)
p4 <- rnorm(50)
p5 <- rnorm(50)
y <- 4*rnorm(50)+p1+p2-p5

#Select Variables
require(caret)
X <- data.frame(p1,p2,p3,p4,p5)
RFE <- rfe(X,y, sizes = seq(1,5), rfeControl = rfeControl(
                    functions = lmFuncs,
                    method = "repeatedcv")
                )
RFE
plot(RFE)

#Fit linear model and compare
fmla <- as.formula(paste("y ~ ", paste(RFE$optVariables, collapse= "+")))
fullmodel <- lm(y~p1+p2+p3+p4+p5,data.frame(y,p1,p2,p3,p4,p5))
reducedmodel <- lm(fmla,data.frame(y,p1,p2,p3,p4,p5))
summary(fullmodel)
summary(reducedmodel)

この例では、アルゴリズムは3つの「重要な」変数があることを検出しますが、そのうち2つしか取得しません。

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