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

六本木で働くデータサイエンティストのブログ

元祖「銀座で働くデータサイエンティスト」です / 道玄坂→銀座→東京→六本木

『手を動かしながら学ぶ ビジネスに活かすデータマイニング』(技術評論社)を書くに当たって気を付けたこと&補足など(追記あり)

R 書籍 統計学 機械学習 BUGS/Stan データマイニング

追記(2015/03/14)

  • 第7章の決定木のところで取り上げた{mvpart}パッケージのサポートが切れ、CRANから削除されてしまったためinstall.packages関数ではインストールできなくなっています。現在のインストール方法を最後に追記しました。

追記(2014/09/18)


ということで、以下の通り拙著『手を動かしながら学ぶ ビジネスに活かすデータマイニング』(技術評論社)が本日発売と相成りました(都内の大型書店では先週半ばから先行販売している模様です)。


手を動かしながら学ぶ ビジネスに活かすデータマイニング

手を動かしながら学ぶ ビジネスに活かすデータマイニング

そうそう、Kindle版(手を動かしながら学ぶ ビジネスに活かすデータマイニングも配信始まってますので、紙媒体は重くて大変!という方はこちらをお求めいただければ幸いです。


さすがに自著の書評なんて贔屓の引き倒しにしかならない上にいくら何でも無理があるので(笑)、こんなことを考えて本書を書きましたよーというのを何となくだらだらと書いてみようと思います。


加えて、本書の中で書きそびれたことがいくつかあると気付いたので(汗)、その点についてもRコードと併せて補足を書いておきます。よろしければ参考にしてみてください。


「データサイエンス」ではなくあえて「データマイニング」に


実はタイトルや表紙装丁については僕は何も決めてなくて、gihyo様の意向に対して諾否をコメントするぐらいしかしてないんですが*1データマイニング」の語をタイトルに用いたという点については我が意を得たりというところです。


何故かというと、端的に言えば「データサイエンス」という語の寿命はおそらく長くないと僕自身が考えているからです。基本的に「データサイエンス」は「ビッグデータ」「データサイエンティスト」とセットの語であり、穿った見方をすればこれらの語と同じ運命をたどる可能性が否定できません*2。。。これに対して「データマイニング」の語は90年代に考案されて以来KDDやICDMなどのカンファレンスでも継続的に用いられており、いつまでも続くだろうと期待できます。


ただ一つだけ問題点があって、「データマイニング」の語がタイトルに入ってしまうと書店では理工系学術書のコーナーに回ってしまいやすく、例えば『データサイエンティスト養成読本』などとは並べてもらえないことになりかねないという。。。いやーどうしますかね(汗)。


とにかく統計学機械学習も「直観的にわかる」ことを重視


はっきりお断りしておきますが、僕は未だもって数学が大の苦手です。ついでに余計なことを書いてしまうと、今でこそ理系の学部・研究科を修了して実験科学の研究者を経てデータ分析の仕事をやってますが、大学受験の時は数学が最も苦手だった一方で英語と国語が得意で、未だに高校時代の同級生には「お前文系だったよね?」と間違われる始末ですorz


このため、ぶっちゃけ今でもESLとかPRMLとか読んでて数式が出てくると、読んでて頭がクラクラしてきます*3。なので、巷のテキストに「この式変形は容易である」とか書きながらずらずらと数式の山が続いてるのを読むと割とカジュアルに殺意を覚えます(笑)。というくらいには、本当に数学も数理的表現も苦手なのです。。。


そのため、基本的に僕は何かしらの数理的表現にぶつかるたびに「これらの数理的表現はどういうイメージに置き換えられるだろうか?」というのを考えるようにしています。本書では、出来る限りその「イメージ」のみを統計学なり機械学習なりの原理の説明として用いるようにして、とにかく「直観的にわかる」ことを重視しました。


ただ、こういう理解の仕方の弱点として「厳密性に乏しい」という問題にぶち当たるのは致し方ないもの。そこで、厳密性にこだわりたい人のために脚注で出来る限り参考文献を例示するようにしておきました。それでも入門書的な立ち位置であることを鑑みて、PRMLとかESLは参考文献から外してあります*4


僕自身が非エンジニアなので、非エンジニアにもとっつきやすく


偉そうにRのことやRでのコーディングについて書いてますが、僕はエンジニアとしてはズブの素人です。というかそもそもエンジニアではありません*5。エンジニアとしての教育は前職で新卒研修に混じってJavaまわりを教わったぐらいで、例えば「お前今すぐ何かwebアプリ作れ」なんて言われても作れません。どうしても作れと言われたらまずテキストをひっくり返すところから始めなければいけない程度にはド素人です。


そんな僕がRで色々やるとなると、自ずと「非エンジニアがDSL相手に悪戦苦闘する」みたいな感じになります。というわけで、僕自身が「あー、コーディング苦手だしこの辺の処理はこんな感じでいいやー」的にド素人感丸出しに書いたものを、可能な限り誰でも意味を理解しやすいように整理したものを載せるようにしました。


発売告知の記事の際にも書きましたが、全てのRコードは入稿する時点で非エンジニアの担当編集さんに自らR + RStudioの環境で実行していただいて、動作する&結果の意味が理解できることを確認した上で載せています*6。ということで、非エンジニアの方々にもとっつきやすく仕上がったのではないかと思ってます。


元データは可能な限りリアリティのあるオリジナルなもので


まず、元データはかなり手間がかかりましたが頑張って全部自分で乱数を発生させてシミュレートして作っています。各種線形モデルなど多変量解析系で使うものについては、ある程度目的変数との偏回帰係数が狙った通りになるように色々調整しています。


コンセプトとしては「リアリティ重視」。これまでのデータ分析業務の中で自分が遭遇したことのあるデータを思い出しながら、「こんな感じのデータだったらいかにも現場にありがちだよなぁ」という完成予想図を思い描き、それに出来るだけ似せるように努めました。


とは言え、思った通りのシミュレーションデータが出来なかったケースもあり、例えば6-4節1つ目のデータは最後まで悩んだ結果微妙なものになってしまいました(泣)。8-2節のデータも「こんな翌月継続UU少なかったらこのソシャゲ撤退やろ」ぐらいダメなものになってしまい、ソシャゲ界隈の皆様には大変申し訳ないです(汗)。


さらに高度な内容を学びたい人のための手掛かりを出来る限り盛り込む


本書では出来るだけわかりやすさを重視したわけですが、一方でわかりやすさだけでなく「広大な統計学機械学習の世界への入り口」にしたいという狙いもありました。なので、本文中では言及を避けながらも、脚注にしぼってさらに深く突っ込んで知るためのポイントを色々入れておきました。


例えば名義尺度・順序尺度・間隔尺度・比尺度の4尺度とか、最小二乗法とか、最尤法とか、多重共線性とか、EMアルゴリズムとか、機械学習の各手法の原理的な側面とか、混合ディリクレ過程とか、明らかに本書の範囲を超えるような話題ながら「その先」に進むためには知っておいて欲しい内容はできるだけ脚注に簡単なコメントと、当たるべき参考文献を示してあります。


なのですが、そう言えばAIC赤池情報量基準)の話題は入れなかったのでした。明確な理由はないんですが、僕がこれまで担当してきた案件でAICに基づいて回帰モデルの説明変数をしぼらければならないという場面に実際に出くわしたことがないし*7、細かいところは僕のブログでも読んで下さいぐらいに思いながら書いたような(汗)。逆に機械学習のパートではcross validationの説明を入れてあります。


