Simulated Example
example.Rmd
Generate simulated data.
set.seed(123)
df = 10
nn = 1000
beta = c(0.5,0,-0.5, rep(0,10))
sim_PO_data = PO.sim(nn, beta,
C.gen = function(n)
5+rbinom(n,1,0.5)*runif(n, -5, 0))
str(sim_PO_data)
#> List of 4
#> $ delta: num [1:1000] 1 1 1 0 1 1 1 0 1 1 ...
#> $ X : num [1:1000] 0.0882 0.2656 0.0156 5 3.0214 ...
#> $ Z : num [1:1000, 1:13] -0.5605 -0.2302 1.5587 0.0705 0.1293 ...
#> $ C : num [1:1000] 5 5 5 5 5 ...
Use U-Method
res_umethod = PO(Surv(X, delta) ~ Z[,1]+ Z[,2]+ Z[,3]+ Z[,4]+ Z[,5]+ Z[,6]+ Z[,7]
+ Z[,8]+ Z[,9]+ Z[,10]+ Z[,11]+ Z[,12]+ Z[,13],
data = sim_PO_data,method = 'U-method')
res_umethod$coefficients
#> Z[, 1] Z[, 2] Z[, 3] Z[, 4] Z[, 5] Z[, 6]
#> 0.402583539 -0.132209349 -0.492876392 -0.050644450 -0.033285405 -0.088953476
#> Z[, 7] Z[, 8] Z[, 9] Z[, 10] Z[, 11] Z[, 12]
#> 0.059994696 -0.027726996 -0.007809205 0.061906345 0.041066723 0.043869927
#> Z[, 13]
#> 0.030323057
Use NPMLE
res_npmle = PO(Surv(X, delta) ~ Z[,1]+ Z[,2]+ Z[,3]+ Z[,4]+ Z[,5]+ Z[,6]+ Z[,7]
+ Z[,8]+ Z[,9]+ Z[,10]+ Z[,11]+ Z[,12]+ Z[,13],
data = sim_PO_data,method = 'NPMLE')
res_npmle$coefficients
#> Z[, 1] Z[, 2] Z[, 3] Z[, 4] Z[, 5] Z[, 6]
#> 0.320173515 -0.105850088 -0.410840434 -0.035136734 -0.020578763 -0.067833862
#> Z[, 7] Z[, 8] Z[, 9] Z[, 10] Z[, 11] Z[, 12]
#> 0.046023576 -0.020481732 -0.003643924 0.042992550 0.040359826 0.024051147
#> Z[, 13]
#> 0.030044174