可以输入多元回归方程式的最大自变量数


Answers:


25

您需要考虑“极限”的含义。存在局限性,例如,当预测变量多于案例时,就会遇到参数估计方面的问题(请参阅此答案底部的小R模拟)。

但是,我想您正在谈论有关统计能力和良好统计实践的软限制。在这种情况下,“限制”一词并不是很合适。相反,更大的样本量倾向于使拥有更多的预测变量变得更加合理,并且多少个预测变量是合理的阈值可以说是在合理性的连续性上。您可能会发现有关多元回归中样本量的经验法则讨论很重要,因为许多此类经验法则都参考了预测变量的数量。

几点

  • 如果您更关注整体预测而不是单个预测变量的统计显着性,那么与考虑单个预测变量的统计显着性相比,包含更多的预测变量可能是合理的。
  • 如果您更关心测试与您的研究问题相关的特定统计模型(例如,在许多社会科学应用程序中很常见),则大概您有理由包括特定的预测变量。但是,您可能还可以选择包含哪些预测变量(例如,如果您有多个变量用于衡量相似的构造,则可能只包含其中一个)。在进行基于理论的模型测试时,有很多选择,并且要确定要包含哪些预测变量的决定涉及理论与研究问题之间的紧密联系。
  • 我很少看到研究人员将Bonferroni校正应用于回归系数的显着性检验。造成这种情况的一个合理原因可能是研究人员对评估模型的整体属性更感兴趣。
  • 如果您有兴趣评估预测变量的相对重要性,那么我认为检查预测变量和结果之间的双变量关系以及其他预测变量与预测变量和控制结果之间的关系很有用。如果您包含许多预测变量,那么通常更有可能包含高度相关的预测变量。在这种情况下,对双变量和基于模型的重要性指标的解释都是有用的,因为在双变量意义上重要的变量可能会被其他相关的预测变量隐藏在模型中(我在此处通过链接详细介绍)。


一点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预测变量的数量。我没有将常数视为预测变量,但它是估计值。然后,我生成随机数据,并根据k预测变量对回归变量进行拟合,然后返回拟合值。

鉴于您在问题中提到您对10个预测变量是否过多感兴趣,下面的函数调用显示了当样本量分别为9、10、11和12时会发生什么。即,样本量比预测数少一,比预测数大二

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

>摘要(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 

样本数量比预测变量的数量少一。只能估计9个参数,其中之一是常数。

>摘要(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个参数,其中之一是常数。

>摘要(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 

样本数量比预测变量的数量大一倍。估计所有参数,包括常数。

>摘要(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 

样本数量是预测变量数量的两倍多,最终有可能估算整体模型的拟合度。


有人可以解释为什么第一种情况下的标准误差(n = 9,k = 10)是NA吗?我有标准的误差公式,但看不到分母将如何为0才能使我们得到NA。
matsuo_basho

12

我经常从这样的角度看待这个问题:一个装有一定数量参数的模型是否可能产生与原模型开发样本所做的预测一样准确的样本外预测。校准曲线,X * Beta的均方误差和预测歧视指数是通常使用的一些措施。这就是一些经验法则的来源,例如15:1规则(每个检查或估计的参数的有效样本大小为15)。

关于多重性,假设模型成立并满足分布假设,对多重性的完美调整是对所有贝塔系数(除截距外)均为零的全局检验。通常使用似然比或F检验进行测试。

有两种总体上可行的模型开发方法。(1)具有足够的样本量并适合整个预先指定的模型,并且(2)使用惩罚最大似然估计,以便在回归中仅允许使用当前样本量所支持的有效自由度。[没有惩罚的逐步变量选择将不起作用,因为众所周知这是行不通的。]


这些经验法则是否基于关于真实回归系数的大小和误差方差的大小的假设?如果认为误差方差很小,那么数据点与参数的比例要小得多是可以接受的吗?
mark999 2011年

1
我忽略了这一点。15:1规则适用于生物医学和社会科学中所见的信噪比类型。当残留方差较低时,可以准确估计更多参数。
Frank Harrell

10

ñppñp

1个ķpσ1个/日志pσ1个Xσ1个p


6

原则上,您可以拥有多少个预测变量本身没有限制。原则上,您可以估算出20亿个“ beta”。但是实际上发生的事情是,没有足够的数据或足够的先验信息,这将不会证明是非常有效的做法。不会很好地确定特定的参数,并且您不会从分析中学到很多东西。

现在,如果您没有太多有关模型的先验信息(模型结构,参数值,噪声等),那么您将需要数据来提供此信息。这通常是最常见的情况,这是有道理的,因为您通常需要一个很好的理由来收集有关您已经非常了解的内容的数据(并花费$$$$)。如果这是您的情况,则合理的限制是每个参数具有大量观察值。您有12个参数(10个斜率beta,1个截距和一个噪声参数),因此超过100个观测值的任何事物都应该能够充分确定您的参数,以便得出一些结论。

但是没有“硬性规定”。仅使用10个预测变量,您就不会在计算时间上遇到麻烦(如果这样做的话,请购买一台更好的计算机)。这主要意味着要做更多的工作,因为您要吸收11个维度的数据-使其难以可视化。仅具有1个因变量的回归基本原理并没有太大不同。

bonferroni校正的问题在于,要使其成为一种在不牺牲过多功效的情况下调整显着性水平的合理方法,您需要进行校正的假设是独立的(即,了解一个假设为真,则不会告诉您有关是否另一个假设是正确的)。例如,对于系数为零的多重回归中的标准“ t检验”,情况并非如此。检验统计量取决于模型中的其他内容-这是一种假设假设是相互依赖的回旋方式。或者,一种更常见的说法是,以第i个预测变量为零为条件的t值的采样分布取决于其他什么参数为零。因此,在这里使用bonferroni校正实际上可能会给您较低的“总体”

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.