Lme错误:"reStruct中的错误"

Eva*_*van 3 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"   
Run Code Online (Sandbox Code Playgroud)

时间为"%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
Run Code Online (Sandbox Code Playgroud)

以下是代码示例:

    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
Run Code Online (Sandbox Code Playgroud)

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

Ben*_*ker 9

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

tl; dr如果你只是想避免错误,我认为你需要random=~1|hive(无论你的hive-indicator变量是什么)来适应一个模型,其中基线响应(拦截)因蜂巢而异,但我鼓励你继续阅读...

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