У меня есть набор данных, который имеет 3 коллинеарных предиктора. В конце концов я извлекаю эти предикторы и использую анализ основных компонентов, чтобы уменьшить мультиколлинеарность. Я хочу использовать эти предикторы для дальнейшего моделирования.
- Неправильно ли использовать функцию
predict
и получать значения для 3 коллинеарных предикторов и использовать предсказанные значения для дальнейшего анализа? - Или, поскольку первые две оси охватывают большую часть дисперсии (70% в демонстрационном наборе данных и 96% в фактическом наборе данных), следует ли использовать для дальнейшего анализа только значения из первых двух осей вместо трех прогнозируемых значений?
#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
Но все равно был неуверен. Вот почему я спрашиваю здесь.