読者です 読者をやめる 読者になる 読者になる

think stats chapter 2

meanとaverage

どちらも平均という意味だけど、少し違う。総和を取って単純に割ったものをmean。同じ計算式で求めるのだが、典型的な値、真ん中辺りの値をaverageと呼ぶ。大体みんな同じくらいの値の場合はどちらでもOKだけど、極端にばらつきのある場合にはmeanをaverageと呼ぶことはできない。

偏差(variance)

meanとの差分を2乗して全体の数で割ったもの。そのルート取ったのが標準偏差。ルートを取ると単位が合う。ここで練習問題2つ。かぼちゃの重さの平均と偏差と標準偏差を求めましょうというのが1問目。2問目は前の章の妊娠週数の平均、偏差、標準偏差を求めましょうというもの。

分散(distributions)

頻度を縦軸にとったヒストグラムで表すのが一般的。dictionaryを使って値を頻度にマッピングする。正規化されたヒストグラムPMF(probability mass function)。

ヒストグラムの表示

値の羅列から頻度をカウントして正規化して確率を出す作業は、著者が書いたPmf.pyを使ってもよいと書いてある。MakeHistFromListでリストからHistを作って、FreqとかValuesとかItemsとかで要素を取り出す。ここで練習問題。最頻値を求めなさい。また、各値の頻度を求めなさい。

ヒストグラムのプロット

matplotlibパッケージのpyplotを使う。ヒストグラムの利点は以下の3つがすぐわかること。

  • Mode 最頻値が一目でわかる
  • Shape 最頻値の周りが対称的か非対称的か
  • Outliers 外れた点、主にエラーがすぐわかる。

でもヒストグラムは2つの分散を比較するにはあまり便利じゃない。サンプリングサイズの違いがクローズアップされるだけだから、そんなときにPMFを使う。

PMFの表示

正規化されたヒストグラムPMF。MakeHistFromListではなくMakePmfFromListを使うだけ。Probで確率を求めて、IncrとかMultで和積の操作をしてTotalで総和を求めて、Normalizeで再び正規化できる。ここで練習問題2つ。1つ目は、統計にある生存率分析という考え方を実際に計算してみようというもの。具体的にはある部品の1年目、2年目、3年目にあと何年使えるかを計算する。2つ目はPMFを使った平均、分散で求めた値が通常の求め方で求めた値と一緒か確認するというもの。

PMFのプロット

棒グラフにはpyplot.barかmyplot.Histを使う。数が少ないときに便利。折れ線グラフにはpyplot.plotかmyplot.Pmfを使う。数が多いとき、Pmfが滑らかなときに便利。著者の書いたdescriptive.pyを参考にする。

異常値

20週未満で赤ちゃんがうまれるはずないということで、そのへんをエラーとして片付ける。それ以上のは判断が難しい。上と下のいくつかを無視して平均を出すことをtruncated meanと言うそうだ。

他のビジュアライゼーション

今回扱っているデータで最も違いが出るのは最頻値の付近。そこにフォーカスして違いを強調するようなグラフを書いてみよう。35週から45週のPMFの差を取って100倍したのを示している。

相対リスク

そもそも「1人目の赤ちゃんは遅く生まれるか」という疑問からスタートしたが、より正確に37週以前、38、39または40週、41週以後の3つに分けて考える。そこで練習問題。この3つに分けてそれぞれの確率を計算。その後1人目とそれ以外の確率を比較。詳しくはrisk.pyを見るようにとのこと。

条件付き確率

38週目まで生まれず、39週目に生まれる確率はどのくらいか。38週目までの結果を全部ゼロにして残りを正規化すれば求められる。そこで練習問題。各週においてそれまで生まれず、その週に生まれる条件付き確率をプロットして比較せよ。答えはconditional.pyを見る。

結果を報告

こんな感じで大体のデータがそろったわけだが、その報告も重要。質問者によって必要とされる答えは違ってくる。科学者ならどんなに小さくても実際の影響に興味があるし、医者なら臨床的に重要な結果が気になる。妊婦なら自分に関係する情報、例えば条件付き確率が気になるものだ。そこで練習問題。夜のニュースならどう伝えるか、心配している患者ならどう伝えるか。最後に、シカゴ・リーダー紙で「一般読者のどんな難問奇問にも答えてみせよう」という連載コラム"The Straight Dope"を担当しているCecil Adamsになったつもりで明解かつ正確に答えてみよう。

まとめと感想

実際にビジュアライズすると確かにわかりやすい。最後の結果を報告の項目がいいと思った。データをこねくり回してどうのこうのってのじゃなくて、何を知りたいか、誰が知りたいかを明確にして、どうすれば必要とされる情報を効果的に簡潔に正確に伝えられるかに言及しているところがいい。あくまでも問題解決の道具にすぎないということがよくわかる。