Rのみを使用して、サンプルの2,000,000行のデータセットで次のようにCox回帰を実行しようとしています。これは、SASのPHREGの直接変換です。サンプルは、元のデータセットの構造を表しています。
##
library(survival)
### Replace 100000 by 2,000,000
test <- data.frame(start=runif(100000,1,100), stop=runif(100000,101,300), censor=round(runif(100000,0,1)), testfactor=round(runif(100000,1,11)))
test$testfactorf <- as.factor(test$testfactor)
summ <- coxph(Surv(start,stop,censor) ~ relevel(testfactorf, 2), test)
# summary(summ)
##
user system elapsed
9.400 0.090 9.481
主な課題は、元のデータセット(2m行)の計算時間です。私が理解している限り、SASではこれに最大で1日かかる可能性がありますが、少なくとも終了します。
わずか100,000の観測で例を実行すると、わずか9秒しかかかりません。その後、観測数が100,000増加するごとに、時間はほぼ二次関数的に増加します。
私は操作を並列化する手段を見つけていません(たとえば、可能であれば48コアマシンを活用できます)
どちら
biglm
も革命Analyticsのすべてのパッケージには、Cox回帰のために利用可能である、と私はそれらを活用することはできません。
これをロジスティック回帰(Revolutionにパッケージがある)の観点から、またはこの問題に対する他の代替手段があるかどうかを表す手段はありますか?それらは根本的に異なることは知っていますが、状況に応じて可能性として私が推測できる最も近いものです。