Advertisement
Guest User

Covariance (Cox regression)

a guest
Nov 23rd, 2017
234
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
R 1.65 KB | None | 0 0
  1. library("survival")
  2. test1 <- data.frame(time=c(4,3.1,1.1,1,2.1,2,3), status=c(1,1,1,0,1,1,0),
  3.                     x=c(0,2,1,1,1,0,0), sex=c(0,0,0,0,1,1,1))
  4. fitc <- coxph(Surv(time, status) ~ x + sex, test1)
  5. dfbeta <- residuals(fitc, type = "dfbeta")
  6. scorer <- residuals(fitc, type = "score")
  7. fitr <- coxph(Surv(time, status) ~ x + sex, test1, robust = TRUE)
  8. fitc$var
  9. t(dfbeta) %*% dfbeta
  10. fitr$var
  11. fitc$var %*% t(scorer) %*% scorer %*% fitc$var
  12.  
  13.  
  14. # observed information matrix (Im)
  15. test2 <- test1[order(-test1$time),]
  16. time <- as.matrix(test2$time)
  17. event <- as.matrix(test2$status)
  18. x <- as.matrix(test2[,c("x","sex")])
  19. n <- dim(x)[1]
  20. p <- dim(x)[2]
  21. beta <- as.matrix(fitc$coefficients, nrow = p)
  22.  
  23. xbar1 <- rep(0, n)
  24. xbar2 <- array(rep(0, p*n), dim = c(p, n))
  25. xbar3 <- array(rep(0, p*p*n), dim = c(p, p, n))
  26. Im <- array(rep(0, p*p), dim = c(p, p))
  27. ll <- 0
  28.  
  29. for (i in 1:n) {
  30.   exb <- exp(x[i,]%*%beta)
  31.   if (i == 1) {
  32.     xbar1[1] <- exb
  33.     for (r in 1:p) {
  34.       xbar2[r,1] <- x[1,r]*exb
  35.       for (s in 1:r) {
  36.         xbar3[r,s,1] <- x[1,r]*x[1,s]*exb
  37.       }
  38.     }
  39.   } else {
  40.     xbar1[i] <- xbar1[i-1] + exb
  41.     for (r in 1:p) {
  42.       xbar2[r,i] <- xbar2[r,i-1] + x[i,r]*exb
  43.       for (s in 1:r) {
  44.         xbar3[r,s,i] <- xbar3[r,s,i-1] + x[i,r]*x[i,s]*exb
  45.       }
  46.     }
  47.   }
  48.  
  49.   if (abs(event[i] - 1.0) <= .Machine$double.eps) {
  50.     ll <- ll + x[i,]%*%beta - log(xbar1[i])
  51.     for (r in 1:p) {
  52.       for (s in 1:r) {
  53.         Im[r,s] <- Im[r,s] + xbar3[r,s,i]/xbar1[i] - xbar2[r,i]*xbar2[s,i]/xbar1[i]^2
  54.         if (r != s) {
  55.           Im[s,r] <- Im[r,s]
  56.         }
  57.       }
  58.     }
  59.   }
  60. }
  61.  
  62. modelvar <- solve(Im)
  63. modelvar
  64. fitc$var
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement