4 个 hive 配备了传感器,用于收集 hive 内的温度、湿度、压力和分贝。这些是响应变量。
治疗是wifi暴露,实验组从第1天到第20天,然后从第35-45天再次暴露在wifi下,直到第54天收集数据。n个荨麻疹= 4,收集的数据n个每个 hive 中的传感器 = ~ 百万。
我在运行混合效果模型时遇到了困难。
所有 hive 的响应变量都有一个数据框。
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=on 0=off),治疗 hive 是暴露于wifi的 hive 的另一个二分变量(1=exposure,0=control)。
这是我得到的错误。
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
最佳答案
这里有各种各样的问题,一些与编程有关(StackOverflow)但可能是统计问题(适用于 CrossValidated 或 r-sig-mixed-models@r-project.org
) 更重要。
tl;dr 如果您只是想避免错误,我认为您需要 random=~1|hive
(无论您的 hive-indicator 变量是什么)来适应基线响应(拦截)因荨麻疹而异的模型,但我鼓励您继续阅读...
- 我们可以有一个(小!)reproducible example ?
- 不要使用
attach(Hives)
,在lme()
调用中使用data=Hives
(不一定是问题,但[更多] 更好的做法) - 只有 4 个 hive ,一个跨 hive 的随机效应规范是否会起作用有点值得怀疑(尽管有一百万个观察结果你可能会侥幸逃脱)
- 随机效应必须由一个分类(因子)分组变量组成;在您的情况下,我认为“ hive ”是分组变量,但我无法从您的问题中分辨出哪个变量标识了 hive
- 几乎可以肯定,您应该有一个模型来说明时间趋势和跨 hive 的时间趋势变化,即随机斜率模型,它可以表示为
formula=...~...+time , random=~time|hive
(其中...
代表现有模型的位) - 您必须将时间转换为合理的值才能在模型中使用(参见
?strptime
或lubridate
包),例如秒/分钟/小时从开始时间可能是最明智的。 (你的时间分辨率是多少?每个 hive 有多个传感器,在这种情况下,你应该考虑拟合传感器的随机效应吗?) - 拥有数百万个数据点,您的模型拟合可能会非常缓慢;您可能需要考虑
lme4
包 - 拥有数百万个数据点,一切都将具有统计意义,并且对模型中未出现在数据中的方面非常敏感,例如 (1) 非线性时间趋势(例如,考虑拟合
mgcv::gamm
或gamm4
包的时间趋势); (2) 时间自相关(考虑在您的lme
模型中添加correlation
参数)。
关于r - LME 错误 : "Error in reStruct",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27207594/