19 データ分析プログラミング (2)
この講義は、「データ分析プログラミング(1)」のつづきである。
- 統計モデルの推定
- 文書の作成
- 図の作成
- 表の作成
- 衛生・安全性の確保
- エラーへの向き合い方
1. 統計モデルの推定
要点
- 統計モデルは、データを集約するため・モデルを当てはめるために、「最適化問題」を解いて推定する。
- 統計モデルを用いるためには、「手法開発者」と「分析実践者」のスペクトラムがある。
- 分析実践においては、統計分析アルゴリズムは複雑であっても、プロセスが定式化されているため、“grab-and-go”のパッケージで自動化されていることが多い。
- インプット: (1) データとモデル変数の対応付け、(2) チューニング・パラメータ
- 補足: チューニング・パラメータについては、デフォルトがパッケージに設定されていることが多い
- アウトプット: リストとして推定値が出力される
- パッケージの実行は「自動化」されているが、統計モデルを十分に理解していないために、誤って用いてしまうことが多い
2. 文書の作成
要点
- 多くのデータ分析レポートにおいて、文が75%、図表が25%ほどとなる
- データ可視化の目的
- 視覚的伝達 … 「百聞は一見に如かず」(A Picture is Worth a Thousand Words.)
- 実証研究結果を、一つの図(graphical poem)に凝縮させよう
- 探索的発見 … 推定値のみでは気づかないパターンがある
3. 図の作成
要点
図の文法 (grammar of graphics) … 図 = データを視覚的要素に対応づけ、座標軸に「形」として配置し、ラベルなどを加えたもの
視覚的要素 = aesthetic mapping
- x軸、y軸の位置
- 大きさ/ 形状 … 少し太めに
- 色彩 … 補足・灰色・パレットの活用/ 色弱・色盲への配慮
幾何学的要素の種類を特定し、ラベルなどを「層」として重ねていく
よい図の特徴 = 脳の視覚的情報処理機能の活用
- デザインの工夫
- 「無駄な要素」(chart junk)をなくす
- 強弱をつける
- パターンをつくる (small multiples)
- 誇大な・虚偽な印象を与えないこと
- デザインの工夫
なお、ggplot2パッケージを使うためには、ggplot2 cheat sheetがとても便利である。
4. 表の作成
要点
- カテゴリー変数 x (カテゴリー変数 x) アウトカム変数のデータを表すために適切
- よい表のための工夫
- 縦線を入れないこと
- 横線を減らすこと
- 数値の桁数を調整すること
- 回帰表において、統計的優位な場合に**をつけるかどうかについては、「出版バイアス」の観点から、賛否両論がある
5. 衛生・安全性の確保
要素
欠測値 (missing values) / 重複値 (duplicates) … 唯一の正しい対処法はないので、いくつかのパターンで保守的なものを選ぶ
- 明示的 (explicit)
- 暗示的 (implicit)
外れ値 (outliers) / エントリーミス … 分布や値の変域を確認する
ただ「データを眺める」(browse)する時間も大切である
プログラムの一貫性の問題
- 全体を統括するmasterスクリプトをつくる
パッケージの整合性の問題
- パッケージの関数のマスキング
- パッケージの誤った更新
6. エラーへの向き合い方
要点
- “if you haven’t seen error messages, you haven’t been programming.” 誰でも、プログラミングの50%の時間は、エラーへの対応に使う。
- 確認の原則 … バグへの対応とは、「間違っている箇所が見つかるまで、自分の理解が正しいことを確認していく作業」である。だから、エラーは、自分の理解と技術を磨く砥石である。
- どこにエラーがあるか仮説を立てよう
- エラーメッセージは、問題が発生したときの「ガスの匂いづけ」
- エラーについて検索し、周囲に聞こう
- 小さなテスト・ケースを書いて、仮説を検証しよう
- どこにエラーがあるか仮説を立てよう
- よくあるエラーのパターン
- オブジェクトの名称の書き間違い、), }, + などの位置や数の間違い
- データの型や構造が不適切