Pierre THIRIET
2012-Dec-18 10:18 UTC
[R] R function for computing Simultaneous confidence intervals for multinomial proportions
Dear all, Does someone know an R function implementing the method of Sison and Glaz (1995) (see full ref below) for computing Simultaneous confidence intervals for multinomial proportions? As alternative method, I think to boostrap the mean of each proportion and get in that way confidence interval of the mean. I observed 21 times a response that could be one out of 8 categories (multinomial response). I computed the proportions for every categories. I did it independently 12 times. Hence I have 12 replicats for each proportions. Is boostraping the mean proportion over the 12 replicats for getting the confidence interval is a good idea? I tried (see codes below) and gets some confidence interval quiet large. Actually, according to the boostraped CI, there are no difference in proportions, while a chi2 test confirms that there are. ############################################ generation of a data set: multinomial réponse variable repeatedly measured sub<-c("s1","s2","s3","s4")#subject per<-c("p1","P2","p3")#period, RM within subject tim<-paste("t",1:21,sep="")#tim, RM within period mydata<-expand.grid(tim=tim,per=per,sub=sub) #for simplicity, let's consider that period is not a repeated measure within subject. Hence, we have 12 trials ("independent") of 21 observations #random generation of the response variable require(plyr) posl<-paste("z",1:8,sep="") mydata$pos<-factor(NA,levels=posl) n=nrow(mydata) mydata$pos<-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 ##pre-treatment of the above row data, number of time (out of 21) each position was observed mydata2=ddply(mydata,.(sub,per,pos),summarize,nobs=length(pos),.drop=F) mydata2[,1:3]=catcolwise(function(x)as.factor(x))(mydata2) summary(mydata2) # boxplot of frequencies of occpupancy require(ggplot2) mydata2$fobs=mydata2$nobs/21 ggplot(mydata2)+geom_boxplot(aes(pos,fobs)) ###chi2 test nobsT=ddply(mydata,.(pos),summarize,T=length(pos)) nobsT=nobsT[,2] chisq.test(nobsT) #######################bootstraping of the mean proportions over the 12 replicats require(boot) maf=function(data,index){o=ddply(data[index,],.(pos),summarize,mmea=mean(fobs),.drop=F);as.vector(o[,2])} bootobj=boot(mydata2,maf,R=9999,stype="i") confint=ddply(mydata2,.(pos),summarize,mean.prop=mean(fobs)) confint$boot.LOW=-999 confint$boot.UP=-999 for (posi in 1:8){ try({confint$boot.LOW[posi]<-boot.ci(bootobj,0.95,index=posi,type="bca")$bca[4]},silent=T) try({confint$boot.UP[posi]<-boot.ci(bootobj,0.95,index=posi,type="bca")$bca[5]},silent=T) } ####################### plotting boostraped CI ggplot(mydata2)+geom_boxplot(aes(pos,fobs))+ geom_errorbar(data=confint,aes(pos,ymin=mean.prop-boot.LOW,ymax=mean.prop+boot.UP),lty=2,width=0.5)+ geom_point(data=confint,aes(pos,mean.prop),shape=24,size=2) References of the CI estimations I would like tu run: Glaz, J. and C.P. Sison. 1999. Simultaneous confidence intervals for multinomial proportions. Journal of Statistical Planning and Inference 82:251-262. Sison, C.P and J. Glaz. 1995. Simultaneous confidence intervals and sample size determination for multinomial proportions. Journal of the American Statistical Association, 90:366-369. Paper available at http://tx.liberal.ntu.edu.tw/~purplewoo/Literature/!Methodology/!Distribution_SampleSize/SimultConfidIntervJASA.pdf I thank you in advance, Respectfully, -- *Pierre THIRIET* Doctorant en écologie marine - Marine Ecology PhD student ---------------------------------------------------------------------------------------------------------------------------------------- EA 4228 - ECOMERS - /Ecosystèmes Côtiers Marins et Réponses aux Stress/ Université de Nice - Sophia Antipolis, Faculté des Sciences, Parc Valrose, 06108 Nice Cedex 2, France More about my work and my lab. <http://www.unice.fr/ecomers/index.php?option=com_comprofiler&task=userProfile&user=101&Itemid=111&lang=fr> ---------------------------------------------------------------------------------------------------------------------------------------- Cell: +336 79 44 91 90 Office: +334 92 07 68 33 Skype: pierre.d.thiriet Mail: pierre.thiriet@unice.fr Mail(bis): pierre.d.thiriet@gmail.com [[alternative HTML version deleted]]
Seemingly Similar Threads
- Fitting a multinomial model to a multi-way factorial design with repeated measures: help on package and syntax
- multinomial confidence interval
- simultaneous confidence intervals for multinomial proportions: sample size
- bootstrap bca confidence intervals for large number of statistics in one model; library("boot")
- Extracting components from a 'boot' class output in R