我在运行混合效果模型时遇到困难。
所有配置单元的响应变量都有一个数据框。
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
答案 0 :(得分:9)
这里存在各种问题,一些与编程相关(StackOverflow),但可能统计问题(适用于CrossValidated或r-sig-mixed-models@r-project.org
)更为重要。
tl; dr 如果您只是想避免错误,我认为您需要random=~1|hive
(无论您的hive-indicator变量是什么)以适应基线响应(拦截)变化的模型穿过荨麻疹,但我鼓励你继续阅读...
attach(Hives)
,在data=Hives
电话中使用lme()
(不一定是问题,但[更多]更好的做法)formula=...~...+time, random=~time|hive
(...
代表的地方现有模型的各个部分)?strptime
或lubridate
包),从开始时间开始的秒/分钟/小时可能是最明智的。 (你的时间分辨率是多少?每个蜂巢有多个传感器,在这种情况下你应该考虑适应传感器的随机效应吗?)lme4
包mgcv::gamm
或gamm4
包的时间趋势; (2)时间自相关(考虑在correlation
模型中添加lme
参数)。