data(cd4)
Fit.MM = fpca.sc(cd4, var = TRUE, simul = TRUE)
# for one subject, examine curve estimate, pointwise and simultaneous itervals
EX = 1
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,]))
par(mfrow=c(1,3))
# plot data for one subject, with curve and interval estimates
d = as.numeric(colnames(cd4))
plot(d[which(!is.na(cd4[EX,]))], cd4[EX,which(!is.na(cd4[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.MM, col = 4, type = 'l', lwd = c(2, 1, 1, 1, 1), lty = c(1,1,1,2,2))
# plot estimated mean function
plot(d, Fit.MM$mu, type = 'l', xlab = "Months since seroconversion",
ylim = range(0, 3400), ylab = "Total CD4 Cell Count", main = "Est. Mean Function")
# plot the first estimated basis function
plot(d, Fit.MM$efunctions[,1], type = 'l', xlab = "Months since seroconversion",
ylab = "Total CD4 Cell Count", main = "First Est. Basis Function")
# input a dataframe instead of a matrix
library(ggplot2)
nid <- 20
nobs <- sample(10:20, nid, rep=TRUE)
ydata <- data.frame(
.id = rep(1:nid, nobs),
.index = round(runif(sum(nobs), 0, 1), 3))
ydata$.value <- unlist(tapply(ydata$.index,
ydata$.id,
function(x)
runif(1, -.5, .5) +
dbeta(x, runif(1, 6, 8), runif(1, 3, 5))
)
)
ggplot(ydata,aes(x=.index, y=.value)) +
geom_line() + geom_point() + facet_wrap(~.id)
Fit.MM = fpca.sc(ydata=ydata, var = TRUE, simul = FALSE)
matplot(efunctions[,1:4])
Run the code above in your browser using DataLab