ITR_IPW: The IPW Estimation Method

Description Usage Arguments Value Author(s) Examples

Description

Generating classification weights and treatment labels using the IPW method

Usage

1

Arguments

CC

Cumulative cost outcome

ST

Survival time outcome

A

Treatment variable

est_ps

Estimated propensity score

cen

censoring indicator

est_cen

Estimated censoring weight

lambda

Willingness-to-pay parameter

Value

delta.Y

incremental net monetary benefit (NMB)

delta.ST

individual-level treatment effect on restricted survival times

delta.ST

individual-level treatment effect on cumulative cost

ITR_ipwCE

Treatment label based on NMB outcomes

ITR_ipwST

Treatment label based on restricted survival times

Author(s)

Yizhe Xu

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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
library(ITRinCEA); library(survival);library(rpart)
#------------------- Simulate covariates, treatment, and 2 outcomes -----------------#
N=100
set.seed(99)
x1 = rnorm(N,0,1)
x2 = rnorm(N,0.5,1)
x3 = rnorm(N,0,1)

u0 = 0.1*x1
p0 = 1/(1+exp(-u0))
A = rbinom(N,1,p0)

# survival time (ST)
Main = as.matrix(data.frame(x1,x2,x3,A))
betaF=c(0.1,0.3,0.3,0.4); gammaF=0.3
ST = exp(Main
RST = pmin(ST,rep(3,N))       # restriction time point = 3 year
C=runif(N,0,10)
FT = pmin(RST,C);summary(FT)
cen = ifelse(RST<=C,1,0)      # censoring indicator
event = as.numeric(I(cen==1));table(event)

# Cumulative cost (CC)
gammaC=0.1
beta = 100*exp(Main
YC = rgamma(N,shape=200,scale=beta);summary(YC)
CC = YC*FT;summary(CC)

# CE outcome
lambda=50000
Y = lambda*FT-CC;summary(Y)


##-------------------- Analysis -------------------------##
#library(R.utils);library(survival);library(rpart)
#sourceDirectory("C:/Users/cryst/Box Sync/A_Crystal's Thesis/1 - Optimization-Classification/2 - Simulations & implementation/Simulation Codes and Results/1-CEanalysisITRcode/CE_ITR_SourceCode")

dat = data.frame(x1,x2,x3,A,FT,event,cen,CC,Y)
muT.reg.exp = Reg.mu.exp(ST=FT, A=A, Xs=as.matrix(data.frame(x1,x3)), Ms=x2, data=dat)
muC.reg.norm = Reg.mu.norm(CC=CC, A=A, Xs=as.matrix(data.frame(x1,x3)), Ms=x2, data=dat)

# estimated CE outcome
muY.reg.norm = lambda*muT.reg.exp-muC.reg.norm

# estimated PS
est_ps = EstPS(A=A,Xs=cbind(x1,x3))

# create censoring weight
cen.wm = glm(event ~ A, family = "binomial");cen.w = predict(cen.wm, type = "response")

###------- calculate IPW estimates -------###
ITR.ipw=ITR_IPW(ST = FT, CC = CC, A = A, est_ps=est_ps, cen = event, est_cen = cen.w,lambda = lambda)
ipw.Y=ITR.ipw$delta.Y                     ## individual treatment effect on CE
ipw.ITRCE=ITR.ipw$ITR_ipwCE               ## estimated regime based on CE

# IPW contrasts based on CE
fit.ipw=rpart(ipw.ITRCE ~ x1+x2+x3, weights=ipw.Y, method="class",
              control = rpart.control(minsplit = 10, cp = 0.01,xval = 10))
g.ipw=as.numeric(predict(fit.ipw, type="class"))-1;table(g.ipw)
imp.g.ipw = fit.ipw$variable.importance;imp.g.ipw


## The function is currently defined as
function (x)
{
  }

CrystalXuR/ITRinCEA documentation built on May 7, 2019, 6:04 a.m.