文書の過去の版を表示しています。
データマイニング
大学院講義。
演習の準備 2011.05.26
このファイル(昨年の課題)に収められたコードがすべて動くような環境を整えて下さい。
まずはRをダウンロードしてインストールします。CRANは、Rの開発組織が運営しているウェブサイトで、ここからのダウンロードは、とりあえず信用しても良いです。
- WindowsかMac OX Sなら、まずCRANにアクセスして下さい。
- Windowsなら、“Windows”の文字をクリックし、次に現れるページで“base”をクリックすると、“Download R X.Y.Z for Windows”という文字が見つかるので、それをクリックしてダウンロードし、実行する。
- Mac OS Xなら、“Mac OS X”の文字をクリックし、次に現れるページで “R-X.Y.Z.pkg (latest version)“という文字が見つかるので、それをクリックしてダウンロードし、実行する。
- Linuxなら、次の2行のどちらかが、インストールしてくれます。sudoが必要かも。
yum install R R-* apt-get install r-base
次に、Rを起動して、必要なパッケージを追加します。今回は次の一つだけ。
- survivalパッケージをインストールするには、次の一行を実行します。
install.packages(pkgs=c("survival"), repos='http://cran.md.tsukuba.ac.jp/')
この後、このファイルにあるコードをすべて実行してみてください。問題無く実行でき、赤い文字などでエラー(Error)やワーニング(Warning)が表示されなければ、成功です。
もしワーニングやエラーが表示されたら、山本まで、表示されたエラーメッセージなど、Rの出力画面の情報と共に、連絡を下さい。(ただし、メールアドレスの_at_は”@“に取り替えて、送信してください。)
既知の不具合
データファイルの保存方法が原因
ダウンロードしたrats.datは、改行コードがUNIX用になっているため、一度、ブラウザで開いた上で、すべてをコピーし、メモ帳などに貼り付けてから、rats.datとして保存しないと、Rで読み込む際にエラーとなることがあります。
PDFが原因
LaTeXで書いたテキストをdvipdfmxでPDFに変換すると、なぜか「~」の記号のフォントが、置き換えられてしまいます。見た目はほとんど変わりませんが、半角の「~」では無くなっています。改行コードが余計につくこともあります。 テキストのコードをそのままRに貼り付けると、プログラムとして認識できない文字が入力されたことになりますので、「~」は半角文字で打ち直すようにして下さい。 問題なく動作するコードを下に記します。
dimnames(rats)[[2]] <- c("id","start","stop","status","enum","trt") rats$rtrunc <- rep(NA, nrow(rats)) rats$tstatus <- ifelse(rats$start == 0, 1, 2) rats[1:12, c("id","start","stop","status","rtrunc","tstatus","enum","trt")] NPfit <- coxph(Surv(start,stop,status)~1, data=rats, subset=(trt==0),method="breslow") KM <- survfit(NPfit, type="aalen") NA.MF <- data.frame(time=c(0,KM$time), na=-log(c(1,KM$surv))) plot(NA.MF, type="l") NPfit <- coxph(Surv(start,stop,status)~1, data=rats, subset=(trt==1),method="breslow") KM <- survfit(NPfit, type="aalen") NA.MF <- data.frame(time=c(0,KM$time), na=-log(c(1,KM$surv))) lines(NA.MF, type="l") NPfit <- coxph(Surv(start, stop, status)~trt, data=rats, method="breslow") summary(NPfit) KM <- survfit(NPfit, type="aalen") NA.MF <- data.frame(time=c(0,KM$time), na=-log(c(1,KM$surv))) plot(NA.MF) NPfit <- coxph(Surv(start, stop, status)~trt+cluster(id), data=rats, method="breslow") summary(NPfit) KM <- survfit(NPfit, type="aalen") NA.MF <- data.frame(time=c(0,KM$time), na=-log(c(1,KM$surv)))