あと、サンプルサイズの決定という厄介な問題についてはコラムの形で簡単にコメントしておきました。ページ数の都合上statistical powerとかeffect sizeとかの話は書けなかったので、あくまでもしれっと解説する的な感じです。


初心者向けに書いたつもりなんですが、どうやら「中級者向け」の本らしいです


うちの現場のNLPerなPh.D.氏が読んでみての感想。確かに、第4章の正規線形回帰モデルまでは初心者でもいけるかもしれないんですが、第5章のクラスタリングから先はちょっと難解かも。。。ということで「中級者向け」である旨、予めお断りしておきます。


ということで、これだと「初心者にも簡単」とは言いにくくなるのでちょっと辛いかも。。。なんですが、難しいと感じてもとにかくサンプルデータをインポートして、例題のRコードを黙々と実行していただいて、出力された結果を見るというところまでは頑張ってやっていただけたらなぁと。何かは身に付くんじゃないかと信じております(汗)。


Stanの説明はどうしても入れたかった(笑)


10-7節に北大の久保先生やITÔ Hirokiさんの許諾を頂戴してまでわざわざStanコードとその実践例を入れたのは、他でもなくて「最初にStanについて触れた日本語文献」にしたかった、ただそれだけです(笑)。


とは言え、本文中にも書いたように今やベイジアンに関連する勉強会があちこちで開かれるという状況で、かつBUGSと異なり現在進行形で開発が進んでいるStanが使えるという現状では、将来のことを考えるとこれを取り上げないわけにはいかないというのが僕の考えでした。ぶっちゃけ内容的には完全に以前の記事(Stanで統計モデリングを学ぶ(4): とりあえず階層ベイズモデルを試してみる(基本編) - 銀座で働くデータサイエンティストのブログ)の転載みたいなものなので新しくも何ともないのですが、雰囲気だけでも掴んでもらえればという感じで。


