Corrected confidence bands using functional principal components
Uses iterated expectation and variances to obtain corrected estimates and inference for functional expansions.
ccb.fpc( Y, argvals = NULL, nbasis = 10, pve = 0.99, n.boot = 100, simul = FALSE, sim.alpha = 0.95 )
Y |
matrix of observed functions for which estimates and covariance matrices are desired. |
argvals |
numeric; function argument. |
nbasis |
number of splines used in the estimation of the mean function and the bivariate smoothing of the covariance matrix |
pve |
proportion of variance explained used to choose the number of principal components to be included in the expansion. |
n.boot |
number of bootstrap iterations used to estimate the distribution of FPC decomposition objects. |
simul |
TRUE or FALSE, indicating whether critical values for simultaneous confidence intervals should be estimated |
sim.alpha |
alpha level of the simultaneous intervals. |
To obtain corrected curve estimates and variances, this function accounts for uncertainty in FPC decomposition objects. Observed curves are resampled, and a FPC decomposition for each sample is constructed. A mixed-model framework is used to estimate curves and variances conditional on each decomposition, and iterated expectation and variances combines both model-based and decomposition-based uncertainty.
Yhat |
a matrix whose rows are the estimates of the curves in
|
Yhat.boot |
a list containing the estimated curves within each bootstrap iteration. |
diag.var |
diagonal elements of the covariance matrices for each estimated curve. |
VarMats |
a list
containing the estimated covariance matrices for each curve in |
crit.val |
estimated critical values for constructing simultaneous confidence intervals. |
Jeff Goldsmith jeff.goldsmith@columbia.edu
Goldsmith, J., Greven, S., and Crainiceanu, C. (2013). Corrected confidence bands for functional data using principal components. Biometrics, 69(1), 41–51.
## Not run: data(cd4) # obtain a subsample of the data with 25 subjects set.seed(1236) sample = sample(1:dim(cd4)[1], 25) Y.sub = cd4[sample,] # obtain a mixed-model based FPCA decomposition Fit.MM = fpca.sc(Y.sub, var = TRUE, simul = TRUE) # use iterated variance to obtain curve estimates and variances Fit.IV = ccb.fpc(Y.sub, n.boot = 25, simul = TRUE) # for one subject, examine curve estimates, pointwise and simultaneous itervals EX = 2 EX.IV = cbind(Fit.IV$Yhat[EX,], Fit.IV$Yhat[EX,] + 1.96 * sqrt(Fit.IV$diag.var[EX,]), Fit.IV$Yhat[EX,] - 1.96 * sqrt(Fit.IV$diag.var[EX,]), Fit.IV$Yhat[EX,] + Fit.IV$crit.val[EX] * sqrt(Fit.IV$diag.var[EX,]), Fit.IV$Yhat[EX,] - Fit.IV$crit.val[EX] * sqrt(Fit.IV$diag.var[EX,])) EX.MM = cbind(Fit.MM$Yhat[EX,], Fit.MM$Yhat[EX,] + 1.96 * sqrt(Fit.MM$diag.var[EX,]), Fit.MM$Yhat[EX,] - 1.96 * sqrt(Fit.MM$diag.var[EX,]), Fit.MM$Yhat[EX,] + Fit.MM$crit.val[EX] * sqrt(Fit.MM$diag.var[EX,]), Fit.MM$Yhat[EX,] - Fit.MM$crit.val[EX] * sqrt(Fit.MM$diag.var[EX,])) # plot data for one subject, with curve and interval estimates d = as.numeric(colnames(cd4)) plot(d[which(!is.na(Y.sub[EX,]))], Y.sub[EX,which(!is.na(Y.sub[EX,]))], type = 'o', pch = 19, cex=.75, ylim = range(0, 3400), xlim = range(d), xlab = "Months since seroconversion", lwd = 1.2, ylab = "Total CD4 Cell Count", main = "Est. & CI - Sampled Data") matpoints(d, EX.IV, col = 2, type = 'l', lwd = c(2, 1, 1, 1, 1), lty = c(1,1,1,2,2)) matpoints(d, EX.MM, col = 4, type = 'l', lwd = c(2, 1, 1, 1, 1), lty = c(1,1,1,2,2)) legend("topright", c("IV Est", "IV PW Int", "IV Simul Int", expression(paste("MM - ", hat(theta), " Est", sep = "")), expression(paste("MM - ", hat(theta), " PW Int", sep = "")), expression(paste("MM - ", hat(theta), " Simul Int", sep = ""))), lty=c(1,1,2,1,1,2), lwd = c(2.5,.75,.75,2.5,.75,.75), col = c("red","red","red","blue","blue","blue")) ## End(Not run)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.