【问题标题】:Performing PCA in R with many NAs在具有许多 NA 的 R 中执行 PCA
【发布时间】:2020-04-30 15:37:03
【问题描述】:

我有一个包含 10 个变量和 12,000 个观测值的大型数据集,来自 3 种不同的系统(200 个来自小池塘,600 个来自河流,11200 个来自湖泊)。我的数据框中有很多 NA,但仍想执行 PCA 以查看系统的不同之处,仅使用我的数据框的最后 4 列(第一列描述站​​点,最后四列是化学数据) .

有什么办法可以解决这个问题吗?

【问题讨论】:

  • 嗨,这个问题的性质似乎更具统计性。我建议您将其发布在 Cross Validated 上,而不是在 Stack Overflow 上。

标签: r pca missing-data


【解决方案1】:

你可以用不同的方式解决缺失值的问题。 下面我将说明它们。

您应该使用包含 NA 值的变量的平均值,或者使用线性回归估算缺失值。

您应该使用missMDA,然后使用FactoMineR 或pcaMethods。 下面是一个例子。

library(missMDA)
nPCs <- estim_ncpPCA(VIM::sleep)

Output 
nPCS$ncp
    3

completed_sleep <- imputePCA(VIM::sleep, ncp = nPCs$ncp, scale = TRUE)
PCA(completed_sleep$completeObs)

另一个例子是:

library(pcaMethods)
sleep_pca_methods <- pca(sleep, nPcs=2, method="ppca", center = TRUE)
imp_air_pcamethods <- completeObs(sleep_pca_methods)

如果您想深入了解PCA 或factoMiner 软件包,您应该访问其网站http://factominer.free.fr/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-08
    • 1970-01-01
    • 2017-06-10
    相关资源
    最近更新 更多