重回帰方程式に入力できる独立変数の最大数


19

重回帰式に入力できる独立変数の数の制限は何ですか?結果変数への相対的な貢献の観点から検討したい10の予測変数があります。ボンフェローニ補正を使用して、複数の分析を調整する必要がありますか?

回答:


25

「制限」の意味を考える必要があります。ケースよりも多くの予測変数がある場合、パラメーター推定で問題が発生するなど、制限があります(この回答の下部にある小さなRシミュレーションを参照)。

ただし、統計的検出力と優れた統計的実践に関連するソフト制限についてもっとお話ししていると思います。この場合、「制限」の言語は実際には適切ではありません。むしろ、サンプルサイズが大きいほど、予測子を増やすことがより合理的になる傾向があり、合理的に予測子がいくつあるかのしきい値は、おそらく妥当性の連続性に依存します。このような経験則の多くは予測変数の数を参照しているため、重回帰のサンプルサイズの経験則の議論に関連する場合があります。

いくつかのポイント

  • 個々の予測子の統計的有意性よりも全体的な予測に関心がある場合は、個々の予測子の統計的有意性に関心がある場合よりも多くの予測子を含めるのがおそらく合理的です。
  • 研究の質問に関連する特定の統計モデルのテストに関心がある場合(たとえば、多くの社会科学アプリケーションで一般的です)、おそらく特定の予測変数を含める理由があります。ただし、どの予測子を含めるかを選択する機会もあります(たとえば、同様の構造を測定する変数が複数ある場合は、そのうちの1つだけを含めることができます)。理論ベースのモデルテストを行う場合、多くの選択肢があり、どの予測変数を含めるかを決定するには、理論と研究の質問を密接に結び付ける必要があります。
  • ボンフェローニ補正を使用している研究者が回帰係数の有意性検定に適用されることはあまりありません。これの合理的な理由の1つは、研究者がモデルの全体的な特性を評価することに関心があるためかもしれません。
  • 予測変数の相対的な重要性を評価することに興味がある場合、予測変数と結果の間の二変量の関係、および予測変数と他の予測変数を制御する結果の間の関係の両方を調べると便利です。多くの予測変数を含めると、相互相関の高い予測変数を含める可能性が高くなります。そのような場合、2変量の意味で重要な変数は他の相関する予測因子によってモデルに隠される可能性があるため、2変量とモデルベースの重要度指数の両方の解釈が役立つ可能性があります(リンクについて詳しく説明します)。


ちょっとしたRシミュレーション

この小さなシミュレーションを作成して、サンプルサイズと多重回帰のパラメーター推定の関係を強調しました。

set.seed(1)

fitmodel <- function(n, k) {
  # n: sample size
  # k: number of predictors
  # return linear model fit for given sample size and k predictors
  x <- data.frame(matrix( rnorm(n*k), nrow=n))
  names(x) <- paste("x", seq(k), sep="")
  x$y <- rnorm(n)  
  lm(y~., data=x)
}

このfitmodel関数はn、サンプルサイズとk予測子の数に対して2つの引数を取ります。定数を予測変数としてカウントしていませんが、推定値です。次に、ランダムデータを生成し、k予測変数からy変数を予測する回帰モデルを近似し、近似を返します。

質問で10個の予測変数が多すぎるかどうかに関心があると述べたため、次の関数呼び出しは、サンプルサイズがそれぞれ9、10、11、および12の場合に何が起こるかを示しています。つまり、標本サイズは予測子の数よりも1つ少なく、予測子の数よりも2つ多い

summary(fitmodel(n=9, k=10))
summary(fitmodel(n=10, k=10))
summary(fitmodel(n=11, k=10))
summary(fitmodel(n=12, k=10))

> summary(fitmodel(n = 9、k = 10))

Call:
lm(formula = y ~ ., data = x)

Residuals:
ALL 9 residuals are 0: no residual degrees of freedom!

Coefficients: (2 not defined because of singularities)
            Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.31455         NA      NA       NA
