# NOT RUN {
# Load data frame with (g, Y, X, Xtilde, C) values for 4,996 pools and list
# of Xtilde values where 25 subjects have replicates. Xtilde values are
# affected by processing error and measurement error. True log-OR = 0.5,
# sigsq = 1, sigsq_p = 0.5, sigsq_m = 0.1.
data(dat_p_ndfa)
dat <- dat_p_ndfa$dat
reps <- dat_p_ndfa$reps
# Unobservable truth estimator - use precise X's
fit.unobservable <- p_ndfa(
g = dat$g,
y = dat$numcases,
xtilde = dat$x,
c = dat$c,
errors = "neither"
)
fit.unobservable$estimates
# Naive estimator - use imprecise Xtilde's, but treat as precise
fit.naive <- p_ndfa(
g = dat$g,
y = dat$numcases,
xtilde = dat$xtilde,
c = dat$c,
errors = "neither"
)
fit.naive$estimates
# Corrected estimator - use Xtilde's and account for errors (not using
# replicates here)
# }
# NOT RUN {
fit.noreps <- p_ndfa(
g = dat$g,
y = dat$numcases,
xtilde = dat$xtilde,
c = dat$c,
errors = "both"
)
fit.noreps$estimates
# Corrected estimator - use Xtilde's including 25 replicates
fit.reps <- p_ndfa(
g = dat$g,
y = dat$numcases,
xtilde = reps,
c = dat$c,
errors = "both"
)
fit.reps$estimates
# Same as previous, but allowing for non-constant odds ratio.
fit.nonconstant <- p_ndfa(
g = dat$g,
y = dat$numcases,
xtilde = reps,
c = dat$c,
constant_or = FALSE,
errors = "both"
)
fit.nonconstant$estimates
# Visualize estimated log-OR vs. X based on previous model fit
p <- plot_ndfa(
estimates = fit.nonconstant$estimates,
varcov = fit.nonconstant$theta.var,
xrange = range(dat$xtilde[dat$g == 1]),
cvals = mean(dat$c / dat$g)
)
p
# Likelihood ratio test for H0: odds ratio is constant.
test.constantOR <- p_ndfa(
g = dat$g,
y = dat$numcases,
xtilde = reps,
c = dat$c,
constant_or = NULL,
errors = "both"
)
test.constantOR$lrt
# }
# NOT RUN {
# }
Run the code above in your browser using DataLab