我想创建一个混合模型来估计我的治疗(Cort和Pred)对个体行为的影响。由于我的数据是正确的审查(在给定时间内没有从他们的避难所出现的人获得最大分数,这里是1200),我打算使用MCMCglmm包与'cengaussian'家族。
我的原始数据结构如下所示:
ID Cort Pred repeat. RT_orig
1 1 NoCH PA 1 113
2 2 CH PA 1 NA
3 3 NoCH PA 1 65
4 4 CH PA 1 1200
5 5 CH PP 1 472
6 1 NoCH PA 2 790
7 2 CH PA 2 NA
8 3 NoCH PA 2 1
9 4 CH PA 2 15
10 5 CH PP 2 1200
11 1 NoCH PA 3 31
12 2 CH PA 3 548
13 3 NoCH PA 3 1200
14 4 CH PA 3 1200
15 5 CH PP 3 527
并且我第一次应用以下模型
model<-MCMCglmm(RT_orig~Cort*Pred+repeat.,
random=~ID+(0+repeat.|ID), data=xdata, family="cengaussian")
但是,我遇到了这条错误消息:
Error in matrix(unlist(value, recursive = FALSE, use.names = FALSE), nrow = nr, : 'data' must be of a vector type, was 'NULL'
在对该问题进行彻底研究后,我得出结论,我的响应变量应该有两列,比如生存模型。但我仍然无法理解正确的数据结构应该是什么样的。
如果我试图在新列中编写删失数据(可能不是正确的方法......)
ID Cort Pred repeat. RT_orig censored
1 1 NoCH PA 1 113 0
2 2 CH PA 1 NA NA
3 3 NoCH PA 1 65 0
4 4 CH PA 1 1200 1
5 5 CH PP 1 472 0
6 1 NoCH PA 2 790 0
7 2 CH PA 2 NA 0
8 3 NoCH PA 2 1 0
9 4 CH PA 2 15 0
10 5 CH PP 2 1200 1
11 1 NoCH PA 3 31 0
12 2 CH PA 3 548 0
13 3 NoCH PA 3 1200 1
14 4 CH PA 3 1200 1
15 5 CH PP 3 527 0
使用以下模型
MCMC.RT<-MCMCglmm(cbind(RT_orig, censored)~Cort*Pred+repeat.,
random=~ID+(0+repeat.|ID), data=xdata, family="cengaussian")
我明白了
**Error in MCMCglmm(cbind(RT_orig, censored) ~ Cort * Pred + repeat., :
for censored traits left censoring point must be less than right censoring point**
我很确定我非常接近解决方案,但我无法找到这个问题的任何答案。如果有人能就这个问题给我一个建议,那么我会非常非常有道理。
答案 0 :(得分:0)
Lantency数据确实是一个问题,我正在努力解决这个问题。
据我所知(我只是简单地看一下)你的数据输入有利于生存分析,但不适用于MCMCglmm。如上所述here,您需要设置最小值和最大值。
data$ymin <- floor (data$y)
data$ymax <- ceiling (data$y)
model <- MCMCglmm (cbind(ymin,ymax) ~Cort*Pred+repeat