Structure of Data Analysis
- 質問を定義する
- 理想的なデータセットの定義
- アクセスできるデータの検索
- データの取得
- クレンジング
- Exploratory
- 統計的予測・モデリング
- 解釈
- Challenge
- write up
- reproduciable code
理想的なデータセット
- descriptive -> Census
- Exploratory -> ランダムで複数変数
- inferential -> 正しい母集団から正しいサンプリング
- Predictive -> トレーニングセットとテストデータ
- Causal -> ランダムサンプル
- mechanistic -> モデルにおける変数に関するすべてのデータ
Predictive分析の例
- スパムの解析
- メールに含まれている単語の定量分析によりスパムメイルを識別できるか。
Exploratory分析の手順
- データの要約を確認する
- ミッシングデータおよび例外データの確認
- プロット
- クラスタリング
データの要約
http://www.asnm4.com/itinfra/index.php?cmd=read&page=R%2FTable&word=head
Interpret
- 適切な言葉の選択
- descriptive -> 表現する
- exploratory -> 関係する
- causal -> 導く、引き起こされる
- predictive -> 予期される
Data Analysis files
- data
- figure
- r code
- text
Getting data
- ディレクトリの設定
getwd(), setwd() - データのタイプタブ、CSV, Excel, JSON, HTML, クローラー
- ダウンロードをする
download.file() - テーブルに読み込む
read.table, read.xlsx, , read.csv - file.choose()を使って、GUIで読み込みたいファイルを指定する
Getting data – 2
- file
- url
- bzfile
- gzfile
- fromJson
- make sure to close the connection
Writing data
- write.table
- save
- save.image()
rda形式ですべてを保管できる save <-> load
文字列の操作
- paste
- paste0
htmlの解析
- htmltreeparse
データについて検証すること
- missing data
- 例外
- 単位がおかしいデータ
- ラベル
- フィールドの属性(文字、数値、日付、バイナリ)
とりあえず流すコマンド
- dim, names, nrows, ncols
- quantile
- summary
- unique, length, table プライマリキーもしくはキーに準ずるフィールドにかける
- tableは2次元で実行できる
- anyとallでデータのパターンを見る
- rowSums, rowMeans
目指すべきデータセット
- 行にひとつの観察
- 列に一つの属性
- テーブルは一種類の観察
- 列に適切なラベル
- 行はuniqueに切り分けられる
- 明らかにおかしいデータの除外
- 内部的にデータは一貫している
- 適切なtransform
munging
- 変数名の修正
- 新しい変数の追加
- Merge
- reshape : pivot melt()
- ミッシングデータ
- 一貫性のないデータの削除
cutを何に使うのか
http://vita.had.co.nz/papers/tidy-data.pdf
まとめ方
- 質問の設定
- アプローチ
- 解釈
- challenge to result
データのチェック
- 記述統計
- 正規のチェック
- プロット
- logでプロット
- クラスタリング
データの読み込み
fileurl <- "http://data.baltimorecity.gov/api/views/dz54-2aru/rows.csv?accessType=DOWNLOAD" download.file(fileurl, destfile=".camera.csv", method="auto")