使用R代码最大化部分似然

时间:2014-03-07 21:25:46

标签: r survival-analysis

假设我有一个像肾脏数据一样的生命数据集。有一些协变量年龄,性别,疾病。性别有2类(F,M),疾病有4类(其他,GN,AN,PKD)。我想估计Cox比例风险模型的参数。年龄,性别,GN,AN,PKD有5个参数。我这样想。我怎样才能最大化这个功能?

library(survival)
dat <- kidney
head(kidney)
#      id time status age sex disease frail
#    1  1    8      1  28   1   Other   2.3
#    2  1   16      1  28   1   Other   2.3
#    3  2   23      1  48   2      GN   1.9
#    4  2   13      0  48   2      GN   1.9
#    5  3   22      1  32   1   Other   1.2
#    6  3   28      1  32   1   Other   1.2  
    ......................................

部分似然函数

logPL <- function( par, time, status, cov ){
  data <- data.frame( time, status, cov)
  data <- data[order(data$time, decreasing=T),]
  risk.score <- data.matrix(data[,-c(1:2)]) %*% par
  PL1 <- risk.set
  PL2 <- log(cumsum(exp(risk.set)))
  PL <- sum(data$status*(PL1-PL2))
  return(-PL)}

0 个答案:

没有答案