x1           0.34139         NA      NA       NA
x2          -0.45924         NA      NA       NA
x3           0.42474         NA      NA       NA
x4          -0.87727         NA      NA       NA
x5          -0.07884         NA      NA       NA
x6          -0.03900         NA      NA       NA
x7           1.08482         NA      NA       NA
x8           0.62890         NA      NA       NA
x9                NA         NA      NA       NA
x10               NA         NA      NA       NA

Residual standard error: NaN on 0 degrees of freedom
Multiple R-squared:     1,  Adjusted R-squared:   NaN 
F-statistic:   NaN on 8 and 0 DF,  p-value: NA 

サンプルサイズは、予測子の数よりも1つ小さくなります。推定できるパラメーターは9つだけで、そのうちの1つは定数です。

> summary(fitmodel(n = 10、k = 10))

Call:
lm(formula = y ~ ., data = x)

Residuals:
ALL 10 residuals are 0: no residual degrees of freedom!

Coefficients: (1 not defined because of singularities)
            Estimate Std. Error t value Pr(>|t|)
(Intercept)   0.1724         NA      NA       NA
x1           -0.3615         NA      NA       NA
x2           -0.4670         NA      NA       NA
x3           -0.6883         NA      NA       NA
x4           -0.1744         NA      NA       NA
x5           -1.0331         NA      NA       NA
x6            0.3886         NA      NA       NA
x7           -0.9886         NA      NA       NA
x8            0.2778         NA      NA       NA
x9            0.4616         NA      NA       NA
x10               NA         NA      NA       NA

Residual standard error: NaN on 0 degrees of freedom
Multiple R-squared:     1,  Adjusted R-squared:   NaN 
F-statistic:   NaN on 9 and 0 DF,  p-value: NA 

サンプルサイズは予測子の数と同じです。推定できるパラメーターは10個のみで、そのうちの1つは定数です。

> summary(fitmodel(n = 11、k = 10))

Call:
lm(formula = y ~ ., data = x)

Residuals:
ALL 11 residuals are 0: no residual degrees of freedom!

Coefficients:
            Estimate Std. Error t value Pr(>|t|)
(Intercept)  -0.9638         NA      NA       NA
x1           -0.8393         NA      NA       NA
x2           -1.5061         NA      NA       NA
x3           -0.4917         NA      NA       NA
x4            0.3251         NA      NA       NA
x5            4.4212         NA      NA       NA
x6            0.7614         NA      NA       NA
x7           -0.4195         NA      NA       NA
x8            0.2142         NA      NA       NA
x9           -0.9264         NA      NA       NA
x10          -1.2286         NA      NA       NA

Residual standard error: NaN on 0 degrees of freedom
Multiple R-squared:     1,  Adjusted R-squared:   NaN 
F-statistic:   NaN on 10 and 0 DF,  p-value: NA 

サンプルサイズは、予測子の数よりも1つ多くなっています。定数を含むすべてのパラメーターが推定されます。

> summary(fitmodel(n = 12、k = 10))

Call:
lm(formula = y ~ ., data = x)

Residuals:
        1         2         3         4         5         6         7         8         9        10        11 
 0.036530 -0.042154 -0.009044 -0.117590  0.171923 -0.007976  0.050542 -0.011462  0.010270  0.000914 -0.083533 
       12 
 0.001581 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)  
(Intercept)  0.14680    0.11180   1.313   0.4144  
x1           0.02498    0.09832   0.254   0.8416  
x2           1.01950    0.13602   7.495   0.0844 .
x3          -1.76290    0.26094  -6.756   0.0936 .
x4           0.44832    0.16283   2.753   0.2218  
x5          -0.76818    0.15651  -4.908   0.1280  
x6          -0.33209    0.18554  -1.790   0.3244  
x7           1.62276    0.21562   7.526   0.0841 .
x8          -0.47561    0.18468  -2.575   0.2358  
x9           1.70578    0.31547   5.407   0.1164  
x10          3.25415    0.46447   7.006   0.0903 .
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Residual standard error: 0.2375 on 1 degrees of freedom
Multiple R-squared: 0.995,  Adjusted R-squared: 0.9452 
F-statistic: 19.96 on 10 and 1 DF,  p-value: 0.1726 

