0

我有一个具有 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

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

4

1 回答 1

1

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

是的。这些值与myPCA1$x

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

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

也不确定这是否是 stackoverflow 或交叉验证的问题。

于 2021-05-03T20:48:32.967 回答