Lme错误:" reStruct错误"

时间:2014-11-29 21:55:56

标签: r mixed-models

4个蜂箱配备了传感器,可收集蜂房内的温度,湿度,压力和分贝。这些是响应变量。

治疗是wifi暴露,实验组从第1天到第20天暴露于wifi,然后从第35-45天再次暴露,并且收集数据直到第54天。荨麻疹数= 4,n收集的数据通过每个蜂巢中的传感器=〜百万。

我在运行混合效果模型时遇到困难。

所有配置单元的响应变量都有一个数据框。

names(Hives)
[1] "time"           "dht22_t"        "dht11_t"        "dht22_h"       
[5] "dht11_h"        "db"             "pa"             "treatment_hive"
[9] "wifi"   

时间为“%Y-%m-%d%H:%M:%S”,dht11 / 22_t / h是温度和湿度数据。 “wifi”是对应于暴露时间的二分变量(1 =开0 =关),治疗蜂巢是暴露于wifi的荨麻疹的另一个二分变量(1 =暴露,0 =对照)。

这是我得到的错误。

attach(Hives)
model2 = lme(pa_t~wifi*treatment_hive, random=time, na.action=na.omit, method="REML",)

Error in reStruct(random, REML = REML, data = NULL) : 
Object must be a list or a formula

以下是代码示例:

    time    dht22_t dht11_t dht22_h dht11_h db  pa  treatment_hive  wifi
1   01/09/2014 15:19    NA      NA  NA      NA  51.75467    NA      0   1
2   01/09/2014 15:19    30.8    31  59.8    44  55.27682    100672  0   1
3   01/09/2014 15:19    30.8    31  60.3    44  54.81995    100675  0   1
4   01/09/2014 15:19    30.8    31  60.9    44  54.14134    100671  0   1
5   01/09/2014 15:19    30.8    31  61.1    44  53.88574    100672  0   1
6   01/09/2014 15:19    30.8    31  61.2    44  53.68800    100680  0   1

R版本2.15.1(2012-06-22) 平台:i486-pc-linux-gnu(32位)
附件包: [1] ggplot2_0.8.9 proto_0.3-9.2 reshape_0.8.4 plyr_1.7.1 nlme_3.1-104
[6] lme4_0.999999-0 Matrix_1.0-6 lattice_0.20-6

1 个答案:

答案 0 :(得分:9)

这里存在各种问题,一些与编程相关(StackOverflow),但可能统计问题(适用于CrossValidatedr-sig-mixed-models@r-project.org)更为重要。

tl; dr 如果您只是想避免错误,我认为您需要random=~1|hive(无论您的hive-indicator变量是什么)以适应基线响应(拦截)变化的模型穿过荨麻疹,但我鼓励你继续阅读...

  • 我们可以有一个(小!)reproducible example
  • 不要使用attach(Hives),在data=Hives电话中使用lme()(不一定是问题,但[更多]更好的做法)
  • 只有4个荨麻疹,荨麻疹的随机效果规范是否有效是有问题的(尽管有100万个观察结果可能会让你失控)
  • 随机效应必须由分类(因子)分组变量组成;在你的情况下,我认为“蜂巢”是分组变量,但我无法从你的问题中找出哪个变量识别荨麻疹
  • 你几乎肯定会有一个模型来说明时间趋势和荨麻疹时间趋势的变化,即随机斜率模型,它将表示为formula=...~...+time, random=~time|hive...代表的地方现有模型的各个部分)
  • 你必须将时间转换为在模型中使用它的合理时间(请参阅?strptimelubridate包),从开始时间开始的秒/分钟/小时可能是最明智的。 (你的时间分辨率是多少?每个蜂巢有多个传感器,在这种情况下你应该考虑适应传感器的随机效应吗?)
  • 您的模型适合的数百万个数据点可能非常慢;您可能需要考虑lme4
  • 拥有数百万个数据点,一切都将具有统计意义,并且对模型中未出现在数据中的方面非常敏感,例如(1)非线性时间趋势(例如,考虑拟合的附加模型) mgcv::gammgamm4包的时间趋势; (2)时间自相关(考虑在correlation模型中添加lme参数)。