各章のキーポイント


最後に、各章について僕が特に強調したかったキーポイントをそれぞれまとめておきます。本書をお読みの皆さんには、併せてこちらも参考にしていただければ幸いです。

第1章 データマイニングとは

「平均」「中央値」「最頻値」とか、とにかく統計学では必須の「分布」についての理解を深めてもらうことを重視しました。あと、SIGKDDとその年次大会KDDについて触れたのもちょっとこだわったポイントです*8。常に研究開発が進んでいるホットな分野であるということを感じてもらえれば、と。

第2章 Rを使ってみよう

僕はWindowsユーザなので、基本的にWindows 7環境での使用を想定しています。Macユーザ、Linuxユーザの皆さんには不親切な結果になってしまいごめんなさい。。。あとはこだわったのはformula式です。Rはformula式を引数に用いる関数が非常に多いので、そこだけ分かれば後はどうでもいいぐらいのイメージで(笑)。


そうそう、僕はR上でデータ操作するのが下手なのでapply関数などfor文の代わりに使うべき超絶有用な関数や、データ操作系の{dplyr}や{magrittr}やらの説明はほぼほぼ端折っちゃってます(汗)。それらの詳細については世の中めちゃくちゃ分かりやすいR本が沢山あるのでそちらをお読みください。。。同じ理由で{ggplot2}とかRによるデータ可視化についても他書を当たってください。。。

第3章 その2つのデータ,本当に差があるの? ~仮説検定~

この辺からだんだん厳密性にこだわらず、分かりやすい説明を心がけるようにしています。例えば正確にはWelchの検定*9の話とかするべきところも全面的に本文中ではスキップして、脚注に参考文献などを示して発展項目として紹介するに留めています。


もしかしたら分かりにくかったかもしれないと思ってるのがカイ二乗検定(独立性の検定)の箇所。これも本当は「2つ以上の分布同士が同一か互いに独立かを判定するもの」という説明をしても良かったんですが、細かくなりすぎると踏んで割愛してます。

第4章 ビールの生産計画を立てよう~重回帰分析~

