gpt4 book ai didi

r - pvclust 中的 p 值 & 结果 hclust

转载 作者:行者123 更新时间:2023-12-04 10:52:41 25 4
gpt4 key购买 nike

我正在运行一些聚类分析,我试图弄清楚两个主要的事情:

1)如何最好地解释 pvclust 中 p 值的结果(他们正在建立的空值是什么?)

2)如何将这些结果翻译成hclust

我将使用 mtcars以数据集为例...

在使用 pvclust函数优先(使用欧氏距离和完全链接):

d.pv <- pvclust(t(mtcars), method = "euclidean", 
method.hclust = "complete", nboot = 10)

然后我生成我的树状图,至于将红色框放置在重要​​集群周围(alpha = 0.95)
plot(d.pv)
pvrect(d.pv, alpha = 0.95)

我得到这个数字:

enter image description here

我还可以调用重要的观察结果:
pvpick(team.clus.pv, alpha = 0.95)

但这些发现有什么意义呢?我们在树状图中看到两个集群,那么这两个集群不同的重要发现 (p = 0.02) 是什么?有那么简单吗?

由于聚类分析是一种描述性/探索性技术,如果我使用 hclust 构建它会怎样? package 并指定我觉得有 3 个感兴趣的集群?
d <- dist(mtcars, method = "euclidean")
hc <- hclust(d, method = "complete")
plot(hc)
rect.hclust(hc, k = 3, border = "red")

现在我的树状图如下所示:

enter image description here

因为我对3个集群感兴趣,有没有办法得到 pvclust对这 3 个集群进行比较?或者也许这不是什么 pvclust比较?这里的零假设是什么?

如果我查看由 pvclust 生成的树状图,似乎在右侧的红色框中,我有兴趣指定的另外两个集群(使用 hclust )也具有显着的 p 值。我将如何报告或解释它?

最佳答案

也许这更像是 Cross Validated 的问题而不是 Stack Overflow 的问题?

我不确定您使用的方式 pvclust这里 - 在转置数据集上 - 被改编。
当您了解 pvclust 的工作原理以及如何解释输出时,这一点会更加清晰。
请持保留态度,因为我不是这种方法的专家。

