> я когда-то проводил подобный анализ (я кстати являюсь разработчиком Debian), получалась
> в общем-то есть корреляция между уровнем жизни в стране и относительным
> количеством разработчиков.
> то есть чем больший уровень жизни в стране, тем больше в ней
> относительное число разработчиков. то есть людей, которые могут выделять свободное время
> для свободного проекта Да, похоже на то.
Я проверил, насколько сильно зависит количество разработчиков на душу
населения от ВВП на душу населения.
Понятно, что ВВП на душу населения не идеальный показатель
качества жизни, но и не плохой. Я использовал данные МВФ за 2010 год
[http://en.wikipedia.org/wiki/List_of_countries_by_GDP_(PPP)_...
(данных по Мартинике там нет, потому что Мартиника фактически заморская
территория Франции и правильнее было бы её причислить к Франции,
но я её вообще не учитывал; надо нормально записываться в статистику,
а если хочешь жить на тропическом острове, пожалуйста, но придётся
статистике твоей страны немного пострадать).
Корреляция действительно существует и немалая. Коэффициент
корреляции между количеством разработчиков и ВВП получился равным 0.69
(для сравнения корреляция между ростом и весом людей тоже 0.7).
Но больше мне понравилось, как страны выстроились по соотношению
ВВП и количества разработчиков. Наибольшее количество DD в расчёте
на 1 миллион долларов в Финляндии — 113 человек. Если Мадакаскар
отбросить как флуктуацию, то за ней идёт Новая Зеландия и Швейцария
с 84 и 64 разработчиками на 1 млн. долл. соответственно.
Замыкает список Египет, Мексика и Китай. Там для того чтобы
создать одного разработчика Debian родине приходится работать
практически в 100 раз больше (75 для Китая; 72 для Мексики).
В России на один миллион долларов ВВП в год приходится
два с половиной разработчика Debian. Украина по понятным
причинам в таблицу не вошла.
Результаты расчётов:
DD/GDP GDP/DD
Finland 3.91 34585 113.05 0.01
Madagascar 0.1 911 109.77 0.01
New_Zealand 2.28 26966 84.55 0.01
Switzerland 2.67 41663 64.09 0.02
Ireland 2.24 38550 58.11 0.02
Sweden 2.03 38031 53.38 0.02
Germany 1.89 36033 52.45 0.02
Norway 2.42 52013 46.53 0.02
Austria 1.78 39634 44.91 0.02
France 1.44 34077 42.26 0.02
Bulgaria 0.54 12851 42.02 0.02
Croatia 0.68 17684 38.45 0.03
Belgium 1.36 36100 37.67 0.03
Lithuania 0.62 17185 36.08 0.03
Australia 1.37 39699 34.51 0.03
Latvia 0.45 14460 31.12 0.03
United_Kingdom 1.08 34920 30.93 0.03
Denmark 1.08 36450 29.63 0.03
Hungary 0.5 18738 26.68 0.04
Netherlands 1.08 40765 26.49 0.04
Luxembourg 1.95 81383 23.96 0.04
Czech_Republic 0.57 24869 22.92 0.04
Spain 0.67 29742 22.53 0.04
El_Salvador 0.16 7430 21.53 0.05
Costa_Rica 0.24 11216 21.40 0.05
Uruguay 0.29 14296 20.29 0.05
Canada 0.78 39057 19.97 0.05
Italy 0.54 29392 18.37 0.05
Israel 0.53 29531 17.95 0.06
Poland 0.24 18936 12.67 0.08
USA 0.52 47284 11.00 0.09
Argentina 0.17 15854 10.72 0.09
Cuba 0.09 9900 9.09 0.11
Ecuador 0.07 7776 9.00 0.11
Brazil 0.1 11239 8.90 0.11
Portugal 0.19 23223 8.18 0.12
Slovakia 0.18 22129 8.13 0.12
Japan 0.26 33805 7.69 0.13
Belarus 0.1 13909 7.19 0.14
Greece 0.18 28434 6.33 0.16
Romania 0.05 11860 4.22 0.24
Colombia 0.04 9566 4.18 0.24
Chile 0.06 15002 4.00 0.25
South_Africa 0.04 10498 3.81 0.26
Taiwan 0.13 35227 3.69 0.27
Peru 0.03 9330 3.22 0.31
India 0.01 3339 2.99 0.33
Malaysia 0.04 14670 2.73 0.37
South_Korea 0.08 29836 2.68 0.37
Venezuela 0.03 11829 2.54 0.39
Russia 0.04 15837 2.53 0.40
Turkey 0.03 13464 2.23 0.45
Thailand 0.02 9187 2.18 0.46
Egypt 0.01 6354 1.57 0.64
Mexico 0.02 14430 1.39 0.72
China 0.01 7519 1.33 0.75
----------
Corrcoef = 0.69
Скрипт для верификации расчётов и экспериментов:
import numpydd_st = {}
for l in file("dd_und_gdp.txt").readlines():
(st, dd, gdp) = l.strip('\n').split()
try:
dd_st[st] = {
'st':st,
'gdp':gdp,
'dd':dd,
'dd_pro_gdp':1000000*float(dd)/float(gdp),
'gdp_pro_dd':float(gdp)/(1000000*float(dd))
}
except:
pass # wegen der Ukraine
for st in sorted(dd_st.keys(), key=lambda x: -dd_st[x]['dd_pro_gdp']):
print "%(st)20s %(dd)10s %(gdp)10s %(dd_pro_gdp)10.2f %(gdp_pro_dd)10.2f" % dd_st[st]
corrcoef = numpy.corrcoef(zip(*[(float(x['gdp']), x['dd']) for x in dd_st.values()]))[0,1]
print '-'*10,'\n','Corrcoef = %5.2f ' % corrcoef