Proportional分析のJava Script

私が統計分析をよくお仕事にいただくことは、ここにも良く書いていますが、一番良く使うソフトウェアはSASというソフトで、その次に良く使うのがSPSS、同じくらい良く使うのがMiniTabというソフトなんですね。

それぞれ良い点があって、SASはかなりフレキシブル、はっきりいって一番可能性があるソフトです。が、コンピュータプログラミングのように、比較的ロジカルなコードを書かなければいけない点が、ちょっと敷居を高くしているかもしれません。SPSSはクオリテイティブな分析(カテゴリーなど、数値ではないデータ)をするのに最適で、しかもものすごく使いやすいです。統計学の知識がなくとも、なんとなく使えちゃいます。ですが、フレキシビリティはないです。たとえば、2-Tailedの分析と、1-Tailedの分析をやろう、と思ってもなかなか両方やらせてくれなかったりします。MiniTabも、インターフェイスは簡単です。ですが、Sessionウィンドウを開くと分かるのですが、UNIXのターミナルのように、実はメニューで選んでいても、自分でコードをタイプしているような感じであることが分かると思います。でも実際コンピュータプログラムなんてどれもそうなんですけどね。MiniTabはビジュアルな解析をするのに適しています。


でも、実はすっごく単純な解析になればなるほど、ソフトウェアの巨大さがちょっと邪魔なときがあるんですね。たとえば、私が良くやるProportional Analysisというもの。

これはどんな分析かというと、例を出すと、たとえば、ある教育がいかに知識を伸ばしたか、というのを評価したいとします。それで、まずPre-Testというのを行いますね。たとえば、そうですね、食品安全の問題とすると、「食肉に入っているO-157病原菌は、加熱を71.1ºCまで行えば安全に死滅させることができる」という質問をして、選択肢を用意して答えさせます。解答選択肢としては、「はい」「いいえ」「わからない」などになりますね。

そして単純にパーセントを計算するわけです。あっさり結論からいえば、「はい」が正解なので、「はい」と答えた人が何%いたかを計算します。そして、「いいえ」と「わからない」は混ぜて、不正解としてそれが何%か計算するわけです。ちなみにここで、「わからない」を選択肢に入れるのはこの場合重要です。「はい」か「いいえ」かに限ってしまうと、分からない人が推測して答えますよね。それでうっかり合ってしまったのを「知識がある」という分類にしてしまうと分析にエラーが増える結果になるからです。

そのあと、いわゆる、「トリートメント」あるいは「インターベンション」、つまり教育を施します。1時間の食品安全ビデオなどを見せたりするわけですね。その中で、「食肉に入っているO-157病原菌は、加熱を71.1ºCまで行えば安全に死滅させることができる」という教育は必ずはいっているとします。そして、いわゆるPost-Testを行います。Pre-Testと全く同じ内容の質問をするわけですね。そして正解と不正解の%を計算するわけです。

そこで、ここまでは%を計算しただけなので、統計学はまったく入ってきていません。たとえばPre-Testで300人の参加者の中で、正解率が65%だったとしますね。そしてそれが教育のあと、73%に増えたとします。わーい、増えた、教育は意味があった!と思いたいところですが、そこに統計学を入れなければいけないのです。300人の中で、65%から73%に増えた、というのは、「統計学的に重要か」というのを確認する必要があるわけです。つまり、「有意差があるか」ということですね。

私はこの手の分析に、単純なT-Testというのを行いますが、グループとしてのプロポーションにT-Testを行う、というプロセスはあまりにも計算式が単純すぎて、統計ソフトには含まれていないことが多いのです。もちろん、SASだとコードを6行書けばいいだけなんですが、たったこれだけをやるのにSASをたちあげるのもねぇ、と思うわけです。で、今まではエクセルを使っていたんですが、この際、簡単にフォームを作っちゃえ!と思って、いませっせとJava Scriptを書いたので残しておこうと思いました。はっきりいって自分のためだけです。分かる人はどうぞご利用くださいませ。興味がある人は、Beforeのボックスに.65、Afterのボックスに.73、Sample Sizeのボックスに300と入れて、Testを押してみてください。













“Before”
Proportion
(i.e., .50)
“After”
Proportion
(i.e., .50)
Sample Size
(N)
Claimed Difference
in Proportions
(Usually 0)
Test Statistic
(T-Score)
P-Value
Critical Value: 1.65 for alpha=.05 and 2.33 for alpha=.01
Conclusion




いかがでしたでしょうか。意外にも有意差がでなくてガッカリでしたね。この場合、Null Hypothesisには、「BeforeとAfterの比率は同じである」というのが設定してあります。もちろん、差に0.2以上あった場合を、「伸びがあった」としよう、などと設定することができるようにそのオプションも残しておきました。統計というのはNull Hypothesisをリジェクトすることによって、反証するシステムをとっているので、「比率が同じである」というのをリジェクトできたら、結果的に、この例でいえば、「正解率は増えた(違った)」ということがいえるわけです。そしてこの場合は1 Tailをつかっているので(知識が減ったことは考えに入れたくないからです)、結論としては、パーセントが上がっている、という時点で「知識が増えた」ということが言え、そしてP-Valueがアルファを下回っている点で、「有意差が出ている」ということが言えるというわけです。

こんな分析簡単すぎてなんだよ、と思う人もいるかもしれませんが、私にとってはこれから意外に便利かななんて思って時間かけて書いてしまいました。ガンガンつかおう。

Leave a Reply

Your email address will not be published. Required fields are marked *