Commit | Line | Data |
---|---|---|
1d3c1faa BA |
1 | # model SELECTion |
2 | ||
3 | This code is the applied part of the PhD thesis of [Emilie Devijver](http://www.math.u-psud.fr/~devijver/). | |
4 | ||
5 | ## Description | |
6 | ||
7 | The function selmix delivers a multivariate Gaussian mixture in regression model collection. | |
8 | According to the parameter estimation, we can compute classical model selection criterion, as BIC or AIC, or slope heuristic, using the CAPUSHE package. | |
9 | The methodology used is described in 'Model-Based Clustering for High-Dimensional Data. Application to Functional Data.', | |
10 | available at [this location](https://hal.archives-ouvertes.fr/hal-01060063) | |
11 | ||
12 | ## Arguments | |
13 | ||
14 | Regressors, denoted by X (of size n x p) and responses, denoted by Y (of size n x q) are must-have arguments. | |
15 | ||
16 | Optionally, we could add | |
17 | ||
18 | * gamma: weight power in the Lasso penalty (according to Stadler et al., $\gamma \in \{0,1/2,1\}$; | |
19 | * mini: the minimum number of iterations; | |
20 | * maxi: the maximum number of iterations; | |
21 | * tau: the threshold for stopping EM algorithm; | |
22 | * kmin and kmax: the bounds of interesting number of components, | |
23 | * rangmin and rangmax: the bounds of interesting rank values. | |
24 | ||
25 | ## Usage | |
26 | ||
27 | objet = selmix(X,Y) | |
28 | objet.run(index) | |
29 | ||
30 | For index=1, it computes the Lasso-MLE procedure. | |
31 | For index=2, it computes the Lasso-Rank procedure. | |
32 | ||
33 | /!\ Be careful to the current path /!\ | |
34 | ||
35 | ## Values | |
36 | ||
37 | * phiInit, rhoInit, piInit, gamInit: the initialization of the matrices phi, rho, pi and gamma, | |
38 | * gridLambda: grid of regularization parameters used to select relevant variables (if kmax-kmin=0, it is, if not, it is the last grid of regularization parameters) | |
39 | * A1,A2: indices of variables selected or not selected (matrices of size (p+1) x q x size(gridLambda)) | |
40 | * Phi,Rho,Pi: estimations of each parameter thanks to the procedure LassoMLE if compute index=1, and thanks to the procedure LassoRank if computed index=2. | |
41 | ||
42 | ||
43 | ## Example | |
44 | ||
45 | n=10; | |
46 | p=10; | |
47 | q=5; | |
48 | X=randn(n,p); | |
49 | Y=randn(n,q); | |
50 | ||
51 | objet=selmix(X,Y); | |
52 | objet.run(1); | |
53 | objet.run(2); |