Learn R Programming

xLLiM (version 2.3)

sllim_inverse_map: Inverse Mapping from sllim parameters

Description

This function computes the prediction of a new response from the estimation of the SLLiM model, returned by the function sllim.

Usage

sllim_inverse_map(y,theta,verb=0)

Value

Returns a list with the following elements:

x_exp

An L x N matrix of predicted responses by posterior mean. If \(L_w\) latent factors are added to the model, the first \(Lt\) rows (\(1:Lt\)) are predictions of responses and rows \((L_t+1):L\) (recall that \(L=L_t+L_w\)) are estimations of latent factors.

alpha

Weights of the posterior Gaussian mixture model

Arguments

y

An D x N matrix of input observations with variables in rows and subjects on columns

theta

An object returned by the sllim function

verb

Verbosity: print out the progression of the algorithm. If verb=0, there is no print, if verb=1, the progression is printed out. Default is 0.

Author

Emeline Perthame (emeline.perthame@inria.fr), Florence Forbes (florence.forbes@inria.fr), Antoine Deleforge (antoine.deleforge@inria.fr)

Details

This function computes the prediction of a new response from the estimation of a SLLiM model, returned by the function sllim. Indeed, if the inverse conditional density \(p(X | Y)\) and the marginal density \(p(Y)\) are defined according to a SLLiM model (as described in xLLiM-package and sllim), the forward conditional density \(p(Y | X)\) can be deduced.

Under SLLiM model, it is recalled that the inverse conditional \(p(X | Y)\) is a mixture of Student regressions with parameters \((c_k,\Gamma_k,A_k,b_k,\Sigma_k)_{k=1}^K\) and \((\pi_k,\alpha_k)_{k=1}^K\). Interestingly, the forward conditional \(p(Y | X)\) is also a mixture of Student regressions with parameters \((c_k^*,\Gamma_k^*,A_k^*,b_k^*,\Sigma_k^*)_{k=1}^K\) and \((\pi_k,\alpha_k)_{k=1}^K\). These parameters have a closed-form expression depending only on \((c_k,\Gamma_k,A_k,b_k,\Sigma_k)_{k=1}^K\) and \((\pi_k,\alpha_k)_{k=1}^K\).

Finally, the forward density (of interest) has the following expression: $$p(Y | X=x) = \sum_k \frac{\pi_k S(x; c_k^*,\Gamma_k^*,\alpha_k,1)}{\sum_j \pi_j S(x; c_j^*,\Gamma_j^*,\alpha_j,1)} S(y; A_k^*x + b_k^*,\Sigma_k^*,\alpha_k^y,\gamma_k^y)$$ where \((\alpha_k^y,\gamma_k^y)\) determine the heaviness of the tail of the Generalized Student distribution. Note that \(\alpha_k^y= \alpha_k + D/2\) and \(\gamma_k^y= 1 + 1/2 \delta(x,c_k^*,\Gamma_k^*)\) where \(\delta\) is the Mahalanobis distance. A prediction of a new vector of responses is computed by: $$E (Y | X=x) = \sum_k \frac{\pi_k S(x; c_k^*,\Gamma_k^*,\alpha_k,1)}{\sum_j \pi_j S(x; c_j^*,\Gamma_j^*,\alpha_j,1)} (A_k^*x + b_k^*)$$ where \(x\) is a new vector of observed covariates.

References

[1] A. Deleforge, F. Forbes, and R. Horaud. High-dimensional regression with Gaussian mixtures and partially-latent response variables. Statistics and Computing, 25(5):893--911, 2015.

[2] E. Perthame, F. Forbes, and A. Deleforge. Inverse regression approach to robust nonlinear high-to-low dimensional mapping. Journal of Multivariate Analysis, 163(C):1--14, 2018. https://doi.org/10.1016/j.jmva.2017.09.009

See Also

xLLiM-package,sllim

Examples

Run this code
data(data.xllim)

## Setting 5 components in the model
K = 5

## the model can be initialized by running an EM algorithm for Gaussian Mixtures (EMGM)
r = emgm(data.xllim, init=K); 
## and then the sllim model is estimated
responses = data.xllim[1:2,] # 2 responses in rows and 100 observations in columns
covariates = data.xllim[3:52,] # 50 covariates in rows and 100 observations in columns
mod = sllim(responses,covariates,in_K=K,in_r=r);

# Prediction on a test dataset
data(data.xllim.test)
pred = sllim_inverse_map(data.xllim.test,mod)
## Predicted responses
print(pred$x_exp)

Run the code above in your browser using DataLab