サンプルサイズは予測子の数よりも2倍多く、最終的にモデル全体の適合を推定することができます。


最初のシナリオ(n = 9、k = 10)の標準エラーがNAである理由を誰かが説明できますか?標準誤差式はありますが、NAを取得するために分母が0になる方法がわかりません。
matsuo_basho

12

特定の数のパラメーターを備えたモデルが、元のモデル開発サンプルで行われた予測と同じくらい正確なサンプル外の予測を生成する可能性が高いかどうかという観点から、私はこれをよく見ます。検量線、X * Betaの平均二乗誤差、および予測差別の指標は、一般的に使用される指標の一部です。これは、15:1ルール(検討または推定されるパラメーターごとの15の有効なサンプルサイズ)など、いくつかの経験則が由来する場所です。

多重度に関して、モデルが保持され、分布の仮定が満たされると仮定した場合の多重度の完全な調整は、すべてのベータ(切片を除く)がゼロであるというグローバルテストです。これは、通常、尤度比またはF検定を使用してテストされます。

モデル開発には、うまく機能する傾向がある2つの全体的なアプローチがあります。(1)適切なサンプルサイズを持ち、事前に指定されたモデル全体に​​適合します。(2)ペナルティ付き最尤推定を使用して、現在のサンプルサイズがサポートするのと同じくらい多くの有効な自由度の回帰を許可します。[ペナルティなしの段階的変数選択は、機能しないことが知られているため、何の役割も果たさないはずです。]


これらの経験則は、真の回帰係数のサイズと誤差分散のサイズに関する仮定に基づいていますか?エラー分散が非常に小さいことがわかっている場合、パラメーターに対するデータポイントの比率ははるかに小さくてもよいと考えるのは正しいでしょうか?
mark999

1
それは私が言及することを怠った素晴らしい点です。15:1のルールは、生物医学および社会科学で見られる信号:ノイズ比のタイプです。残差分散が低い場合、さらに多くのパラメーターを正確に推定できます。
フランクハレル

10

npmpmmnp

1mKpσ1/ログpσ1バツσ1p


6

原則として、予測子の数に制限はありません。原則として20億個の「ベータ」を見積もることができます。しかし、実際に起こることは、十分なデータや十分な事前情報がなければ、非常に有益なエクササイズを証明できないということです。特定のパラメータはあまり適切に決定されず、分析から多くを学ぶことはありません。

モデルに関する以前の情報(モデル構造、パラメーター値、ノイズなど)があまりない場合は、この情報を提供するためのデータが必要になります。通常、これは最も一般的な状況です。これは理にかなっています。なぜなら、あなたは通常、あなたが既によく知っているものについてデータを収集する(そして$$$を使う)かなりの理由が必要だからです。これがあなたの状況である場合、合理的な制限はパラメーターごとに多数の観測値を持つことです。12個のパラメーター(10個のスロープベータ、1個のインターセプト、およびノイズパラメーター)があるため、100個を超える観測値でパラメーターを決定でき、結論を出すことができます。

しかし、「ハードで速い」ルールはありません。予測子が10個しかないので、計算時間に問題はありません(もしあれば、より良いコンピューターを入手してください)。11次元のデータを吸収する必要があるため、主に多くの作業を行うことを意味します。データを視覚化することは困難です。1つの従属変数のみを使用した回帰の基本原則は、実際にはそれほど違いはありません。

ボンフェローニ補正の問題は、あまりにも多くの力を犠牲にすることなく有意水準を調整する合理的な方法であるために、独立しているために補正しているという仮説を必要とすることです別の仮説が正しい)。これは、たとえば係数がゼロの場合の重回帰の標準的な「t検定」には当てはまりません。検定統計量は、モデル内の他の要素に依存します。これは、仮説が依存していると言う回り道です。または、これをより頻繁に言う方法は、i番目の予測子がゼロであることを条件とするt値のサンプリング分布は、他のパラメーターがゼロであることに依存するということです。したがって、ここでボンフェローニ補正を使用すると、実際にはより低い「全体」

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