Observation: Skeptics.SE has historically had a moderately low ratio of answers-to-questions. [Ref - currently 'Okay', but has been 'Needs-Work']
Hypothesis: Skeptics.SE tend to have well-researched answers which require more effort than other sites, which tend to have multiple suggestions. A relatively low Answers-To-Questions ratio is to be expected, and not a good metric for the health of the Skeptics.SE.
Prediction: With less answers per question, but high-quality questions, we should get more Enlightened badges (10+ votes, first answer) than other StackExchanges web-site. With the alternative explanation - we are just poor at producing answers - we'd expect the answers given to not get 10+ votes.
Method: Get the number of Enlightened badges divided by the number of Questions for each of several StackExchange sites, until bored.
Results:
- Skeptics: 373 Enlightened Badges of 1877 Questions: 19.9%
- Gaming: 1038 of 10,963: 9.5%
- English: 794 of 11296: 7.0%
- TeX: 746 of 11506: 6.5%
- Programmers: 905 of 14118: 6.4%
- Game Developers: 226 of 5068: 4.4%
- Stack Overflow: 30953 of 2284146 : 1.4%
- Code Golf: 6 of 458: 1.3%
Conclusion: Skeptics.SE has a far higher rate of Enlightened Answers than other sites. This is consistent with the hypothesis that while Skeptics tends to get fewer answers than other Skeptics.SE sites, the average quality of them is higher.
Known shortcomings:
- Selection criteria not specified.
- Only statistical analysis is "inter-ocular impact".
- Alternate explanations?
UPDATE
In accordance with Sklivvz's request, a pretty new graph - click to enlarge - with a lot more data points - all the ones I could (conveniently) fetch through the API.
Skeptics is ranked #2 in the enlightenment stakes. A surprise result from SciFi there!
Here is the raw data. Each row represents the site's name, the number of answers per question and the number of enlightened answers per question.
scifi 2.21 0.243
skeptics 1.675 0.199
german 2.777 0.176
cstheory 2.015 0.134
boardgames 2.805 0.096
gaming 1.776 0.095
photo 3.307 0.091
rpg 3.672 0.09
astronomy 2.004 0.083
travel 2.199 0.082
writers 3.701 0.078
english 2.843 0.07
parenting 4.049 0.07
cooking 3.017 0.069
gardening 1.868 0.067
tex 1.813 0.065
programmers 5.512 0.064
japanese 2.118 0.057
bicycles 3.528 0.055
security 2.834 0.055
gamedev 2.612 0.045
productivity 3.76 0.045
diy 2.183 0.043
music 2.82 0.041
math 1.733 0.035
ux 3.813 0.035
unix 1.951 0.035
electronics 2.705 0.035
pm 4.127 0.032
fitness 2.199 0.032
money 2.681 0.03
dba 2.031 0.027
quant 2.179 0.026
philosophy 2.906 0.025
physics 2.13 0.024
graphicdesign 2.224 0.024
homebrew 2.699 0.022
stats 1.809 0.02
android 1.629 0.019
askubuntu 1.626 0.018
webapps 1.819 0.017
sqa 3.368 0.017
gis 2.076 0.016
codereview 1.92 0.016
stackoverflow 2.152 0.014
codegolf 6.902 0.013
webmasters 1.888 0.012
apple 1.867 0.012
mechanics 1.796 0.011
superuser 1.938 0.01
judaism 2.235 0.009
serverfault 2.102 0.008
onstartups 3.503 0.008
stackapps 1.304 0.006
drupal 1.393 0.006
wordpress 1.455 0.002
sharepoint 1.615 0.002
Here is the python code that generated the data I used for the graph:
#!/usr/bin/env python
from stackauth import StackAuth
import stackexchange # Initially run against 1.1_4
import time
ALL_SITES = [
# Grabbed sites from sites.py on py-stackexchange website.
# Deleted meta sites.
# Commented out sites that don't work for unknown (versioning?) reason.
stackexchange.StackOverflow,
stackexchange.ServerFault,
stackexchange.SuperUser,
stackexchange.WebApplications,
stackexchange.Gaming,
stackexchange.Webmasters,
stackexchange.Cooking,
stackexchange.GameDevelopment,
stackexchange.Photography,
stackexchange.StatisticalAnalysis,
stackexchange.Mathematics,
stackexchange.HomeImprovement,
stackexchange.GIS,
stackexchange.TeXLaTeX,
stackexchange.AskUbuntu,
stackexchange.PersonalFinanceandMoney,
stackexchange.EnglishLanguageandUsage,
stackexchange.StackApps,
stackexchange.UserExperience,
stackexchange.UnixandLinux,
stackexchange.WordPress,
stackexchange.TheoreticalComputerScience,
stackexchange.Apple,
stackexchange.RoleplayingGames,
stackexchange.Bicycles,
stackexchange.Programmers,
stackexchange.ElectricalEngineering,
stackexchange.AndroidEnthusiasts,
stackexchange.OnStartups,
stackexchange.BoardandCardGames,
stackexchange.Physics,
stackexchange.Homebrew,
stackexchange.ITSecurity,
stackexchange.Writers,
#stackexchange.AudioVideoProduction,
stackexchange.GraphicDesign,
stackexchange.DatabaseAdministrators,
stackexchange.ScienceFictionandFantasy,
stackexchange.CodeReview,
stackexchange.CodeGolf,
stackexchange.QuantitativeFinance,
stackexchange.ProjectManagement,
stackexchange.Skeptics,
stackexchange.FitnessandNutrition,
stackexchange.DrupalAnswers,
stackexchange.MotorVehicleMaintenanceandRepair,
stackexchange.Parenting,
stackexchange.SharePoint,
stackexchange.MusicalPracticeandPerformance,
stackexchange.SoftwareQualityAssuranceandTesting,
stackexchange.JewishLifeandLearning,
stackexchange.GermanLanguageandUsage,
stackexchange.JapaneseLanguageandUsage,
stackexchange.Astronomy,
stackexchange.Philosophy,
stackexchange.GardeningandLandscaping,
stackexchange.Travel,
stackexchange.PersonalProductivity,
#stackexchange.Cryptography,
#stackexchange.Literature,
#stackexchange.SignalProcessing,
#stackexchange.FrenchLanguageandUsage,
#stackexchange.Christianity,
#stackexchange.Bitcoin,
]
stack_auth = StackAuth()
print "(Site, Answer:Question Ratio, Enlightenment:Question Ratio)"
nicknames = []
answer_question_ratios = []
enlightened_question_ratios = []
for site_name in ALL_SITES:
nickname = str(site_name).split(".")[1]
site = stackexchange.Site(site_name)
successful = False
while not successful:
try:
stats = site.stats()
all_badges = site.all_badges()
enlightened_badge, = filter(lambda badge: badge.name=="Enlightened", all_badges)
answer_question_ratio = float(stats.total_answers)/stats.total_questions
enlightened_question_ratio = float(enlightened_badge.award_count)/stats.total_questions
print " (%r, %.3f, %.3f)," % (
nickname,
answer_question_ratio,
enlightened_question_ratio,
)
successful = True
except Exception as e:
# Probably networking issue. Loop around again
print e
time.sleep(20) # Don't hammer the server