回帰モデルの説明が最初は慣れないかもしれませんが、この先の全ての回帰を理解する上で最も重要なところなので色々データを変えたりして何度も試しながら感覚を掴んでいただければなぁと。イメージとしては「説明変数を組み合わせていくことでナイスな目的変数のモデルが出来上がる」という感じでしょうかね。


そうそう、ここでは「予測」のやり方を書くのを忘れていたのでした(滝汗)。例えば、"ch4_3_2.txt"のサンプルデータdから計算した正規線形モデルd.lmに対して、単にサンプルデータを当てはめて予測させた値を出すだけであれば以下ののようにpredict関数を使えばいけます。

> d.lm.pred <- predict(d.lm, newdata=d[,-1])
# 説明変数のみをnewdata引数として与える
# predict関数は与えられたモデルのフォーマットに応じて自動的にメソッドを切り替える
> matplot(cbind(d$Revenue,d.lm.pred),type='l',lty=c(1,2),lwd=3,col=c('blue','red'),xlab='日付',ylab='売上高')
> legend(1,57,legend=c('実測値','推定値'),lty=c(1,2),lwd=3,col=c('blue','red'))

f:id:TJO:20140820133553p:plain


ここでは過去の値を用いていますが、普通にnewdata引数に目的変数の未来の値*10を与えてやれば、ズバリ未来予測ができます。例えばこんな感じでいけます。

> d_future<-data.frame(CM=c(150,145,151,147,135),Temp=c(32,31,30,29,28),Firework=c(1,0,0,0,0))
# 向こう5日間の未来の値を作っておく
# 最高気温は天気予報から分かるし、CMの放映計画は決まっているし、花火大会の日程も分かっているはずなので、一応可能
> d_future.pred<-predict(d.lm,newdata=d_future)
> d_future.pred
       1        2        3        4        5 
45.57853 41.62398 40.37979 39.56399 39.09090 
> plot(d$Revenue,type='l',lty=1,lwd=3,col='blue',xlim=c(0,36),ylim=c(25,60),xlab="日付",ylab="売上高")
> legend(25,36,legend=c('測定値','予測値'),lty=1,lwd=3,col=c('blue','red'))
> par(new=T)
> plot(d_future.pred,axes=F,type='l',lty=1,lwd=3,col='red',xlim=c(-30,6),ylim=c(25,60),xlab="",ylab="")

f:id:TJO:20140820133213p:plain


この辺のやり方は実は第8章の教師あり学習のところでも取り上げているので、まぁいいやと思って書きそびれてしまったという。。。ごめんなさい。


なお、回帰モデルのモデル選択・決定において必須の概念であるAIC赤池情報量基準)については本書では割愛しました。詳しくはこのブログの関連記事(「使い分け」ではなく「妥当かどうか」が大事:重回帰分析&一般化線形モデル選択まわりの再まとめ - 銀座で働くデータサイエンティストのブログ)をご覧ください。要は、説明変数の取捨選択が必要なケースでは、それをサポートしてくれる指標がありますよということです。


ちょっと皆さん戸惑ったかもしれないのが、章末の偏回帰係数と相関係数との違いについてコメントした節。これは脚注にもあるこのブログの記事(なぜ項目ごとに単純な集計をするより、多変量解析(重回帰分析)をした方が正確な結果を返すのか - 銀座で働くデータサイエンティストのブログ)を参考にしていただければ、と。ただ相関を計算しただけでは色々間違ってるかもしれませんよ?というコメントでした。

第5章 自社サービス登録会員をグループ分けしてみよう ~クラスタリング

直観的に分かりやすいのは明らかにWard法など階層的クラスタリングの方なので、そちらの概念の説明に重点を置いてます。K-meansの説明は割ともやっとしたものに留めてあり、例えば初期値依存性の話などは割愛してます。


