以前のエントリで書いたが、Perl Survey 2007というアンケートの結果が公開されている。年齢、プログラミング年数、Perlコミュニティへのかかわり、年収など考えられるすべての情報を網羅した貴重な情報だ。
生データを見ているだけでは何もわからないので、各要素の類似度(相関係数)を計算してグラフにしてみた。相関係数は数種類定義があるが、ここではスピアマンの順位相関係数を使った(細かいことは一番下に書いた)。
年齢と相関が高い要素トップ10
年齢の高いPerlプログラマは
- プログラミング歴が長く(1位)、Perlプログラミング歴もそこそこ長く(6位)
- Perlの開発に参加していることが多く(2位、3位)
- 地元以外でのPerlモンガーズやPerlカンファレンスにこの1年間に参加したことがある(5位、8位) という傾向が読み取れる。
地元の集まりに参加したことがあるかどうかはランク外。つまり、PerlモンガーズとPerlカンファレンスに参加したことがあるかどうか、は年齢とあまり関係ないものの、年齢が高い人ほど地元以外の集まりに出かけていることが多い。
Perlプログラミング歴と相関の高い要素トップ10
年齢のグラフより全体的に相関係数が高めである。Perlプログラミング歴の長い人は
- Perl以外も含めたプログラミング歴が長く(1位)
- Perlの開発に参加し(2位、3位)
- Perlモンガーズやカンファレンスに参加し(5位、6位、7位)
- CPANのモジュールを開発し(10位)
- 男である可能性が高い(4位)
プログラミングに占めるPerlの量と相関の高い要素トップ10
一見Perlプログラミング歴と似た結果だが、Perlプログラミング歴で1位だった「Perl以外も含めたプログラミング歴」はランク外に落ちた(相関係数0.1以下)。つまり、プログラミング歴とPerlの使用率は何の関係もない。
年収と相関の高い要素トップ10
年収の高い人は、
- Perlの開発に参加しており(1位、2位)
- 地元以外のPerlモンガーズに参加していて(4位、5位)
- カンファレンスで発表し(6位)
- 男性であることが多い(3位)
年齢の相関係数0.35はそれほど高くない。すなわち年収と年齢はそれほど強い相関関係にないことに注目したい。言い換えるとPerlプログラマの年収は年功序列とはいえない。
注釈
- 普通の相関係数(ピアソンの積率相関係数)ではなく、スピアマンの順位相関係数を使ったのはバラバラな指標(Perlの開発に参加しているか:yesとnoの2値、プログラミング歴:正規分布からほど遠い整数、CPANモジュール数:大多数が0)をまとめて扱いたかったからであるが、もっといい方法があるかもしれない。
- コンピュータネットワークの発達していない地域で傾向が違うのは避けられないため、一人当たりのGDPが上位25か国(Wikipedia参照)の在住者のみを対象にした。ルクセンブルク(lu)、アイルランド(ie)、ノルウェー(no)、米国(us)、アイスランド(is)、スイス(ch)、オランダ(nl)、デンマーク(dk)、カタール(qa)、オーストリア(at)、フィンランド(fi)、カナダ(ca)、英国(uk)、ベルギー(be)、スウェーデン(se)、UAE(ae)、シンガポール(sg)、オーストラリア(au)、ギリシア(gr)、日本(jp)、フランス(fr)、イスラエル(il)、ドイツ(de)、イタリア(it)、中国(cn)。
- 1985年以降に生まれた人は統計から除外した。
- 年収(任意回答)を答えなかった人は統計から除外した。
- 以上の結果、統計の対象になったデータは2368個。
リンク
Greg氏のHacking with Greg: Charlie Brown Plays With Stats。私がこの企画を温めていたら、先に似たことをされてしまった。yesとnoで答える項目だけの集計だが、これはこれで面白い。
So with the improvements in my mind I managed to adjust it in just a few minutes. And the results where astonishing!....-ly boring. Here's the top 5...
If 'Posted to Perl Mongers list ' Then 'Subscribed to Perl Mongers list ' (With 0.995 probability)
If 'Posted to other list ' Then 'Subscribed to other list ' (With 0.990 probability)
If 'Attended conference (non-local) ' Then 'Attended conference ' (With 0.970 probability)
If 'Attended Perl Mongers (non-local)' Then 'Attended Perl Mongers ' (With 0.965 probability)
If 'Contributed to Perl 5 ' Then 'Subscribed to other list ' (With 0.882 probability)
(拙訳)
これはすごい……つまらない。項目ごとの類似度を出して、そのベスト5を出したものは
「Perlモンガーズのメーリングリストに投稿したことのある人」は99.5%の確率で「Perlモンガーズのメーリングリストに入っている」
「その他の(Perlモンガーズ以外の)メーリングリストに投稿したことのある人」は99.0%の確率で「その他のメーリングリストに入っている」
「地元以外のPerlカンファレンスに参加したことのある人」は97.0%の確率で「Perlカンファレンスに参加したことがある」
「地元以外のPerlカンファレンスに参加したことのある人」は96.5%の確率で「Perlモンガーズの会合に参加したことがある」
「Perl5の開発に参加したことがある人」は88.2%の確率で「Perlモンガーズ以外のメーリングリストに入っている」
謝辞
スピアマンの順位相関係数を求めるスクリプトはSpearman's rho test download pageからいただいた。
その他
- 統計は素人のため、ご提案、間違いのご指摘など歓迎します。
- グラフが英語なのはGoogle Chart APIで漢字が使えないという制限のためです。
- 相関がどれだけ有意かというのはまた別の問題です。参考程度にご覧ください。
統計の対象にした全項目
値 | 項目名 | 解説 |
Year of birth | 生まれた年。ここでは年齢と同じこと | |
3値 | Sex | 性別。ここでは「男」が1、「女」が0、「その他」を0.5として計算した |
範囲 | Income | 年収 |
整数 | Years programming Perl | Perlプログラミング歴(年数) |
整数 | Years programming (total) | Perl以外も含めたプログラミング歴(年数) |
% | Proportion of Perl | この1年に書いたプログラム、Perlは何%? |
2値 | Subscribed to Perl Mongers list | Perlモンガーズのメーリングリストに入っている |
2値 | Posted to Perl Mongers list | この1年にPerlモンガーズのメーリングリストに投稿した |
2値 | Subscribed to other list | その他Perl関連のメーリングリストに入っている |
2値 | Posted to other list | この1年にその他Perl関連のメーリングリストに投稿した |
2値 | Perlmonks | この1年にPerlmonksに投稿した |
2値 | Contributed to websites | この1年にその他Perlのサイトに投稿した(フォーラム、Wiki、ブログ) |
2値 | Attended Perl Mongers | この1年にPerl Mongersのミーティングに出席した |
2値 | Attended Perl Mongers (non-local) | この1年に地元以外でPerl Mongersのミーティングに出席した(地元以外:1000km以上) |
2値 | Attended conference | この1年にPerlのカンファレンスに出席した |
2値 | Attended conference (non-local) | この1年に地元以外でPerlのカンファレンスに出席した |
2値 | Presented at conference | この1年にPerlのカンファレンスやミーティングで発表した |
2値 | Contributed to CPAN | モジュールを発表するなどCPANに貢献したことがある |
2値 | Contributed to Perl 5 | Perl5に貢献したことがある |
2値 | Contributed to Perl 6 | Perl6に貢献したことがある |
2値 | Contributed to other projects | オープンソースソフトウェア(OSS)などにPerlで貢献したことがある |
2値 | Led other projects | OSSなどのプロジェクトを開始した、もしくはリーダーをしたことがある |
2値 | Provided feedback | Perl関係のバグレポートなどフィードバックを送ったことがある |
整数 | CPAN modules maintained | CPANでメンテナンスを担当しているモジュール数 |
0 件のコメント:
コメントを投稿