Guest User

Untitled

a guest
Jun 25th, 2018
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.28 KB | None | 0 0
  1. # baseline hazard: Weibull
  2. # N = sample size
  3. # lambda = scale parameter in h0()
  4. # rho = shape parameter in h0()
  5. # beta = fixed effect parameter
  6. # rateC = rate parameter of the exponential distribution of C
  7. N=100
  8. simulWeib <- function(N, lambda, rho, beta, rateC)
  9. {
  10. x=cbind(hba1c=rnorm(N,2,.5)-2,age=rnorm(N,40,5)-40,duration=rnorm(N,10,2)-10)
  11. # Weibull latent event times
  12. v <- runif(n=N)
  13. Tlat <- (- log(v) / (lambda * exp(x %*% beta)))^(1 / rho)
  14. # censoring times
  15. C <- rexp(n=N, rate=rateC)
  16. # follow-up times and event indicators
  17. time <- pmin(Tlat, C)
  18. status <- as.numeric(Tlat <= C)
  19. # data set
  20. data.frame(id=1:N,
  21. time=time,
  22. status=status,
  23. x=x)
  24. }
  25. library(survival)
  26. set.seed(7003)
  27. dat=simulWeib(N=100, lambda=0.01, rho=1, beta=c(1.1,1.2,1.3), rateC=0.001)
  28. fit <- coxph(Surv(time, status) ~ x.hba1c + x.age + x.duration , data=dat)
  29. summary(fit)
  30.  
  31. set.seed(7003)
  32. betaHat1 <- rep(NA,1000)
  33. betaHat2 <- rep(NA,1000)
  34. betaHat3 <- rep(NA,1000)
  35. for(k in 1:1000)
  36. {
  37. dat <- simulWeib(N=100, lambda=0.01, rho=1, beta=c(1.1,1.2,1.3), rateC=0.001)
  38. fit <- coxph(Surv(time, status) ~ x.hba1c + x.age + x.duration , data=dat)
  39. betaHat[k] <- c(fit$coef[1])
  40. betaHat2[k] <- c(fit$coef[2])
  41. betaHat3[k] <- c(fit$coef[3])
  42. }
  43.  
  44. mean(betaHat[1:1000])
  45. mean(betaHat2[1:1000])
  46. mean(betaHat3[1:1000])
Add Comment
Please, Sign In to add comment