在lme固定效果公式中指定分组因子

时间:2012-04-12 11:53:00

标签: r formula

我的数据集包括对70个人的治疗开始和结束时的数字评分(“参与”)的两个观察结果。个人之间的时间并不是一成不变的,但对这些时间进行目视检查显示,大部分人在这段时间内都会上升

sfa <- read.csv("SFAFinalData.csv", header = TRUE)
groupingFormula <- as.formula(paste(columnName,"~ TIME|ID")) 
dataSubset <- na.omit(sfa[,seq(1:6)])
inputData <- groupedData(groupingFormula, data=dataSubset, labels = list("Weeks post injury", columnName))
m1 <- lme(inputData)

按预期工作

> m1
Linear mixed-effects model fit by REML
Data: inputData 
Log-restricted-likelihood: -631.7963
Fixed: Participation ~ TIME 
(Intercept)        TIME 
18.7616485   0.4220891 

Random effects:
Formula: ~TIME | ID
Structure: General positive-definite
        StdDev     Corr  
(Intercept) 15.4985010 (Intr)
TIME         0.2192035 1     
Residual    13.2272350       

Number of Observations: 140
Number of Groups: 70 

我现在试图将分析(即参与作为时间的函数)与三个子组中的每一个进行比较(“类型”:三个级别的因子分别为10,29和31个人)但是

m2 <- update(m1, fixed = .~.*TYPE)

导致错误

Warning message:
In lme.formula(fixed = Participation ~ TYPE, data = inputData) :
Fewer observations than random effects in all level 1 groups

苦苦挣扎,看看我在这里做错了什么:据我所知,我有足够的观察结果?

1 个答案:

答案 0 :(得分:2)

尽量不要使用groupedData。我知道,书中的例子经常使用它,但我发现它是lme中最令人困惑的部分。并避免。在公式中,它可能非常贪婪可能导致错误消息的类型。

经过大量的猜测(请至少发帖str(sfa)),我认为你需要这样的东西:

sfa <- read.csv("SFAFinalData.csv", header = TRUE)
# No grouped Data!
lme(Participation~TIME*TYPE,random=~1|ID,data=sfa)