Pierre THIRIET
2012-Dec-06 15:57 UTC
[R] Fitting a multinomial model to a multi-way factorial design with repeated measures: help on package and syntax
Dear all, I studied in tank prey fish behavior. Using the design described below (and R code), I want to test the effects of both habitat and predator (and interaction) on prey fish's vertical distribution, which was recorded (with repeated measures) as a categorical variable. I found that package mlogit might fit to my need but I don't know how to specify my complex design in the formulae (which of my variables are individual- or alternative-specific?) If this package is the good one, I would be glad you help me in formulating my full model. If it is not, any suggestion would be appreciate. Design: Factor Habitat (Hab): fixed, 3 levels Factor Predator (Pre): fixed, 2 levels (abscence vs presence) Factor subject (Sub): random, nested in Hab X Pre, 4 levels (hence a total of 24 subjects) Data collection using repeated measures. I observed each subject during a 130 min trial but I collected data only during 3 periods (10 min long separated each other by 50min) --> Factor period (Per): 3 levels, from 0min to 10min (after trial start), from 60min to 70min, and from 120 to 130min. Within each period, I recorded subject's positions 21 times (every 30sec). I consider these observations as independent because 30 sec is large enough so that fish go back-and forth several time in the tank. --> Postition (Pos) was a categorical variable with 8 levels. Levels are in reality ordered but I don't need to consider them as such. However, I would like to compare them 2 by 2, which is more useful as regard to my ecological hypotheses). To test putative differences in vertical distribution between habitat and predator treatments, I thought to use mixed linear modeling with as response variable the number of time(Nobs) each position was observed (out of 21 observations for a given combinations of Hab, Pre, Sub and Per). However, the 8 values of Nobs for a given period are not independent, by definition (ad up to 21). Hence, I cannot use linear modeling and dig in the way of model multinomial. However, I appreciate the boxplot (run R code) as graphical representation and would be able to assign letters for pairwise comparisons of positions within a treatment, and also of treatments within a position level. I hope I have been clear and I thank you in advance, Best regards, Pierre THIRIET Université de Nice ########################### here is R code for exemplifying the structure of my data set. #factorial design hab=c("h1","h2","h3") pre=c("a","p") sub=c("s1","s2","s3","s4") per=c("p1","P2","p3") tim=paste("t",1:21,sep="") mydata=expand.grid(tim=tim,per=per,sub=sub,pre=pre,hab=hab) #random generation of the response variable,with an effect of factor pre (by adding a vector of probability weights) require(plyr) posl=paste("z",1:8,sep="") mydata$pos=factor(NA,levels=posl) n=length(mydata$pos[pre=="a"]) mydata$pos[mydata$pre=="a"]=replicate(n,sample(posl,1,prob=c(0.05,0.05,0.05,0.4,0.3,0.05,0.05,0.05)))#strong preference for z3 and z4 mydata$pos[mydata$pre=="p"]=replicate(n,sample(posl,1,prob=c(0.3,0.4,0.05,0.05,0.05,0.05,0.05,0.05)))#strong preference for z1 and z2 summary(mydata) # number of time (out of 21) each position was observed, given hab, pre, sub and per mydata2=ddply(mydata,.(hab,pre,sub,per,pos),summarize,nobs=length(pos),.drop=F) mydata2[,1:5]=catcolwise(function(x)as.factor(x))(mydata2) summary(mydata2) # boxplot of frequencies of occpupancy require(ggplot2) ggplot(mydata2)+geom_boxplot(aes(pos,I(100*nobs/21)))+facet_grid(pre~hab) [[alternative HTML version deleted]]
Stephen Politzer-Ahles
2012-Dec-06 19:09 UTC
[R] Fitting a multinomial model to a multi-way factorial design with repeated measures: help on package and syntax
Hi Pierre, Another option to model categorical data with a multinomial outcome is MCMCglmm (see example at http://hlplab.wordpress.com/2009/05/07/multinomial-random-effects-models-in-r/) or glmmADMB (http://glmmadmb.r-forge.r-project.org/ -- this one doesn't seem to be on CRAN). But I haven't tried them myself. Best, Steve -- Stephen Politzer-Ahles University of Kansas Linguistics Department http://people.ku.edu/~sjpa/
Reasonably Related Threads
- R function for computing Simultaneous confidence intervals for multinomial proportions
- try-error within for loop
- R: Searching and deleting elements of list
- unordered multinomial logistic regression (or logit model) with repeated measures (I think)
- How to create a data.frame "like" another, but longer?