traminer - TraMineR 是否适合具有不同序列长度的数据?
问题描述
我的数据有学习期间每个学生的页面访问行为的顺序。例如(下)学生 1 阅读说明,访问了三个页面(“访问-访问-访问”),并重新访问了其中一页(“重访”)。学生 2 阅读说明并访问了两页,没有重新访问。
学生1:说明-访问-访问-访问-重访
学生2:指导-参观-参观
学生 3:说明-访问-访问-访问-访问-访问-访问-访问-访问-访问-访问-访问
我的问题是 TraMineR 包适用于这种类型的数据,其中不同的个体具有不同的序列长度(学生 1 有 5,学生 2 有 3,等等)。TraMineR 小插图 ( https://cran.r-project.org/web/packages/TraMineR/vignettes/TraMineR-state-sequence.pdf ) 中讨论的示例数据“mvad”具有在特定时间段内捕获的状态信息 ( Jul.93 到 Jun.99),这意味着所有个体的序列长度数相同。鉴于这种差异,我不确定是否可以使用 TraMineR 来分析我的日期。
我在我的数据上尝试了几个 TraMineR 函数(seqdef、seqfplot 等)。到目前为止,这些结果对我来说是有意义的,但我想在进一步做更多事情(聚类分析等)之前先确定一下。如果有人有使用 TraMineR 处理此类数据的经验,我将不胜感激。如果 TraMineR 不适合这个,有什么替代方法的建议吗?我的目标是识别和可视化数据中的主要行为模式,可能使用聚类分析。提前致谢!
解决方案
是的,您可以使用 traMineR 分析具有不同序列长度的数据,因为 traMineR 是序列分析工具的集合。
当你有不等长的序列时,重要的是你使用的是什么距离算法。我认为是默认值和常用标准的最佳匹配 (OM) 接受长度不等的序列,因为它使用 indel(插入/删除)操作来“使”序列具有相同的长度。然而,其他类型的距离算法,例如汉明距离(HAM 或 DHD)不允许长度不等的序列。当时序很重要时,通常会使用这些算法,并且通过插入状态使序列长度相等,时序方面会出现偏差。
所以简短的回答是肯定的,但请务必阅读您使用的距离算法类型,以便了解您正在测量的是什么,以及它将以何种方式影响您的解释。
推荐阅读
- arrays - ARRAYFORMULA、QUERY 和 IMPORTRANGE 仅显示单行的结果
- string - Matlab:用单词列表查找字符串模式并用列表中的一个单词替换文本
- python - 如何让两个模块相互运行?
- python - python 如何处理这些 JSON 字符串是怎么回事?
- java - 我如何解决 MySQL 中的“max_user_connections”问题?
- r - 如何使用 r 中的 sf 和 tmap 包绘制多个状态
- reactjs - React 还是 NPM 问题?
- raku - 从 C 代码调用 Raku 代码的协议是什么?
- javascript - 无法向 Discord 服务器的所有成员发送 DM
- windows-10 - 使用 MVVM 开发 C++ WinUI3 桌面应用程序