Functional Programming IAT の続きの続き

一日遅れましたが FPIAT の集計結果です。

結果

件数 指数の平均
全体の平均 872 0.10756929089639
関数型が好きな人の平均 477 0.191203670004435
手続き型が好きな人の平均 375 -0.0048112665571631
「いいor関数型」が先だった人の平均 469 0.110731609117045
「いいor手続き型」が先だった人の平均 403 0.103889074406348

グラフ



考察

原因不明ですが、全体的に正に偏る傾向があるようです。母集団に関数型が好きな人が多かったというのはありますが、それだけじゃ説明できません。何となく考えられる理由。

「先に『いいor関数型』で分類すると、それに慣れすぎて『いいor手続き型』が悪くなる」という感じの意見はちらほら見かけましたが、菊さんのレクチャーを受けつつ T 検定してみたところ、「有意差がない」ことが有意水準 5% で棄却できないようです (もとが正規分布か微妙なところですが) 。とりあえず有意差があるとはいえないようです。慣れやすさに個人差がありそうですが。

テストの内部

  • step 1 : 言語分類の練習 (結果に影響なし)
  • step 2 : 単語分類の練習 (結果に影響なし)
  • step 3 : 「いいor○○型」分類の練習 (結果に影響なし)
  • step 4 : 「いいor○○型」分類の本番 (時間とミス回数測定)
  • step 5 : 「いいor××型」分類の練習 (結果に影響なし)
  • step 6 : 「いいor××型」分類の本番 (時間とミス回数測定)

でした。関数と手続きのどちらが先になるかはランダムで決まります。指数の計算式は \log(x/y) 、ただし x は「いいor関数型」にかかった秒数 + ミス回数 * 0.2 秒、y は「いいor手続き型」にかかった秒数 + ミス回数 * 0.2 秒、でした。

反省点

  • 実験の最後に面倒なアンケートを用意しなかったこと。「テスト長すぎ」という人がちらほらいたのに対して、アンケートを埋めてあるかどうかでまじめにやっているかどうか判断できるのに、と菊さんに言われました。頭いいなあ。こういう実験はなかなかやり直せないので、そういうノウハウは大切そうです。
  • ミスのペナルティを 0.2 秒にしたのは大きすぎたかも (間違えてもいいとか言っといてだまし打ちだし) 。
  • 言語名だと各言語への印象が強いこと (例えば僕は大枠で関数型言語が好きだけど LISP はあんまり好きじゃない) 。「副作用」とか「カリー化」とか菊さんに言われました。それはそれで問題ありそうだけど。
  • 言語自体のチョイスが悪いこと。でも改善方法はあまり思いつかない。「多くの人に関数型と認知されている言語 8 つ挙げろ」は結構難問だと思います。
  • 「FPIAT」 だの「関数型指数心理テスト」など、名前がかっこ悪い上に統一されてなかったこと。
  • 結果の文がスマートでなかったこと。しかもそれがコピペされまくってしまったこと。正が関数型、負が手続き型です。

感想

星座占いや血液型占いよりは当たってるんじゃないでしょうか。心理学も統計学も素人の僕が数時間ででっち上げたおもちゃなので占いレベルは越えない、というかやっぱりジョークですね。