问题标签 [hclust]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1206 浏览

r - 在 R 中使用 hclust 进行加权观察频率聚类

我有一个包含 500K 观察值的大型矩阵,可以使用层次聚类进行聚类。由于体积大,我没有计算距离矩阵的计算能力。

为了克服这个问题,我选择聚合我的矩阵来合并那些相同的观察值,从而将我的矩阵减少到大约 10K 观察值。我有这个聚合矩阵中每一行的频率。我现在需要将此频率作为权重合并到我的层次聚类中。

数据是 500K 观测值的数值和分类变量的混合体,因此我使用 daisy 包来计算聚合数据集的 gower 差异。我想在聚合数据集的 stats 包中使用 hclust 但是我想考虑每个观察的频率。从 hclust 的帮助信息中,参数如下:

members 参数的信息是:、NULL 或长度为 d 的向量。请参阅“详细信息”部分。当您查看详细信息部分时,您会得到: If members != NULL, thend被认为是集群之间的相异矩阵,而不是单例和成员之间的相异矩阵,给出了每个集群的观察次数。这样,层次聚类算法可以“在树状图的中间开始”,例如,为了重建切割上方的树部分(参见示例)。仅对于有限数量的距离/链接组合,可以有效地计算集群之间的差异(即,没有 hclust 本身),最简单的一种是平方欧几里得距离和质心链接。在这种情况下,聚类之间的差异是聚类均值之间的平方欧几里得距离。

从上面的描述中,我不确定我是否可以将我的频率权重分配给成员参数,因为不清楚这是否是这个参数的目的。我想这样使用它:

哪里df$freq是聚合矩阵中每一行的频率。因此,如果一行重复 10 次,则该值将是 10。

如果有人可以帮助我,那就太好了,

谢谢

0 投票
1 回答
1536 浏览

r - hclust 和 ggplot r

我有一个文件,其值如下所示

我想要实现的是使用 hclust 和 dist 方法来查看数据的趋势,我试图基本上做一些问题中显示的事情,来自 Sandipan dey的 SO ps 回答

我无法理解,因为问题中没有显示数据,我想绘制的是

  1. x: xaxis 我的样本名称 (s1,s2,s3,s4,s5)

  2. y 轴 zscore 和

  3. 代表每个基因名的每一行

  4. 每个集群的 facet_wrap,我可以在其中看到哪个集群可以提供良好的清晰聚类或样本分离

编辑

根据回答 在此处输入图像描述

我的代码版本

当我尝试这个

在具有 16gb ram R studio 的 Mac 上冻结

0 投票
1 回答
1025 浏览

r - 仅将 hclust 绘制到切割簇,而不是每个叶子

我有一个包含近 2000 个样本的 hclust 树。我已将其切割成适当数量的簇,并希望绘制树状图,但以切割簇的高度结束,而不是一直到每一片叶子。每个绘图指南都是关于通过集群或绘制一个框来为所有叶子着色,但似乎没有什么能让切割线下方的叶子完全消失。

我的完整树状图如下所示:

完整的树状图

我想绘制它,就好像它在我在这里绘制 abline 的地方停止(例如):

在此处输入图像描述

0 投票
1 回答
271 浏览

r - 带有可爱分组的 ANOSIM

我想做的是在一些组合数据中定义分组的 ANOSIM,以查看分组是否彼此显着不同,以与此示例代码类似的方式:

然而,在我自己的数据中,我在 bray-curtis 矩阵中拥有物种丰度,并且在创建 hclust() 图表并通过查看树状图并设置高度来直观地创建自己的分组之后。然后我可以通过 cutree() 获得这些可以叠加在 MDS 图等上的分组,但我想检查我创建的分组之间相似性的重要性 - 即分组是显着不同还是只是任意分组?

例如

然后我想使用 c1 定义的类别作为分组,在给出的示例代码中是管理因素,并通过 anosim() 测试它们的相似性以查看它们是否真的不同。

我很确定这只是我无能的编码问题....任何建议将不胜感激。

0 投票
1 回答
335 浏览

r - 基于标签重新排序和颜色树状图

我正在尝试控制树状图的顺序和颜色。显然,树状图的重点是按相似性排序,但在分支中,我想设置一个有意义的顺序(字母数字)。

在此处输入图像描述

我的数据标签是文本,但它们确实在变量中列出了固定顺序

1)我想找到一个根据site_order分支内对树状图进行排序的解决方案。

