一日遅れましたが FPIAT の集計結果です。
結果
件数 | 指数の平均 | |
全体の平均 | 872 | 0.10756929089639 |
関数型が好きな人の平均 | 477 | 0.191203670004435 |
手続き型が好きな人の平均 | 375 | -0.0048112665571631 |
「いいor関数型」が先だった人の平均 | 469 | 0.110731609117045 |
「いいor手続き型」が先だった人の平均 | 403 | 0.103889074406348 |
グラフ
考察
原因不明ですが、全体的に正に偏る傾向があるようです。母集団に関数型が好きな人が多かったというのはありますが、それだけじゃ説明できません。何となく考えられる理由。
- 言語のチョイスが悪い (Fortran が好きな人なんていなくて、反射的に嫌いな方に入れてしまう? / Clean や Erlang なんて知らない)
- 手続き型が好きな人たちも関数型をそれなりに認めている・なんとなくよさそうという評判を聞いている
- 逆に関数型が好きな人は基本的に手続き型にネガティブ (?)
- バグ
「先に『いいor関数型』で分類すると、それに慣れすぎて『いいor手続き型』が悪くなる」という感じの意見はちらほら見かけましたが、菊さんのレクチャーを受けつつ T 検定してみたところ、「有意差がない」ことが有意水準 5% で棄却できないようです (もとが正規分布か微妙なところですが) 。とりあえず有意差があるとはいえないようです。慣れやすさに個人差がありそうですが。
テストの内部
- step 1 : 言語分類の練習 (結果に影響なし)
- step 2 : 単語分類の練習 (結果に影響なし)
- step 3 : 「いいor○○型」分類の練習 (結果に影響なし)
- step 4 : 「いいor○○型」分類の本番 (時間とミス回数測定)
- step 5 : 「いいor××型」分類の練習 (結果に影響なし)
- step 6 : 「いいor××型」分類の本番 (時間とミス回数測定)
でした。関数と手続きのどちらが先になるかはランダムで決まります。指数の計算式は 、ただし x は「いいor関数型」にかかった秒数 + ミス回数 * 0.2 秒、y は「いいor手続き型」にかかった秒数 + ミス回数 * 0.2 秒、でした。
反省点
- 実験の最後に面倒なアンケートを用意しなかったこと。「テスト長すぎ」という人がちらほらいたのに対して、アンケートを埋めてあるかどうかでまじめにやっているかどうか判断できるのに、と菊さんに言われました。頭いいなあ。こういう実験はなかなかやり直せないので、そういうノウハウは大切そうです。
- ミスのペナルティを 0.2 秒にしたのは大きすぎたかも (間違えてもいいとか言っといてだまし打ちだし) 。
- 言語名だと各言語への印象が強いこと (例えば僕は大枠で関数型言語が好きだけど LISP はあんまり好きじゃない) 。「副作用」とか「カリー化」とか菊さんに言われました。それはそれで問題ありそうだけど。
- 言語自体のチョイスが悪いこと。でも改善方法はあまり思いつかない。「多くの人に関数型と認知されている言語 8 つ挙げろ」は結構難問だと思います。
- 「FPIAT」 だの「関数型指数心理テスト」など、名前がかっこ悪い上に統一されてなかったこと。
- 結果の文がスマートでなかったこと。しかもそれがコピペされまくってしまったこと。正が関数型、負が手続き型です。
感想
星座占いや血液型占いよりは当たってるんじゃないでしょうか。心理学も統計学も素人の僕が数時間ででっち上げたおもちゃなので占いレベルは越えない、というかやっぱりジョークですね。