FMA.concurrent.CV: Functional mediation analysis under concurrent regression...

Description Usage Arguments Details Value Author(s) References Examples

Description

This function performs functional mediation regression under the concurrent model. Tuning parameter is chosen based on cross-validation.

Usage

1
2
3
FMA.concurrent.CV(Z, M, Y, intercept = TRUE, basis = NULL, Ld2.basis = NULL, 
    basis.type = c("fourier"), nbasis = 3, timeinv = c(0, 1), timegrids = NULL, 
    lambda = NULL, nfolds = 5)

Arguments

Z

a data matrix. Z is the treatment trajectory in the mediation analysis. The number of rows is the number of subjects, and the number of columns is the number of measured time points.

M

a data matrix. M is the mediator trajectory in the mediation analysis. The number of rows is the number of subjects, and the number of columns is the number of measured time points.

Y

a data matrix. Y is the outcome trajectory in the mediation analysis. The number of rows is the number of subjects, and the number of columns is the number of measured time points.

intercept

a logic variable. Default is TRUE, an intercept term is included in the regression model.

basis

a data matrix. Basis function used in the functional data analysis. The number of columns is the number of basis function considered. If basis = NULL, Fourier basis functions will be generated.

Ld2.basis

a data matrix. The second derivative of the basis function. The number of columns is the number of basis function considered. If Ld2.basis = NULL, the second derivative of Fourier basis functions will be generated.

basis.type

a character of basis function type. Default is Fourier basis (basis.type = "fourier").

nbasis

an integer, the number of basis function included. If basis is provided, this argument will be ignored.

timeinv

a numeric vector of length two, the time interval considered in the analysis. Default is (0,1).

timegrids

a numeric vector of time grids of measurement. If timegrids = NULL, it is assumed the between measurement time interval is constant.

lambda

a numeric vector of tuning parameter values.

nfolds

a number gives the number of folds in cross-validation.

Details

The concurrent mediation model is

M(t)=Z(t)α(t)+ε_{1}(t),

Y(t)=Z(t)γ(t)+M(t)β(t)+ε_{2}(t),

where α(t), β(t), γ(t) are coefficient curves. The model coefficient curves are estimated by minimizing the penalized L_{2}-loss. Tuning parameter λ controls the smoothness of the estimated curves, and is chosen by cross-validation.

Value

basis

the basis functions used in the analysis.

M

a list of output for the mediator model

coefficient: the estimated coefficient with respect to the basis function

curve: the estimated coefficient curve

fitted: the fitted value of M

lambda: the chosen λ value

Y

a list of output for the outcome model

coefficient: the estimated coefficient with respect to the basis function

curve: the estimated coefficient curve

fitted: the fitted value of Y

lambda: the chosen λ value

IE

a list of output for the indirect effect comparing Z_{1}(t)=1 versus Z_{0}(t)=0

coefficients: the coefficient with respect to the basis function

curve: the estimated causal curve

DE

a list of output for the direct effect comparing Z_{1}(t)=1 versus Z_{0}(t)=0

coefficients: the coefficient with respect to the basis function

curve: the estimated causal curve

Author(s)

Yi Zhao, Johns Hopkins University, zhaoyi1026@gmail.com;

Xi Luo, Brown University xi.rossi.luo@gmail.com;

Martin Lindquist, Johns Hopkins University, mal2053@gmail.com;

Brian Caffo, Johns Hopkins University, bcaffo@gmail.com

References

Zhao et al. (2017). Functional Mediation Analysis with an Application to Functional Magnetic Resonance Imaging Data. arXiv preprint arXiv:1805.06923.

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
##################################################
# Concurrent functional mediation model
data(env.concurrent)
Z<-get("Z",env.concurrent)
M<-get("M",env.concurrent)
Y<-get("Y",env.concurrent)


# consider Fourier basis
fit<-FMA.concurrent.CV(Z,M,Y,intercept=FALSE,timeinv=c(0,300))

# estimate of alpha
plot(fit$M$curve[1,],type="l",lwd=5)
lines(get("alpha",env.concurrent),lty=2,lwd=2,col=2)

# estimate of gamma
plot(fit$Y$curve[1,],type="l",lwd=5)
lines(get("gamma",env.concurrent),lty=2,lwd=2,col=2)

# estimate of beta
plot(fit$Y$curve[2,],type="l",lwd=5)
lines(get("beta",env.concurrent),lty=2,lwd=2,col=2)

# estimate of causal curves
plot(fit$IE$curve,type="l",lwd=5)
plot(fit$DE$curve,type="l",lwd=5)

##################################################

cfma documentation built on May 2, 2019, 2:07 a.m.