むしろ気をつけて欲しいのは、章末にも強調していますがこの後出てくる教師あり学習とは異なりクラスタリングなどの教師なし学習では「正解はない」という点。ビジネスドメインにおける事前知識などに基づいて、どれくらい「蓋然性が高いか」によってクラスタリング結果の良し悪しを決める必要があるということにご注意を。

第6章 コンバージョン率を引き上げる要因はどこに? ~ロジスティック回帰~

ここのサンプルデータが一番苦心したところで、特に「16000円均一パッケージ」の例題は正直言って今でも微妙だなぁと思ってます。。。ともあれ「率」の分析がしたい時はロジスティック回帰でいきましょう、ということで。あと最尤法ですね。より高度な内容に進むためには最尤法については何でも良いので別に勉強しておいてください。最尤法と尤度のことが分からないと、第10章のStanを用いたベイジアンの話は理解できませんので。


ちなみにここでもpredict関数による予測のやり方は書き忘れていて(汗)、AIC赤池情報量基準)については割愛しています。予測の方は普通にd1.glm, d2.glmをpredict関数に目的変数だけにカラムを絞ったnewdata引数と合わせて突っ込めば簡単にできます。AICについては例えばこのブログの関連記事(「使い分け」ではなく「妥当かどうか」が大事:重回帰分析&一般化線形モデル選択まわりの再まとめ - 銀座で働くデータサイエンティストのブログ)をご覧ください。一般化線形モデルの発展的な話題は第10章でちょろっとだけ触れてます。

第7章 どのキャンペーンページが効果的だったのか? ~決定木~

実は決定木をサクサク多用する場面って最近ではあまり多くない気がするので、どちらかというと第8章の前振りとして教師あり学習の基礎に触れるという感じの章に仕立ててあります。剪定(pruning)をcross validationと直接関連付けて取り上げるなど、色々意識して書きました。


むしろ冗長だったかなぁとちょっと思ってるのが回帰木。。。とは言え、これを抜くとランダムフォレスト回帰とかも分かりづらくなってしまうので、一応入れておきました。

第8章 新規ユーザーの属性データから今後のアクティブユーザー数を予測しよう ~SVM/ランダムフォレスト~

ここでは心を鬼にして「数式は一切使わずにSVMの原理を説明し切る!」というのを徹底したので、数学アレルギーの人には見た目易しくなった半面、場合によっては却って根底にある理論的基礎が分かりにくくなってしまっているかもしれませんorz そういう方には以前のSVMの記事(パッケージユーザーのための機械学習(3):サポートベクターマシン(SVM) - 銀座で働くデータサイエンティストのブログ)などお読みいただければと。同様にランダムフォレストについても数式は一切使わないようにしたので、理論的基礎に興味のある方はやはり以前のブログ記事(パッケージユーザーのための機械学習(5):ランダムフォレスト - 銀座で働くデータサイエンティストのブログ)などをお読みいただければ有難いです。


で、この章では分類器としてのSVMとランダムフォレストのみ紹介していますが、目的変数がカテゴリ型ではなく数値型(連続値)であればそれぞれサポートベクター回帰(SVR)、ランダムフォレスト回帰として、回帰木同様に回帰させることが可能です。普通に"ch4_3_2.txt"のデータをdという名前で読み込んで、

> d.svr <- svm(Revenue~., d)
> d.rfr <- randomForest(Revenue~.,d)
> summary(d.svr)

Call:
svm(formula = Revenue ~ ., data = d)


Parameters:
   SVM-Type:  eps-regression 
 SVM-Kernel:  radial 
       cost:  1 
      gamma:  0.3333333 
    epsilon:  0.1 


Number of Support Vectors:  24

> importance(d.rfr)
         IncNodePurity
CM            231.0659
Temp          391.9683
Firework      160.1426

とかやってみればSVR、ランダムフォレスト回帰の場合の結果が得られるはずです*11。ちなみにrandomForest関数は目的変数が0-1の間の値だと、データ型についてwarningを出して問い合わせてくることがあるので、必要に応じてデータ型を変えてやりましょう。


