如何对主成分应用回归来预测输出变量?


9

我从tutorial1link1link2了解了主成分分析的基础知识。

我有100个变量的数据集(包括输出变量Y),我想通过PCA将变量减少到40个,然后使用这40个变量预测变量Y。

问题1:在获取主成分并选择前40个成分之后,如果对其应用回归,则会得到一些适合数据的函数。但是如何根据原始数据预测变量Y?要预测变量YI的输入有(100-1)个变量,我如何知道要从原始的100-1变量中选择哪个40个变量?

问题2:我将PCA反转了,并从那40个主要组件中获取了数据。但是数据发生了变化,因为我只选择了前40个组件。将回归应用于这些数据是否有意义?

我使用Matlab /八度。


要进行PCA,您使用什么软件或程序?例如,在SPSS中,此分析可以轻松完成,您可以设置要提取的主要成分的数量,还可以查看在输出中选择了哪些主要成分。当然,在此数据中应用回归毫无意义,因为PCA仅用于降维。
merveceng 2015年

1
如果您仅对预测感兴趣,则应注意,Hastie,Tibshirani和Friedman建议使用LASSO回归而不是主成分回归,因为LASSO可能做同样的事情(通过减少模型中的变量数量来提高预测能力),但是更好。LASSO现在也以统计软件包的形式广泛提供。
shadowtalker

@ssdecontrol:请做Hastie等。特别推荐套索而不是主成分回归?PCR与脊回归比与套索关系更紧密:它不施加任何稀疏性(即不进行特征选择,与套索不同),而是对类似于脊的所有权重进行惩罚。也许他们建议使用PCR上的弹性网,但这是套索加脊线。
变形虫

1
@amoeba我刚刚去检查了在线PDF。文本更改了,或者我第一次阅读时误解了。结论不是说“套索是优越的”,而是“ PCR,PLS和岭回归的行为趋于相似”,而岭可能更好,因为它是连续的。感谢您让我诚实!
shadowtalker

Answers:


7

您不会选择原始的99(100-1)变量的子集。

每个主要成分都是所有99个预测变量(x变量,IV,...)的线性组合。如果使用前40个主要成分,则每个成分都是所有99个原始预测变量的函数。(至少对于普通的PCA-有稀疏/正规化的版本,例如Zou,Hastie和Tibshirani 的SPCA,它们将基于较少的变量生成组件。)

考虑两个正相关变量的简单情况,为简单起见,我们将假定它们是同等变量。然后,第一个主成分将是两个变量之和的(分数)倍,第二个将是两个变量之差的(分数)倍;如果这两个变量不是同等可变的,则第一个主成分将对较大的变量加权更大,但仍将两者都包含在内。

因此,您从99个x变量开始,通过对每个原始变量应用相应的权重,从中计算40个主成分。[注意,在我的讨论中,我假设X已居中。ÿX

然后,您将使用40个新变量,就好像它们本身就是预测变量一样,就像处理任何多元回归问题一样。(在实践中,有一些更有效的方法来获取估算值,但让我们将计算方面放在一边,只处理一个基本概念)

关于第二个问题,尚不清楚“逆转PCA”是什么意思。

Xž=Xw ^Xñ×99w ^99×4040ÿ^=žβ^个人电脑

ÿ^=žβ^个人电脑=Xw ^β^个人电脑=Xβ^β^=w ^β^个人电脑ÿX。当然,它与通过估计原始X的回归获得的系数不同-通过PCA进行正则化;即使您以此方式获得每个原始X的系数,它们也仅具有您拟合的零件数的df。

另请参阅Wikipedia中的主成分回归

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.