【问题标题】:Find the number of eigen values that contributes relatively to a given percentage of total variance找出相对于总方差的给定百分比贡献的特征值的数量
【发布时间】:2016-11-22 09:45:19
【问题描述】:

成为 λ 一个特征值,Λ 一组特征值,以及 Λ 的基数 p,我试图在 R 中创建一个循环,以便找到 n 所以

这是一个输入示例(L 分量总是在减少):

> L
[1] 4.903332 4.341607 3.920309 3.716966 3.554570 3.067658 2.891222 2.553127
> sumli
[1] 28.94879
> freq <- L/sumli
> freq
[1] 0.16937952 0.14997540 0.13542221 0.12839795 0.12278821 0.10596843 0.09987368 0.08819460

【问题讨论】:

    标签: r pca eigenvalue


    【解决方案1】:
    L <- c(4.903332, 4.341607, 3.920309, 3.716966, 3.55457, 3.067658, 
    2.891222, 2.553127)
    

    我想我们可以使用cumsum(累计)。

    取决于您是想要第一个n 使得累积贡献大于 95%,还是最后一个n 使得累积贡献小于 95%,您需要

    which(cumsum(L) / sum(L) > 0.95)
    # [1] 8
    
    which(cumsum(L) / sum(L) > 0.95) - 1
    # or: `sum(cumsum(L) / sum(L) <= 0.95)`
    # or: `max(which(cumsum(L) / sum(L) <= 0.95))`
    # [1] 7
    

    (您的示例L 不是很有代表性,因为特征值没有急剧衰减。)

    【讨论】:

    • 哇,我印象深刻!非常感谢 !对于第二行,您也可以使用 并删除 - 1
    • 你说得对,max(which(cumsum(L) / sum(L) &lt;= 0.95)) 是我会保留的。
    猜你喜欢
    • 2022-01-01
    • 2020-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-24
    相关资源
    最近更新 更多