ちなみに正規線形モデル・SVR・ランダムフォレスト回帰とで、サンプルデータに対する当てはめ結果と、先述の第4章の補足で用いたd_futureという未来の値に対する予測結果を比べるとこうなります。

学習データに対する当てはめ結果
> d.svr.pred<-predict(d.svr,newdata=d[,-1])
> d.rfr.pred<-predict(d.rfr,newdata=d[,-1])
> matplot(cbind(d$Revenue,d.lm.pred,d.svr.pred,d.rfr.pred),type='l',lty=c(1,2,2,2),col=c('blue','red','green','purple'),lwd=3,xlab='日付',ylab='売上高')
> legend(1,57,legend=c('測定値','推定値(lm)','推定値(SVR)','推定値(RF)'),lty=c(1,2,2,2),lwd=3,col=c('blue','red','green','purple'))

f:id:TJO:20140820135326p:plain

未来の値に対する当てはめ結果
> d_future.svr.pred<-predict(d.svr,newdata=d_future)
> d_future.rfr.pred<-predict(d.rfr,newdata=d_future)
> plot(d$Revenue,type='l',lty=1,lwd=3,col='blue',xlim=c(0,36),ylim=c(25,60),xlab="日付",ylab="売上高")
> legend(1,57,legend=c('測定値','予測値(lm)','予測値(SVR)','予測値(RF)'),lty=1,lwd=3,col=c('blue','red','green','purple'))
> par(new=T)
> plot(d_future.pred,axes=F,type='l',lty=1,lwd=3,col='red',xlim=c(-30,6),ylim=c(25,60),xlab="",ylab="")
> par(new=T)
> plot(d_future.svr.pred,axes=F,type='l',lty=1,lwd=3,col='green',xlim=c(-30,6),ylim=c(25,60),xlab="",ylab="")
> par(new=T)
> plot(d_future.rfr.pred,axes=F,type='l',lty=1,lwd=3,col='purple',xlim=c(-30,6),ylim=c(25,60),xlab="",ylab="")

f:id:TJO:20140820134603p:plain


SVRがガウシアンカーネルを反映してやや滑らかに予測し、ランダムフォレスト回帰がややカクカク予測するのが何となーく見て取れるのではないかと思います。

第9章 ECサイトの購入カテゴリデータから何が見える? ~アソシエーション分析~

基本的にはもう読んで字の如しみたいな章ですが、一番力を入れたのが{arulesViz}を使った可視化のパート。これは意外と取り上げている文献が少ないので、ぜひぜひ皆さん実践してみてください。


あと、章末のコラムでアソシエーション分析はレコメンドにも使われるよと書いてますが、ぶっちゃけビジネス用途で実装されるレコメンドシステムの多くが使っているのは普通にコサイン類似度(要は内積)とかもっとシンプルなものだったりします。。。

第10章 Rでさらに広がるデータマイニングの世界 ~その他の分析メソッドについて~

基本的には本書以外の書籍で名前が挙がるようなデータ分析手法をできるだけ網羅的に挙げたというだけなので、実際には僕が普段使わないようなものも混じっていたりします。例えば分散分析は僕の場合はほとんど使ってないです。生存分析も同様ですねー。一方でPCAは当たり前ですが次元削減でよく使います。ニューラルネットワークはDeep Learningの名前を出したいがためだけに取り上げましたw


グラフ理論・ネットワーク分析は、僕も使うことはありますがそこまで本格派ではないので、できれば脚注に挙げた他書をお読みいただいた方が良いかなぁと。計量時系列分析は、ズバリこのブログで連続シリーズとしてやった記事が沢山あるので(「Rで計量時系列分析」シリーズ)、そちらも是非お読みくださいー。


