Looks like the tags with the biggest differences exemplify this pretty well.
[0]- http://dataremixed.com/2015/01/avoiding-data-pitfalls-part-2...
Looks like the tags with the biggest differences exemplify this pretty well.
[0]- http://dataremixed.com/2015/01/avoiding-data-pitfalls-part-2...
I originally got on this topic when reading Bayesian Methods for Hackers [1]. I am still hunting for a good method to correct/compensate for this when I am doing these types of comparisons in my own work.
[0] -http://faculty.cord.edu/andersod/MostDangerousEquation.pdf
[1] - https://github.com/CamDavidsonPilon/Probabilistic-Programmin...
Is the question interpreted as extending to those not on stackoverflow, or is it a complete census of the 'population' of their data?
> "what languages tend to be **asked about** on weekends, as opposed to weekdays?"
and: > "explore differences between **questions that are posted** on weekdays and weekends."
as opposed to the article title: > "What Programming Languages Are **Used Most** on Weekends?"
(emphasis added), is the problem then resolved?Suppose there were no difference between the usage of each language, and people just program on the weekends vs weekdays with some probability independent of language. Then, if a language has lots of users, it will likely have close to the average weekend/weekday proportion. The fewer users the language has, the more likely that it has an uneven weekend/weekday proportion just by chance. And if you plot the weekend/weekday proportions vs. the number of users, you expect a funnel shape just like the one in the article.
Therefore, the plot in the article - by itself - provides no evidence that there is any difference between the usage of different programming languages.
a <- runif(1000); b <- runif(1000); plot(a + b, log(a/b))
Also, they likely have a low-end cutoff (notice their x axis starts at 10^4. If you do the same to the above plot, you get even closer to that exact shape. Try:
plot(a + b, log(a/b), xlim=quantile(a + b, probs=c(0.2, 1)))
plot(a + b, log(a/b), xlim=c(1, 2), log="x")
The ratio of sample sizes in the OP also isn't that bad, and none of them are very small.
Using an (empirical) Bayesian multilevel model can both attach uncertainty intervals to the point estimates and appropriately "shrink" the estimates towards zero at the low-sample-size end.
The latter is more directly interpretable, at the cost of slightly more complex modelling (/assumptions).
Looking for explanation of multilevel model, I found http://mc-stan.org/documentation/case-studies/radon.html which seems to do exactly that in "Partial pooling model". (see graph)
Instead you'd want to use a CDF that bins that values.