R Lme错误:";“重构中的错误”;
4个蜂箱装有传感器,可收集蜂箱内的温度、湿度、压力和分贝。这些是响应变量R Lme错误:";“重构中的错误”;,r,mixed-models,R,Mixed Models,4个蜂箱装有传感器,可收集蜂箱内的温度、湿度、压力和分贝。这些是响应变量 names(Hives) [1] "time" "dht22_t" "dht11_t" "dht22_h" [5] "dht11_h" "db" "pa" "treatment_hive" [9] "wifi" 治疗为wifi暴露,实验组从第1天到第20天暴露于wifi,然后从第35天到第45
names(Hives)
[1] "time" "dht22_t" "dht11_t" "dht22_h"
[5] "dht11_h" "db" "pa" "treatment_hive"
[9] "wifi"
治疗为wifi暴露,实验组从第1天到第20天暴露于wifi,然后从第35天到第45天再次暴露于wifi,收集数据直到第54天。n个蜂巢=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\u 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\u 0.8.9原型\u 0.3-9.2重塑\u 0.8.4 plyr\u 1.7.1 nlme\u 3.1-104
[6] lme4_0.999999-0 Matrix_1.0-6 lattice_0.20-6这里有很多问题,有些问题与编程(堆栈溢出)有关,但可能是统计问题(适用于或
r-sig-mixed-models@r-org
)更重要
tl;dr如果您只是想避免错误,我认为您需要random=~1 | hive
(无论您的hive指示符变量是什么)来适应基线响应(截距)随hive而变化的模型,但我鼓励您继续阅读
- 我们能要一个(小的!)吗
- 不要使用
,在attach(Hives)
调用中使用lme()
(不一定是问题,但[更好的]实践)data=Hives
- 由于只有4个蜂箱,跨蜂箱的随机效果规范是否有效有点值得怀疑(尽管有一百万次观察,你可能会侥幸成功)
- 随机效应必须由分类(因子)分组变量组成;在您的例子中,我认为“hive”是分组变量,但我无法从您的问题中分辨出哪个变量标识hive
- 几乎可以肯定的是,您应该有一个模型来解释蜂巢中的时间趋势和时间趋势的变化,即随机斜率模型,它可以表示为
(其中公式=…~…+时间,随机=~time |蜂巢
表示现有模型的位)…
- 您必须将时间转换为合理的时间,以便在您的模型中使用它(请参见
或?strtime
包),从开始时间算起的秒/分钟/小时可能是最合理的。(你的时间分辨率是多少?每个蜂箱有多个传感器,在这种情况下,你也应该考虑传感器的随机效应)?<lubridate
- 由于有数百万个数据点,您的模型拟合可能非常缓慢;您可能想考虑<代码> LME4<代码>包
- 有数百万个数据点,所有事物都将具有统计上的显著性,并且对模型中不出现数据的方面非常敏感,例如(1)时间的非线性趋势(例如,考虑时间趋势与<代码> MGCV的拟合加性模型::GAMM < /代码>或<代码> GAM4< /代码>包);(2) 时间自相关(考虑在
模型中添加lme
参数)correlation
lme
中运行,只需一小部分数据),我强烈建议你接受这个答案,并将你的问题的一个版本发布在网站上。