Rの壁
- 1. R の壁
第 3 回 Japan.R (2012/12/1)
統計数理研究所
@zgmfx20a
- 2. R 修得のハードル
• R が難しいとされる点
– R そのもののプログラム言語的側面 / 背景
– 統計的な知識
• 調べる力があれば乗り越えられる ( と思う
が)
– 研究者なら少しのサポートで乗り越えられて
いる
– どうもそうとは限らないケースもある
• とある ( 博士課程を有する ) 大学院での出
来事
– 論文作成には調べる力が要求されると思うが
- 3. 動かないので助けてください …
• 某大学院の先生から助けを乞われる
• 対象のデータを Excel で渡される
• ざっと眺めて … 原因は一瞬で特定!
– セルが空もしくは数字以外
– 一瞬で判別可能な程度の行数と列数の規模
• こういう照会が一度だけなら …
– ( 残念ながら ) 何度も同じことの繰り返し
– きちんと検算してればこんな事にはならない
筈
• 実験科学者としての姿勢に疑問
- 4. そもそも
• 実験 > library(randomForest)
> iris1 <- iris
> iris1[1,1] <- NA
> iris1.rf <- randomForest(iris1[,-5])
以下にエラー randomForest.default(iris1[, -5]) :
NA not permitted in predictors
• 中学生の英語力で NA は許可されない … と判る
• では次に「 NA 」が何かを調べるべき
– 大抵の R 教科書の目次に必ずあるはず
– せめて「 NA ってなんですか?」ならまだ救いが …
• 調べる技術以前に調べようとする意識がないと
しか
- 5. コミュニケーションが成立して
ない
• 研究室の学生さんのメールが iPhone に着信
– 添付のように RF の重要度出力が変なのは何故
• 図が見れない
– 拡張子から Windows のメタファイルと推定
• 先生に (jpeg とか ) 読める形式での再送を要求
• 先生から同じ内容が再送される
– Windows をやっとこさ起動して読むも図だけで詳細
不明
– ざっと見て … これは追試しないと判らん …
• 「データがないと何とも言えません」と回答
• 先生からは「必要ならデータを送るので宜し
く」と
- 6. 交叉検証
• 2 週間後再度データ送付依頼
– データを見て絶句
– 正例 1 負例 5 からなるデータセット
• これじゃ交叉検証が成立しないのでは?
– 正例をテストセットに選択した時点で …
• 実験 1
> irisbad <- iris[c(1,51:55),]
> irisbad.crf <- randomForest(irisbad[,-5],
+ as.factor(as.character(irisbad[,5])), imp=T)
> varImpPlot(irisbad.crf)
• 実験 2
– 負例の1つを正例に変更
• 重要度出力 (MDA) に強弱がついた
MDA MeanDecreasedAccuracy
- 7. そもそも
• この時点で学習に失敗しているのは明らか
> irisbad.crf
Confusion matrix:
setosa versicolor class.error
setosa 0 0 NaN
versicolor 0 5 0
• あり得ない手順
– 分類表で判別精度を確認してから変数の重要度を
云々
• 「交叉検証の問題だと思います」と先生に回答
– 交叉検証について調べて自己解決を促したが甘かっ
た
• 「今後のためにやり方をご教示ください」と
– 回答不可能 ( 私のしたことは「捏造」で教えられませ
ん)
- 8. まとめ
• 初心者は R を使うなという事ではありま
せん
– みなさん最初はそうです
• R に限らず調べるという姿勢は必要です
– 調べることを放棄した人には利用は困難です
– 動かないのを R のせいにしてはいけません!
• 今回のケースはどう考えても R 以前の問題
• R は正しく使い合理的な解釈を導く道具
です
– ウソをつくためのものではありません
• ご清聴ありがとうございました