Samaritan <d.harliwich <at> gmail.com> writes: > [snip] You might want to ask follow-up questions on the R-sig-mixed-models list
> At the most basic level, I'm testing the effect of sleep deprivation on > various behaviours (e.g. amount of time spent awake, amount of time spend > expressing difference textures, patterns, colours etc). I take a video > sample of each octopus every hour for 72 hours and score their behaviour in > Jwatcher. > > I'm using GLMM so that I can nest Individual as a random factor within Time, > which I'm told will reduce the problem of making repeated measures (is this > effectively blocking by time and by octopus?). Currently my model looks like > this: > > octopus.lmer<-lmer(awake~as.factor(Treatment)+Sex+Weight+(1|Time/Octopus)) You say you want to use GLMM -- presumably awake is a binary variable that you want to treat as such? If so, you need the argument 'family=binomial' in your model. (You might want to use the 'glmer' function instead, for clarity, although in practice R takes care of this for you.) > > where "Treatment" is "0" or "1" representing sleep-deprived or > sleep-allowed. As a general practice you should probably code your data as "deprived"/"allowed" rather than 0/1: you won't have to use as.factor and you will automatically be able to keep track of the coding. When I try to fit the model I get the following error > messages: > > Error: length(f1) == length(f2) is not TRUE > In addition: Warning messages: > 1: In Octopus:Time : > numerical expression has 190 elements: only the first used > 2: In Octopus:Time : > numerical expression has 190 elements: only the first used > > This is the point at which I become lost. What does this mean? Clearly I'm > not doing something right, perhaps in my data preparation? So far as I can > see the length of each of the variables is the same (although I'm no certain > as to what f1 and f2 refer to). This is coming from inside lmer. My guess is that you want to make sure Time is a factor. dat <- expand.grid(Time=1:5,Octopus=1:5) dat$awake <- sample(0:1,prob=c(0.5,0.5),replace=TRUE,size=nrow(dat)) dat$Time <- factor(dat$Time) dat$Octopus <- factor(dat$Octopus) library(lme4) lmer(awake~(1|Time/Octopus),data=dat) I got a similar error when both Time and Octopus were numeric. When I turned one or the other but not both into a factor I got different errors. When they are both factors I get an error which is related to the fact that I don't have enough data (only one observation per block, so the block effects are confounded with the residual variation) lmer(awake~(1|Time)+(1|Octopus),data=dat) which represents a crossed effect, does work. > If anyone could offer me some kind of advice about this I would appreciate > it very, VERY much. Both of my supervisors have no experience with R and so > have kind of washed their hands, so I'm alone in this and your expertise > would be a big help. > > Dean Even though R is wonderful, if your supervisors use a different statistical package, I would strongly recommend you stick to what they use so that you can get properly trained, unless you are *very* self-sufficient. ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.