【问题标题】:Plotting R2 of each/certain PCA component per wavelength with R用 R 绘制每个波长的每个/某些 PCA 分量的 R2
【发布时间】:2019-08-28 18:07:19
【问题描述】:

我在使用 PCA 方面有一些经验,但这是我第一次尝试将 PCA 用于光谱数据...

我有一个带有光谱的大型数据,我使用 prcomp 命令计算整个数据集的 PCA。我的结果表明,3 个分量解释了 99% 的方差。

我想绘制每个波长(以 4、200-1000 nm 为步长)的三个 PCA 组件中的每一个的贡献,就像我在此站点上找到的图 2 的示例: https://learnche.org/pid/latent-variable-modelling/principal-component-analysis/pca-example-analysis-of-spectral-data

有人有我如何在 R 中做到这一点的代码吗?

谢谢

【问题讨论】:

    标签: r plot pca spectra


    【解决方案1】:

    我相信在model.pca$rotation 中可以找到可变载荷矩阵,请参阅prcomp documentation。 所以应该这样做(使用链接网站上的示例):

    file <- 'http://openmv.net/file/tablet-spectra.csv'
    spectra <- read.csv(file, header = FALSE)
    n.comp <- 4
    
    model.pca <- prcomp(spectra[,2:651],
                        center = TRUE,
                        scale =TRUE,
                        rank. = n.comp)
    summary(model.pca)
    
    
    par(mfrow=c(n.comp,1))
    sapply(1:n.comp, function(comp){
      plot(2:651, model.pca$rotation[,comp], type='l', lwd=2,
           main=paste("Comp.", comp), xlab="Wavelength INDEX")
    
    })
    

    我没有波长值,所以我在这里使用了数组的索引;输出如下。

    【讨论】:

      猜你喜欢
      • 2019-12-11
      • 2021-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-16
      相关资源
      最近更新 更多