R中geepack的geeglm中的waves参数导致失败

时间:2015-01-31 23:51:38

标签: r mixed-models

我正在尝试计算R包“geepack”中的GEE模型。响应变量是成比例的,编码为(成功,失败)。解释变量是Weight(cont),Rank(cont),ColonySize(cont)和Sex(factor)。该数据集包含观察的时间非独立性,因为在413天的研究期间重复进行相同个体的行为测量。这种非独立性反映在指定AnimalID和观察日(Ndate)的列中。数据集不是很大,包含对165个不同个体的1062个观察结果。完整的研究期为413天(即Ndate范围:1-413)。

gee1<-geeglm(wl~WeightScaled+Rank+ColonySize+Sex,
data=allsub, family=binomial, id=AnimalID, 
corstr="ar1")

上述模型的计算没有困难,没有明显的延迟。但是,观察结果并未在研究期间定期分布(参见下面Ndate的完整向量),这意味着模型输出没有意义。当我在模型中包含wave参数以正确地考虑时间自相关时,R似乎卡住或需要很长时间来计算这个模型,这应该真的不需要花费太多时间。会发生什么事情是R-Gui显示“(没有响应)”超过1小时,小圆圈(Win7)表示R正忙。根据任务管理器的CPU使用率大多在25-30%之间,有时高达50%。所以我的问题是:在指定导致R挂起的“wave”函数时是否犯了错误,或者这个过程计算非常激烈是正常的吗? (参见下面变量Ndate的摘录)

包含wave参数的模型:

gee1<-geeglm(wl~Weight+Rank+ColonySize+Sex,
data=allsub, family=binomial, id=AnimalID, 
corstr="ar1", waves=Ndate)

关于这个GEE及其自相关结构,第二个问题更为基础:该模型是否能够处理这种时间自相关,其中一个人的重复观察通常为5-15,但两者之间的时间变化很大(有时只有几天,但有时长达100天或更长)。教科书的例子看起来都很不一样,但我认为原则应该是一样的。

非常感谢。

> allsub$Ndate
   [1] 169 169 169  43  43   5   5   5 267 267 267 267 162 162 162 162 162 256
  [19] 256 256 256 256 256 263 263 263 263 263 263 176 176 176 176 176 176 183
 [37] 183 183 183 183 183 190 190 190 190 190 190 190 196 196 196 196 196 196
 [55] 196 284 284 284 284 291 291 291 291 175 175 175 175 175 175 175 175 199
 [73] 199 199 199 199 199 199 186 186 186 186 186 186 189 189 189 189 189 189
 [91] 266 266 266 266 266 266 196 196 196 196 196 196 196 242 242 242 242 242
 [109] 242 207 207 207 207 207 210 210 210 210 210 245 245 245 245 245 245 302
 [127] 302 302 302 302 302 302 302 217 217 217 217 217 217 217 270 270 270 272
 [145] 272 272 291 291 291 220 220 220 220 220 220 220 238 238 238 238 238 238

 [757] 291 291 291 291 291 291 220 220 238 238 241 241 294 294 294 294 294 294
 [775] 303 303 303 263 263 263 263 263 263 263 263 263 263 316 316 309 304 304
 [793] 304 323 323  19  50  99  67  67  67  22  22  22  43  60 110 178 178 178
 [811]  33 115 115 115 115  96 116 116 116 116 116 116 116 116 116 116 116  26
 [829]  26 122 122 122 122 122 122 122 122 122  64  40  40  40  40  40  40  40
 [847]  40  40  58  58  58  58  58  58  58  58  58  58  71  71  75  85 127  78
 [865]  78  12  12  12  12  12  12  12  12  12  12  15 152 152 152 152 337 337
 [883] 337 337 337 337 344 344 344 344 344 344 344  82  82  82  82  82  82  82
 [901]  82  82 348 348 348 348 348 348 348 348 348 351 351 351 359 359 355 355
 [919] 355 354 354 345 345 345 358 358 358 358 362 362 362 331 331 349 349 361
 [937] 361 378 364 364 364 369 369 369 375 375 375 373 373 373 373 342 365 365
 [955] 365 365 365 365 365 365 379 379 379 379 379 379 379 379 379 379 379 379
 [973] 379 379 352 352 341 382 382 382 385 373 373 373 373 373 373 368 368 368
 [991] 389 389 389 389 285 285 285 308 308 309 309 321 322 326 329 329 329 329
 [1009] 330 330 330 330 385 385 385 385 385 385 385 380 380 380 380 380 380 380
 [1027] 386 386 386 386 390 390 390 390 365 365 393 393 393 393 393 393 393   393

[1045] 393 393 393 393 393 393 399 397 397 397 392 392 392 392 407 407 400 400 [1063] 413 413

1 个答案:

答案 0 :(得分:1)

我发现在包含wave参数时R崩溃的原因。 GEEglm不接受同一天对同一个人进行的两次观察。在思考模型的作用时,这是有道理的。希望这可以帮助别人。