例如 A1,B1,A2,C1,C2,D2,A3,B2,B3,C3

我还想使用site_type 例如(A=红色圆圈,B=蓝色正方形,C=绿色三角形,D=黄色十字) 对标签进行着色和形状

这可能吗?

0 投票
1 回答
1553 浏览

r - 'tree' 的 'height' 组件未排序 cutree 中的错误

我正在尝试进行一些分组并遇到此错误。

Evaluation error: the 'height' component of 'tree' is not sorted (increasingly).

我的输入是:

但是当我尝试剪切它时,它给了我一个错误:

但是如果我使用

一切正常。

我一直在寻找解决方案,但找不到。我应该怎么做,以防止这种情况发生并保持工作?

我还注意到,如果我有相同的距离矩阵,但是是手动生成的(所以集群中没有距离参数。

0 投票
1 回答
1088 浏览

r - 如何基于 SIMPROF 绘制带有彩色/符号点的 nmd

嗨,所以我正在尝试绘制我的集合数据的 nmds,该集合数据位于 R 中的 bray-curtis 相异矩阵中。我已经能够应用 ordielipse()、ordihull(),甚至可以根据 cutree 创建的组因子更改颜色() 的 hclst()

例如,使用 vegan 包中的沙丘数据

甚至只是通过cutree为点着色

然而,我真正想做的是使用 SIMPROF 函数,使用包“clustsig”,然后根据重要的分组为点着色——这更像是一种技术编码语言——我相信有一种方法可以创建一个字符串因素,但我相信有更有效的方法来做到这一点

到目前为止,这是我的代码:

现在我只是不确定下一步如何使用 SIMPROF 定义的分组来绘制 nmds - 我如何使 SIMPROF 结果成为一个因子字符串,而无需自己亲自输入它?

提前致谢。

0 投票
1 回答
378 浏览

r - 使用base R在树状图中为分支着色的函数

我想R function根据给定的树状图对象、指定的簇数和颜色向量为树状图中的分支着色。我想使用base R而不是dendextend.

使用此答案中的确切代码:https ://stackoverflow.com/a/18036096/7064628到类似问题:

在上面的代码中,您必须手动选择分支来重新着色它们。我想要一个函数来找到k最高的分支并为它们(以及它们的所有子分支)改变颜色。到目前为止,我尝试迭代地搜索最高的子分支,但这似乎是不必要的困难。如果有一种方法可以提取所有分支的高度,找到k最高点,然后更改edgePar每个分支的高度,那就太棒了。

0 投票
1 回答
227 浏览

r - cutree 和 cluster 分支之间的分歧

我有一个数据集,其中包含一些属于 4 种不同基因型的小鼠的每日饮水量。我正在尝试编写一个脚本,以便使用层次聚类分析根据它们的摄水模式对这些动物进行分类,然后创建一个纵向图,绘制每个聚类在几天内的平均摄水量。

为此,我首先创建分层集群集群,如下所示:

然后我使用 cutree 函数来评估哪个动物属于哪个组,以绘制每组的平均饮水量。

问题是我从分层集群获得的数字与 cutree 函数分配的数字之间存在不一致。虽然集群正在从 1 到 4 对分支进行自下而上的排序,但 cutree 函数正在使用我不熟悉的其他一些排序参数。因此,聚类图中的标签和摄入图表中的标签不匹配。

我是编码的初学者,所以可以肯定我使用了太多的冗余行和循环,所以我的代码可以缩短,但如果你们能帮助我解决这个具体问题,我会很高兴。

数据集

簇:簇

进气图进气图

0 投票
3 回答
5296 浏览

r - R基于cutree标签从树状图中获取子树

我已经对一个大型数据集进行了聚类,并发现了 6 个我有兴趣进行更深入分析的聚类。

我找到了使用带有“ward.D”方法的 hclust 的集群,我想知道是否有办法从 hclust/dendrogram 对象中获取“子树”。

例如

我曾经cutree获取数据集中每一行的标签。

我知道我可以通过以下方式获取每个相应集群(例如集群 1)的数据:

是否有任何简单的方法来获取由返回的每个相应标签的子树dendextend::cutree?例如,假设我有兴趣获得

我知道我可以访问树状图的分​​支,执行类似的操作

但是我怎样才能得到与集群 1 相对应的子树呢?

我努力了

但这当然行不通。那么如何根据 cutree 返回的标签获取子树呢?