r - 多个人和多层次的变化点分析
问题描述
我的总体目标:
我希望对多个人进行变化点分析,每个人都经过多次测试。然后我希望提取这些变化点(CP),以便我可以轻松地将它们链接到数据框中的各自分组。请注意,最初我只对每个分组的 1 个更改点感兴趣。
我的数据:
我有大量(大约 100 个)个人,每个人都在三个不同的场合进行了测试(我们称之为测试)。在每个测试期间,一个人必须进行大量的试验,直到达到一个标准,从而获得一个分数。但是,如果个人在测试期间成功,他们将在同一测试的后续轮次中再次接受测试。每个人的回合数从 1 到 10 不等。所以我的数据中有三个分组级别:个人-测试-该测试的轮次。
背景:
根据一篇论文,我现在希望获得每个级别的个人开始表现更好的变化点。在本文中,他们使用 Matlab 进行计算,计算累积成功次数与起源和成功之间的线性关系最大偏离的点(见图),他们将其称为假定的变化点。
使用dplyr,我设法做到了。然而,问题是他们随后以我无法轻易复制的方式继续验证每个 CP。
我很难在 R 中复制这一点,因此决定研究大量的变更点分析包来为我做这件事,因为我认为必须有一种更简单的方法。
我尝试了什么:
最初mcp包看起来最有前途,但运行一个简单的模型作为试验:
model = list(Cum_Cor ~ 1 + RowNR, # intercept + slope
1 + (1|RingNumber) ~ 0 + RowNR) # joined slope, varying by id
fit <- mcp(model, data = test)
对于Individuals == RingNumber, Cum_Cor == 计算变化点和RowNR == Trials的累积成功。但即使这是一个简化的模型,半个小时后,这个模型的进度仍然是 0%。诚然,即使是mcp的创建者也注意到与其他软件包相比它仍然很慢。然而我选择了 mcp,因为它是唯一一个我可以找到使用不同分组级别的文档的包。
我的问题:
我怎样才能最好地确定我的分组中的变化点?是否有替代软件包可以帮助我执行此分析?
解决方案
推荐阅读
- c# - C# Selenium:如何在 sendkeys() 中发送每个字符;
- python-3.x - 如何为 tkinter 复选框小部件创建全选按钮
- mysql - 同一模型的多个外键的问题
- c++ - 给定笛卡尔平面上的 N 条线。如何有效地找到最底部的线交点?
- java - 如何使recyclerview无限滚动(向下/向上)?
- git - git远程跟踪分支返回“请求的上游分支不存在”
- java - 将 URI 字符串解析为 JSON 对象
- python - 如何编写一个函数来使用动态规划找到最长的公共子序列?
- python - Pyglet 忽略 alpha 通道
- reactjs - 如何使用反应将字典数组转换为键数组