R 可重复性模型(在 rptR 中),不确定公式。结果 = 多个模型的重复性为零,边界奇异拟合警告

R repeatability model (in rptR), unsure about formula. Outcome =Zero repeatability for several models, with boundary singular fit warning

我正在分析各种认知测试(以及这些测试的重复)之间的可重复性。我尝试使用 R 中的 rptR 包来确定鸟类的个体可重复性。但是,无论我的模型或我正在测试什么,它总是会导致警告并且 R = 0。我试图了解导致这种情况的原因。

我目前有一个数据框,其中包括:一个 ID(每个人重复两次)。每个 ID 重复都附有相关测试的分数。这些分数首先进行对数转换以获得正态性,然后计算这些分数的 Z 分数,这样我就可以在不同尺度上测量相同特征的测试之间进行比较。然而,无论我如何设置我的模型,我的数据总是导致 R=0 的可重复性。虽然这在技术上是可行的,但我发现它不太可能对所有参数都如此低(因为我在不同的测试之间进行了比较,同样的测试也测量了两次)。此外,我收到每个模型的警告 运行 声明:'Boundary (singular) fit: see ?isSingular'。从我收集到的信息来看,这意味着我的数据中的方差可能太小,尽管我对此并不完全确定。我担心这可能会导致我的 R = 0.

我的数据框片段如下所示: RNR_ID RoundNR TTC TTC_Z Test_date 2 1 1 28 0.0966013973 43423 114 1 2 14 -0.8138678026 43543 5 2 1 48 0.8045891472 43425 122 2 2 31 0.2302959586 43549

我的模型的两个变体示例: 未调整的 R:

Rep1_Assoc_A <- rpt(TTC_Z ~ RoundNR + (1|RNR_ID), grname = "RNR_ID", data = rpt_Assoc_A_df, datatype = "Gaussian", nboot = 10, npermut = 10)

调整后的 R(我在其中控制了测试日期,希望能够说明重复同一测试之间的个人学习情况):

Rep2_Assoc_A <- rpt(TTC_Z ~ RoundNR + Test_date + (1|RNR_ID), grname = "RNR_ID", data = rpt_Assoc_A_df, datatype = "Gaussian", nboot = 10, npermut = 10)

注:RNR_ID、RoundNR & TTC_Z为数值变量。 Test_date 以日期格式给出,但我不确定模型如何处理它。在此模型中,RoundNR 表示 "treatment"(因为这表示测试是第一次还是第二次对个人进行评分)。 TTC_Z 表示个人的 Z 分数。

和结果输出分别为:

Repeatability estimation using the lmm method 

Repeatability for RNR_ID
R  = 0
SE = 0.107
CI = [0, 0.283]
P  = 1 [LRT]
     1 [Permutation]

Repeatability estimation using the lmm method 

Repeatability for RNR_ID
R  = 0
SE = 0.12
CI = [0, 0.337]
P  = 1 [LRT]
     1 [Permutation]

如前所述,在 运行 运行此代码时,控制台向我抛出几条:boundary (singular) fit: see ?isSingular 消息。 我还尝试了一个假数据集,在其中我将所有重复值调整为几乎相同,这确实导致了高 R(大约 0.9..)。 虽然这似乎表明我的 R=0 可能实际上是正确的,但我仍然持怀疑态度,因为这不仅出乎意料,(正如我所期望的至少一个非常低但可测量的 R)。但由于我对模型缺乏理解,我担心其他地方也可能出错。

总而言之,我的问题是:

问题 1:我的模型当前的公式是否正确?变量的数据类型是否正确?

Q2:boundary (singular) fit: see ?isSingular在这种情况下是什么意思,我可以"fix"吗?

Q3:是什么导致我的R=0?我是在错误地分析我的数据还是我的 R 真的是 0?

虽然还不是一个完整的答案,但在与一些同事交谈后,我至少对我的问题有了部分答案。

Q1:是和不是,我设置公式的方式完全没问题。但是,我包括了一些(在我的情况下)不必要的因素。我最初添加 RoundNR 作为尝试和纠正学习的一个因素。然而,这没有任何意义,因为我只有两轮,因此我相信我所有的变化都会归因于这个因素。服用 Z-scores 就足够了。至于 test_date,如果这与我的测试本身没有严重混淆,那可能会很有趣。虽然更一般地说(对于其他人):模型的粗线很好。请注意要包含哪些固定效果。

Q2:我还不是很清楚它的意思,所以如果有人能提供更清楚的解释,那将不胜感激。然而,据我所知,这只是我的数据的结果,而不是我的模型的任何问题。

Q3:答案很明显:我自己的数据。一位同事 运行 通过另一种方法进行快速分析(产生不太准确但更快的可重复性评估)并且还发现 R=0(或至少非常接近它)。

不是一个完整的答案,但我希望它对以后的其他人有所帮助。