注意:mtcars数据集在行上有不同的汽车模型,在列上有不同的汽车特征。您可以根据行(汽车模型)的特征对其进行聚类。
pvclust输出
pvclust提供在树状图的每个节点上显示的 2 种类型的结果作为红色和绿色数字(灰色数字只是节点编号)或通过 print方法 :

  • 绿色号码是 Bootstrap Probability * 100 (BP) 并有最直白的解释
  • 红色数字是 Approximately Unbiased p-value * 100 (AU) 并且是 BP 的修正版本以限制偏差

  • 自举概率 (BP)

    BP 的解释非常简单。在您的示例中 pvclust将引导数据集的列——这里是汽车的特征——(即一些列将被删除,而其他列将出现不止一次),然后重新计算行之间的欧几里德距离并计算树状图。它会重复这个 nboot * length(r)次(默认为 length(r) = 10),每次运行时,它将检查每个集群是否来自引导数据集的集群中存在相同的一组汽车。

    在您的示例中,左侧的第一个集群的 BP = 0.31 意味着这 9 款车型(玛莎拉蒂 Bora、克莱斯勒帝国、...、庞蒂亚 Firebird)在 100 个 bootstrap 中的 31 个中最终位于同一集群中。
    这意味着如果你使用另一个随机的汽车特征样本(但这有意义吗??)这个集群只会出现在 31% 的情况下。注意:集群内部的拓扑结构可能因 bootstrap 而异。检查的唯一标准是这些汽车是否在同一个集群中,或者无论它们在集群内的关系如何。

    至于你的第二个问题,每个节点都有这个 BP 编号,因此你可以以相同的方式解释任何集群。例如,您显示的 middel 集群 hclust (有 7 辆车:Homet 4 drive,...,AMC Javelin)有一个 BP = 0.39,这可以解释为上面的解释。

    你能用吗 pvclust测试对观察(行)的聚类?

    如果您可以对新数据集进行重新采样,则 bootstrap 通常用于估计统计量的可变性。
    在您的示例中,如果您可以重新采样一个新数据集,您可能会拥有相同的汽车特征
    但一组不同的汽车模型。汽车模型是此处的样本/观察结果,对观察结果重新采样比对特征/变量进行重新采样更有意义。 pvclust旨在用于测试聚类
    变量(列)而不是观察值(行)。这可能是它在列上执行聚类的原因
    hclust对行执行聚类。
    pvclust使用的方法将它们起源于系统发育分析,在这种分析中,您尝试根据 DNA 或其他特征将来自不同物种的个体聚类。
    然而,系统发育或基因组的情况有点特殊。在这种情况下,观察/样本
    是个体(DNA 的来源),变量/特征/描述符是例如基因或其表达水平。在这种情况下,基于基因对个体进行聚类并通过引导基因测试聚类的稳定性是有意义的,因为基因是多方面的,并且在基因库中随机重新采样是合理的。

    在生态学中,您通常在站点(=观察)x 物种(= 变量)矩阵上工作。并且通常根据站点的特定组成对站点进行聚类分析。在这种情况下,引导物种来测试站点集群的稳定性是没有意义的,因为应该使用整个社区来表征站点,而您不能只是随机丢弃一些物种......但执行聚类分析是有意义的如果我们可以重新采样一组新的站点,则可以测试物种关联的稳定性。

    近似无偏 p 值"(AU)

    AU 应以与 BP 类似的方式解释,但被视为无偏见版本。
    然而,它背后的理论更具技术性,超出了我的能力范围......
    因此,先验地您应该使用这个值而不是 BP 来解释集群,但我认为当像您的示例中那样对变量进行重采样时,您应该更加谨慎,因为偏差校正可能尚未开发那个上下文(这只是一个猜测,我不知道这到底有多大风险)。

    BP 通常表示为向下偏倚的统计量。例如 Paradis (2011) 解释说,如果 BP 高,则数据支持集群。但如果它很低,可能是因为该集群不受数据支持或存在偏差。但是 Efron 等人 (1996) 认为这是对 bootstrap 方法实际测试内容的误解,并且 BP 没有系统地向下偏置。他们提出了一种替代方法来计算这个 p 值,“以更好地符合置信水平和假设检验的标准思想”,并使用“两级引导算法”。 Suzuki 和 Shimodaira 使用 pvclust 中使用的“多步多尺度引导算法”扩展了这种方法。计算AU。

    在此算法的第一步中,您多次重复引导,但样本大小不同。在您的示例中,有 11 列,因此经典 bootstrap 将重新采样并替换这些列 11 次并重复此 nboot 次(默认值 = 1000,您选择了 nboot = 10)。使用“多步多尺度引导算法”重复此过程 1000 * 10次(默认情况下),但样本大小为 5、6、7、8、9、11、12、13、14 和 15。这由 r 控制函数的参数提供原始样本大小(此处 = 11)和引导样本大小(此处默认为 5 到 15)的比率。当您运行 pvclust 时,它会显示在控制台上: Bootstrap (r = 0.45)... Done. (即第一组样本大小 = 0.45*11 = 5 的 bootstrap )。

    引用

    Efron B. 等。 (1996) 系统发育树的 Bootstrap 置信水平,Proc。国家科学院。科学。 93 : 13429-13434

    Paradis, E. (2011) 用 R 分析系统发育和进化,第 1 版。斯普林格。

    Shimodaira H. (2004) 使用多步多尺度自举重采样对区域进行近似无偏检验,Ann。统计。 32 : 2616-2641

    Suzuki, R., Shimodaira, H., (2006) Pvclust:用于评估层次聚类不确定性的 R 包。生物信息学 22 : 1540–1542

    关于r - pvclust 中的 p 值 & 结果 hclust,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43576210/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com