GloCovReg {frechet} | R Documentation |
Global Fréchet regression of covariance matrices
Description
Global Fréchet regression of covariance matrices with Euclidean predictors.
Usage
GloCovReg(x, y = NULL, M = NULL, xout, optns = list())
Arguments
x |
An n by p matrix of predictors. |
y |
An n by l matrix, each row corresponds to an observation, l is the length of time points where the responses are observed. See 'metric' option in 'Details' for more details. |
M |
A q by q by n array (resp. a list of q by q matrices) where |
xout |
An m by p matrix of output predictor levels. |
optns |
A list of options control parameters specified by |
Details
Available control options are
- corrOut
Boolean indicating if output is shown as correlation or covariance matrix. Default is
FALSE
and corresponds to a covariance matrix.- metric
Metric type choice,
"frobenius"
,"power"
,"log_cholesky"
,"cholesky"
- default:"frobenius"
which corresponds to the power metric withalpha
equal to 1. For power (and Frobenius) metrics, eithery
orM
must be input;y
would overrideM
. For Cholesky and log-Cholesky metrics,M
must be input andy
does not apply.- alpha
The power parameter for the power metric. Default is 1 which corresponds to Frobenius metric.
Value
A covReg
object — a list containing the following fields:
xout |
An m by p matrix of output predictor levels. |
Mout |
A list of estimated conditional covariance or correlation matrices at |
optns |
A list containing the |
References
-
Petersen, A. and Müller, H.-G. (2019). Fréchet regression for random objects with Euclidean predictors. The Annals of Statistics, 47(2), 691–719.
-
Petersen, A., Deoni, S. and Müller, H.-G. (2019). Fréchet estimation of time-varying covariance matrices from sparse data, with application to the regional co-evolution of myelination in the developing brain. The Annals of Applied Statistics, 13(1), 393–419.
-
Lin, Z. (2019). Riemannian geometry of symmetric positive definite matrices via Cholesky decomposition. Siam. J. Matrix. Anal, A. 40, 1353–1370.
Examples
#Example y input
n=50 # sample size
t=seq(0,1,length.out=100) # length of data
x = matrix(runif(n),n)
theta1 = theta2 = array(0,n)
for(i in 1:n){
theta1[i] = rnorm(1,x[i],x[i]^2)
theta2[i] = rnorm(1,x[i]/2,(1-x[i])^2)
}
y = matrix(0,n,length(t))
phi1 = sqrt(3)*t
phi2 = sqrt(6/5)*(1-t/2)
y = theta1%*%t(phi1) + theta2 %*% t(phi2)
xout = matrix(c(0.25,0.5,0.75),3)
Cov_est=GloCovReg(x=x,y=y,xout=xout,optns=list(corrOut=FALSE,metric="power",alpha=3))
#Example M input
n=10 #sample size
m=5 # dimension of covariance matrices
M <- array(0,c(m,m,n))
for (i in 1:n){
y0=rnorm(m)
aux<-diag(m)+y0%*%t(y0)
M[,,i]<-aux
}
x=cbind(matrix(rnorm(n),n),matrix(rnorm(n),n)) #vector of predictor values
xout=cbind(runif(3),runif(3)) #output predictor levels
Cov_est=GloCovReg(x=x,M=M,xout=xout,optns=list(corrOut=FALSE,metric="power",alpha=3))