用PCA去除R中的变量

用PCA去除R中的变量,r,linear-regression,R,Linear Regression,我试图搜索这个,但找不到信息。我正在使用10个变量(1个y变量和9个x变量)进行线性回归。所有变量都是相关的。我想看看我是否需要全部9个变量。如何使用PCA中的数据消除变量? 我使用prcomp()对所有10个变量进行PCA,得到以下结果: Importance of components: PC1 PC2 PC3 PC4 PC5 PC6 PC7 PC8 PC9 PC10

我试图搜索这个,但找不到信息。我正在使用10个变量(1个y变量和9个x变量)进行线性回归。所有变量都是相关的。我想看看我是否需要全部9个变量。如何使用PCA中的数据消除变量? 我使用
prcomp()
对所有10个变量进行PCA,得到以下结果:

Importance of components:
                          PC1     PC2     PC3     PC4     PC5     PC6     PC7     PC8     PC9     PC10
Standard deviation     0.1021 0.04005 0.03464 0.03114 0.02414 0.02047 0.01708 0.01425 0.01308 0.003287
Proportion of Variance 0.6567 0.10101 0.07555 0.06104 0.03668 0.02639 0.01838 0.01278 0.01078 0.000680
Cumulative Proportion  0.6567 0.75773 0.83328 0.89432 0.93100 0.95738 0.97576 0.98854 0.99932 1.000000

Rotation:
               PC1          PC2         PC3         PC4         PC5         PC6         PC7         PC8          PC9         PC10
 [1,] -0.219033940  0.009323363  0.14371969  0.06987706  0.19302513 -0.02648874  0.16654618 -0.06567080 -0.925393447  0.005948459
 [2,] -0.007661133 -0.027804546 -0.24045564  0.13997803  0.00461297 -0.13195868  0.13625008  0.05140013 -0.005668700 -0.939724900
 [3,] -0.053184446 -0.212036806 -0.26744318  0.36220366 -0.53094911  0.24356319 -0.04692857 -0.62944042 -0.084900337  0.051564259
 [4,] -0.188804651  0.062154139 -0.08807850  0.18886008  0.19969440 -0.59987987 -0.68882923 -0.20548388 -0.004509710  0.024501524
 [5,] -0.299789863  0.080676352 -0.62720621 -0.23335343  0.37274825  0.50767975 -0.23796461  0.03549668 -0.025233090  0.023917725
 [6,] -0.013478134 -0.052386807 -0.58015768  0.34394876 -0.01276741 -0.38994226  0.42009710  0.31887185  0.002157408  0.334375266
 [7,] -0.380565266  0.227200067  0.23992808  0.40306010  0.46135693  0.09059073  0.35930614 -0.34019038  0.342613874  0.015991214
 [8,] -0.432463682  0.037822199  0.20765408  0.45337044 -0.30497494  0.26299209 -0.26947304  0.57196490  0.008807625 -0.029461460
 [9,] -0.654931547  0.158646794 -0.01629962 -0.51083458 -0.39357245 -0.27198634  0.20326283 -0.08572653  0.083798804 -0.010738521
[10,] -0.250287731 -0.928894500  0.10639604 -0.08339656  0.20266163 -0.03955488  0.02948133  0.03827340  0.106117791  0.002154660

听起来你面临着一个模型选择问题,你想在不过度拟合的情况下选择最好的变量吗

PCA可能不是特征选择的方法,这里有一个讨论:

PCA的通常用途是降维,即使用比实际存在的维度更少的维度来描述数据中的关系。一个能够解释大量差异的组件可能是一个很好的特性,但不一定,它并不完全适合这个目的

如果您想做的是减少模型中的特征数量,我建议使用类似的信息标准。您可以很容易地将此is R与
stepAIC
函数一起使用,如下所示:

library(MASS)
fit = lm(Sepal.Length ~ .^2,data=iris)
step <- stepAIC(fit, direction="backward")
step$anova
>> Stepwise Model Path 
>> Analysis of Deviance Table
>> 
>> Initial Model:
>> Sepal.Length ~ (Sepal.Width + Petal.Length + Petal.Width + Species)^2
>> 
>> Final Model:
>> Sepal.Length ~ Sepal.Width + Petal.Length + Petal.Width + Species + 
>>   Sepal.Width:Petal.Width + Petal.Length:Species + Petal.Width:Species
库(MASS)
拟合=lm(萼片长度~.^2,数据=iris)
步骤>逐步模型路径
>>偏差表分析
>> 
>>初始模型:
>>萼片长(萼片宽+花瓣长+花瓣宽+种)^2
>> 
>>最终型号:
>>萼片长~萼片宽+花瓣长+花瓣宽+种+
>>萼片。宽度:花瓣。宽度+花瓣。长度:种+花瓣。宽度:种

在每一步,它修剪出另一个功能,尽量减少对AIC的影响。模型选择有很多,很多事情需要考虑和调整,所以这不是一个禁止向导,只是想把它作为一个需要考虑的东西。对不起,当我复制粘贴时格式化并没有完成。非常有用。因此,如果我理解正确,PCA不会帮助我消除变量,它只会帮助我通过减少主成分来减少维度。对,在高层次上,PCA是对总体数据的总结,但你真正感兴趣的是变量与因变量的关系,PCA告诉你它们是如何相互联系的。解释大量方差的主成分可能不是解释你感兴趣的方差,也就是因变量的方差,它可能是解释这9个变量中你根本不关心的任意方差