What test do I use for language variance data? I am a linguist trying to decide on the appropriate statistical test for some data, and I'm a bit at sea.
The data relates to how often participants in bilingual conversations use words from the other language (codeswitches, in the jargon).  I want to compare the variance (number of codeswitches) between participants in each conversation, and also between each participant and all participants as a whole.
On a wild guess (!) I wonder if the proper test would be ANOVA?  If not that, then what?  Is there any "idiot's guide to choosing a test" out there, along the lines of "if A, B and C apply, use this test"?
I want to use R for the analysis, so any tips or references for more detail on the appropriate test for this data in R would also be very welcome.
Thanks in advance!
 A: Your research question is a bit vaguely defined at the moment.  You will certainly need to decide if and how you are going to control for the length of conversations.  Also, what is the point of knowing that speakers use different amounts of codeswitching?  Is this of interest because there are different characteristics of speakers you want to associate with codeswitching; or are you just trying to get a feel for the range of codeswitching behaviour?  In any event, it becomes an interesting and non-trivial problem.  
Whatever your question, it seems unlikely that a single test will give you a useful answer; unless you just want to demonstrate that not all speakers codeswitch the same amount (which would seem to me to be a relatively trivial finding).
Pasted below is some R code of how I would start analysing this.  The first few lines are just to generate some data - I don't know whether it is plausible or not.  Where to from there would depend a bit on refining your questions.
Poisson regression is not the same as logistic regression although both are examples of generalized linear models.  Poisson regression is specifically designed for counts; logistic regression is for binomial distributions (ie proportions).  However, because you have length of conversation as a factor, it seems likely that your data will be "overdispersed", in which case you may get around the problem through using a quasi-poisson model.
In fitting a generalized linear model to data where the randomness isn't normally distributed you use "analysis of deviance" rather than "analysis of variance".
Hope this helps.
# Generate data
# This doesn't matter to you, so long as you can get your data in the format where 
# one column is the speaker and the other is the number of code switches in a particular
# conversation.
#
speaker <- LETTERS # 26 participants
tend <- rnorm(26, 7, 2) # latent variable - each participants "tendency" to codeswitch
conv <- rpois(26, 15) # number of conversations eac
n <- sum(conv) # total number of conversations
conv.len <- rnorm(n, 3, 1) # length of each conversation 
mydata <- data.frame(spk=rep(speaker, conv), conv.len=conv.len, codeswitch=round(conv.len*rpois(n, rep(tend, conv))))
rm(speaker, conv, conv.len)


######
# Analysis

##
# some basic descriptive stuff
#
head(mydata)
attach(mydata)
table(spk) # number of conversations each
tapply(conv.len, spk, mean) # average conversation length
tapply(codeswitch, spk, mean) # average codeswitches per conversation
switch.scaled <- codeswitch/conv.len # ie codeswitches per length of conversation
tapply(switch.scaled, spk, mean) # average codeswitches per length of conversation
dotchart(tapply(switch.scaled, spk, mean), pch=16, main="Average codeswitches per minute of conversation") 
library(lattice)
win.graph()
densityplot(~codeswitch|spk)
win.graph()
xyplot(codeswitch ~ conv.len | spk)


##
# modelling
#
model1 <- lm(switch.scaled~spk) # linear regression, Normal error term
win.graph()
par(mfrow=c(2,2))
plot(model1) # test reasonableness of normality (turns out to be skewed to right)

model2 <- glm(codeswitch ~ conv.len + spk, family="poisson") # more appropriate error term
win.graph()
par(mfrow=c(2,2))
plot(model2) # looks better
summary(model2) # but hmm, residual deviance/ degrees of freedom too large (should be 1)

model3 <- glm(codeswitch ~ conv.len + spk, family="quasipoisson") # less assumptions on dispersion parameter
summary(model3)
anova(model3, test="Chi")


##
# reporting results
#
model4 <- glm(codeswitch ~ -1  + conv.len + spk, family="quasipoisson") # easier to interpret if no intercept

results <- predict(model4, newdata=data.frame(spk=LETTERS, conv.len=rep(mean(conv.len),26)), type="response", se.fit=T)
win.graph()
dotchart(results$fit, labels=LETTERS, pch=16, 
    xlim=c(min(results$fit-2*results$se.fit), max(results$fit+2*results$se.fit)),
    main="Speaker's codeswitches for average conversation length",
    sub="95% confidence interval for speaker's effect")
segments(results$fit-2*results$se.fit, 1:26, results$fit+2*results$se.fit, 1:26)

