微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

R中的主成分分析共线预测器和预测函数

如何解决R中的主成分分析共线预测器和预测函数

我有一个包含 3 个共线预测变量的数据集。 我最终提取了这些预测变量并使用主成分分析来减少多重共线性。 我想要的是使用这些预测变量进行进一步建模。

  1. 使用 predict 函数获取 3 个共线预测变量的值并将预测值用于进一步分析是否不正确?
  2. 或者因为前两个轴捕获了大部分方差(演示数据集中的 70% 和实际数据集中的 96%)我是否应该只使用前两个轴的值而不是 3 个预测值进行进一步分析?
#Creating sample dataset
df<- data.frame(ani_id = as.factor(1:10),var1 = rnorm(500),var2=rnorm(500),var3=rnorm(500))

### Principal Component Analysis
myPCA1 = prcomp(df[,-1],data = df,scale. = TRUE,center = TRUE)
summary(myPCA1)

这是我运行时演示数据集的结果

> summary(myPCA1)
Importance of components:
                          PC1    PC2    PC3
Standard deviation     1.0355 1.0030 0.9601
Proportion of Variance 0.3574 0.3353 0.3073
Cumulative Proportion  0.3574 0.6927 1.0000

这表明前两个轴捕获了近 70% 的方差。

现在做以下正确吗?

## Using predict function to predict the values of the 3 collinear predictors
axes1 <- predict(myPCA1,newdata = df)
head(axes1)

subset1 <- cbind(df,axes1)
names(subset1)

### Removing the actual 3 collinear predictors and getting a dataset with the ID and 3 predictors who are no long collinear
subset1<- subset1[,-c(2:4)]

summary(subset1)

## Merge this to the actual dataset to use for further analysis in linear mixed effect models

感谢您的帮助! :)

PS- 我确实读过 https://stats.stackexchange.com/questions/72839/how-to-use-r-prcomp-results-for-prediction/72847#72847

但还是不确定。这就是我在这里问的原因。

解决方法

使用预测函数并获取 3 个共线预测变量的值并将预测值用于进一步分析是否不正确?

是的。值与 myPCA1$x

相同

或者因为前两个轴捕获了大部分方差(演示数据集中的 70% 和实际数据集中的 96%)我是否应该只使用前两个轴的值而不是 3 个预测值进行进一步分析?

我个人只使用第一个轴(但那时它至少可以解释 70%)。但是我没有看到使用多个的任何问题。第二轴与第一轴正交。我想我的警告是,您必须了解 PCA 轴在您的预测变量方面代表什么(例如,预测变量 1 是沿着 PCA1 还是沿着 PCA2 增加或减少?)。包含第三个变量会增加模型中预测变量的数量,您必须质疑额外 30% 的变异与潜在的模型过度拟合相比,在哪些方面值得包含?

也不确定这是stackoverflow还是crossvalidated的问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。