coxph: Convert a Cox proportional hazard model into Poisson...

Description Usage Arguments Value Author(s) Examples

Description

Tools to convert a Cox proportional hazard model into Poisson regression

Usage

1
2

Arguments

formula

The formula for the coxph model where the reponse must be a inla.surv-object.

data

All the data used in the formula, as a list.

control.hazard

Control the model for the baseline-hazard; see ?control.hazard.

debug

Print debug-information

...

Data.frames to be cbind-ed, padding with NA.

Value

inla.coxph returns a list of new expanded variables to be used in the inla-call. Note that element data and data.list needs to be merged into a list to be passed as the data argument. See the example for details. inla.cbind.data.frames returns the new data.frame.

Author(s)

Havard Rue hrue@math.ntnu.no

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
## How the cbind.data.frames works:
df1 = data.frame(x=1:2, y=2:3, z=3:4)
df2 = data.frame(x=3:4, yy=4:5, zz=5:6)
inla.cbind.data.frames(df1, df2)

## Standard example of how to convert a coxph into a Poisson regression
n = 1000
x = runif(n)
lambda = exp(1+x)
y = rexp(n, rate=lambda)
event = rep(1,n)
data = list(y=y, event=event, x=x)
y.surv = inla.surv(y, event)
intercept1 = rep(1, n)
p = inla.coxph(y.surv ~ -1 + intercept1 + x,
               list(y.surv = y.surv,  x=x, intercept1 = intercept1))

r = inla(p$formula, 
        family = p$family, 
        data=c(as.list(p$data), p$data.list), 
        E = p$E)
summary(r)

## How to use this in a joint model
intercept2 = rep(1, n)
y = 1 + x + rnorm(n, sd=0.1)
df = data.frame(intercept2, x, y)

## new need to cbind the data.frames, and then add the list-part of
## the data
df.joint = c(as.list(inla.cbind.data.frames(p$data, df)), p$data.list)
df.joint$Y = cbind(df.joint$y..coxph, df.joint$y)

## merge the formulas, recall to add '-1' and to use the new joint
## reponse 'Y'
formula = update(p$formula, Y ~ intercept2 -1 + .)

rr = inla(formula,
        family = c(p$family, "gaussian"),
        data = df.joint,
        E = df.joint$E)

andrewzm/INLA documentation built on May 10, 2019, 11:12 a.m.