そしてラスボスが出ました、Stanでベイジアンモデリング。これは上記の通りどうしても載せたくて、関係各方面の先生方に引用の許可をいただいてまで書いたのでしたw これはもう頑張って{inline} + {Rcpp} + {rstan}をインストールして、実際に階層ベイズの計算を走らせるところまで一旦体験してもらえればそれで十分だと思います。


最後に


基本的には初心者の方々向けに書いたつもりの本なので、既にRについても統計学機械学習についても経験を積んだ人が読んだらちょっと物足りないかなぁ的な内容なのは、何卒ご容赦くださいということで。。。


そうそう、炎上ラーニングはもちろんこの拙著においても目論んでおりますので(笑)、皆さんご自身のブログやTwitterAmazonレビューなどでバシバシ死ぬほど叩いて下さると有難いです。ぜひぜひ次以降の自著の参考にさせていただきます。


ということで明日からKDD2014に行ってまいります。できれば現地からレポート記事を書ければいいけどせっかくのNYCだから遊びたいなぁ書こうと思ってます。


※追記(2014/09/04現在)


これまでに以下の書評・感想・コメントをいただいております。皆様有難うございます!


「手を動かしながら学ぶ ビジネスに活かすデータマイニング」を献本頂きました! - yokkunsの日記

手を動かしながら学ぶデータマイニング | NegativeMindException

尾崎 隆 著 ,手を動かしながら学ぶ ビジネスに活かすデータマイニング | @DataSci

追記(2014/10/10現在)


さらにid:hoxo_mさんから書評を頂戴しました!有難うございますー。


追記(2015/03/14現在)


第7章で決定木を取り上げた際に紹介した{mvpart}パッケージが2014年12月の時点でサポートが切れてしまいCRANからも削除されたため、install.packages関数を用いたインストールが現在できなくなっています。そこで、以下の方法でインストールするようにして下さい。

Mac OS / Linux

以下のコマンドでインストールできるようです。

> install.packages("http://cran.r-project.org/src/contrib/Archive/mvpart/mvpart_1.6-2.tar.gz",repos=NULL,type="source")

Windows

Windowsの場合tar.gzファイルをデフォルトでは解凍できないため、上記の方法ではエラーを吐いて失敗してしまいます。よって、以下のブログの方法を用いてインストールして下さい。


  1. Rの実行ファイルにパス(Windows環境変数PATH)を通しておく。
  2. C:\Rというフォルダにインストールしたいパッケージを保存しておく。
  3. コマンドプロンプトで以下のコマンドを実行する。
$ R CMD INSTALL mvpart_1.6-2.tar.gz


ここでは以下の{mvpart}の古いアーカイブ一覧から、最新版(一番下)のものをDLしてきてC:\Rフォルダに保存するようにしてください。

http://cran.r-project.org/src/contrib/Archive/mvpart/

今後もサポートが切れたCRANパッケージについては同様に対応して下さいますようお願いいたします。

*1:ただし表紙下部(帯ではない)の紹介文の「データサイエンティスト」(カナ)の後に英語で(Data Scientist)と入れたのは僕のワガママですw カナだとオワコンって連呼してますからww

*2:同時期に「データサイエンス」の語を冠した書籍を出版された皆さんごめんなさい

*3:分からなくて眠くなってしまうという説もある

*4:@shima__shima先生ごめんなさい

*5:現職では非エンジニアということでコーディング試験を免除されたぐらい

*6:Stanのパートは例外

*7:依頼元のリクエストで説明変数を削ったモデルを作ったケースがめちゃくちゃ少ないという実態もあります

*8:もっともデータマイニングなら他にもICDM、機械学習とかその周辺の理論的な話ならNIPSとかICMLとかトップカンファレンスは色々ありますが

*9:2群の分散が等しくない場合に使うべきt検定の派生版で、Rでは勝手に使うべきかどうかを選んでくれます

*10:一般にこれは外生変数を用いるものですが

*11:ただしSVRSVMと同じでpredictしない限り何の役にも立たないので要注意