我可以对每个变量使用线性模型来确定哪些变量是重要的吗?

机器算法验证 特征选择
2022-03-27 16:03:50

假设我们有一个*p 矩阵 X 和一个*1 矩阵 Y,其中 n 是样本数,p 是变量数。p>>n。还假设此数据来自生物学现场实验。我的目标是选择潜在的生物标志物(变量)。

我知道有很多变量选择工具,例如逐步过程、基于标准的方法和其他嵌套在算法中的方法(随机森林、PLS、SVM 等)。但我认为这些方法的目的是建立一个模型以做出良好的预测准确性,然后告诉这个模型中的人,哪些变量是相对重要的。

在我看来,因为我的目标不是预测而是选择可能的生物标志物,这些生物标志物将在进一步的实验中得到证实,我可以简单地在每个变量和 Y 之间进行线性回归,看看哪些是显着的并且具有高 R^2 分数?

谢谢!

我知道这不是一个简单的答案问题。请对您的想法提供一个相对全面的描述。

3个回答

不会。所提出的方法似乎不太可能产生有用的结果。我预计的问题是很多假阳性结果。

例如,假设我们希望预测y并有两个预测器xz.

y=x+ϵ1

z=x+ϵ2

那么所提出的方法很可能同时选择xz. 任何体面的线性模型涉及xz同时会引导你看到z在存在的情况下不需要x.

这听起来不太可能,但是当您向模型添加更多变量时,您更有可能已经考虑了所有信号。

这样做的结果是你可能不得不做很多不必要的额外实验。

我建议 OP 调查 LASSO 回归。这是很好的设置pn需要变量选择的回归问题。一般来说,虽然你猜这个区域应该已经为线性模型完全开发了,但pn变量选择问题仍然是一个活跃的研究领域。


X = rnorm(1000)
Y = X + rnorm(1000)
Z = X + rnorm(1000)
summary(lm(Y ~ Z))

Call:
lm(formula = Y ~ Z)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.8207 -0.8326 -0.0109  0.8688  3.8545 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) -0.02033    0.03998  -0.509    0.611    
Z            0.50815    0.02840  17.895   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 1.264 on 998 degrees of freedom
Multiple R-squared:  0.2429,    Adjusted R-squared:  0.2422 
F-statistic: 320.2 on 1 and 998 DF,  p-value: < 2.2e-16

summary(lm(Y ~ X + Z))

Call:
lm(formula = Y ~ X + Z)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.5276 -0.6879 -0.0111  0.6992  3.4331 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept) -0.021569   0.032455  -0.665    0.506    
X            1.028787   0.045233  22.744   <2e-16 ***
Z            0.001838   0.032047   0.057    0.954    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 1.026 on 997 degrees of freedom
Multiple R-squared:  0.5015,    Adjusted R-squared:  0.5005 
F-statistic: 501.6 on 2 and 997 DF,  p-value: < 2.2e-16

编辑:关于提议的方法是否会消除所有真正的积极因素。我会怀疑的。

首先,假设所有的真阳性都找到了,那么提出的过滤机制基于R2仍然会遇到麻烦。假设我们在示例中添加了另一个变量q这对整体变化没有太大贡献y

y=x+0.1q+ϵ

然后q通常会有一个较低的R2z. 因此,您将无法信任您的排名机制。


> Q = rnorm(1000)
> Y = X + 0.1*Q + rnorm(1000)
> summary(lm(Y~X+Z+Q))

Call:
lm(formula = Y ~ X + Z + Q)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.4460 -0.6397  0.0551  0.6146  3.6106 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 0.002512   0.032670   0.077 0.938719    
X           0.981008   0.047013  20.867  < 2e-16 ***
Z           0.015557   0.033436   0.465 0.641838    
Q           0.115547   0.032690   3.535 0.000427 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 1.03 on 996 degrees of freedom
Multiple R-squared:  0.487, Adjusted R-squared:  0.4855 
F-statistic: 315.2 on 3 and 996 DF,  p-value: < 2.2e-16

> summary(lm(Y~Z))

Call:
lm(formula = Y ~ Z)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.8912 -0.8182 -0.0121  0.8061  3.7114 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  0.03833    0.03915   0.979    0.328    
Z            0.51934    0.02785  18.645   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 1.238 on 998 degrees of freedom
Multiple R-squared:  0.2583,    Adjusted R-squared:  0.2576 
F-statistic: 347.6 on 1 and 998 DF,  p-value: < 2.2e-16

> summary(lm(Y~Q))

Call:
lm(formula = Y ~ Q)

Residuals:
    Min      1Q  Median      3Q     Max 
-4.2620 -0.9772  0.0030  1.0116  4.7014 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)  
(Intercept)  0.02539    0.04535    0.56    0.576  
Q            0.10861    0.04544    2.39    0.017 *
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 1.433 on 998 degrees of freedom
Multiple R-squared:  0.005693,  Adjusted R-squared:  0.004696 
F-statistic: 5.714 on 1 and 998 DF,  p-value: 0.01702

我也预计这是真正的模型y变得更加复杂,例如

y=x1+x2+...+xn+q+ϵ

然后回归q仅此一项就不会认为系数很重要。原因是结构上的变化y由于x会被我们对噪声的估计所淹没σ2

原因是省略了真实变量x我们的回归性能变差,均方误差变大,σ^2变大,因此线性回归系数的标准误差变差。


如果您的预测变量(生物标志物)是共线性的,则单变量回归可能会严重高估/低估效应大小,具体取决于共线性的符号及其效应大小的乘积符号。如上所述,这被称为辛普森悖论,或者通常称为遗漏变量偏差。因此,我不推荐这种方法。

我不知道 p>>n 案例的完美解决方案,我也不认为存在一个。然而,如果目标是为以后的测试优先考虑预测变量,并且您认为效果可以通过线性关系很好地表达,我会选择正则化方法,例如岭回归和套索,并简单地采用最强的变量效果 - 基于 AIC 的模型选择的优势在于对预测变量中的共线性的敏感性较低(因为未删除预测变量)。

亚里士多德说:“整体大于部分之和。” 每个简单的线性回归只是测试一部分。但是,我认为许多疾病都与标志物(整体)的组合有关。你真正关心的是标记的组合。结果,您的算法可能无法正常工作,因为您没有测试组合。