Estimation of strimmer parameters in rcc

Issue #17 resolved
Kim-Anh Le Cao repo owner created an issue

Francois, est ce que je peux te demander de retrouver le fichier de Ignacio pour rcc sur la dropbox et inclure les estimations de Strimmer pour les parametres?

Avec Ignacio, j ai discute de l'option mettre l estimation des parametres facon strimmer dans tune.rcc ou bien rcc direct. elon sa reponse (ci dessous) c'est pas si simple, mais je me demande si on pourrait pas en interne ds tune.rcc appeler rcc. A discuter a la prochaine reunion, mais ca serait bien de mettre les fichiers bien carres deja (cad faire une branche et s'assurer que ca passe).

*Salut Kim-Anh,

La réponse a tes questions,

Mais alors ou est le code qui permet justement de calculer ces parametres
de regularisation?

Le code est intégré dans la fonction rcc, y a l'argument method = "ridge" ou "shrinkage". Si "ridge" il faut lui donner lambda1 et lambda2 et par conséquent la fonction tune.rcc pour régler ces paramètres, si "shrinkage" la fonction calcule les paramètres par la méthode de Strimmer en interne (pas besoin de tuning).

Est ce que cela ne devrait pas etre justement dans un tune.rcc( avec
argument method = ’strimmer’) pour avoir direct les parametres lambda en
sortie?

Ce n'est pas convenable car la méthode de régularisation de Strimer est un peu plus compliqué, en fait il y a plusieurs paramètres à gérer (histoire d’assurer la positivité définition de la grande matrice de covariance [Cxx Cxy ; Cyx Cyy]).

Ignacio

*

Comments (2)

  1. Kim-Anh Le Cao reporter

    Salut Ignacio, j ai regarde ton code et voila qq commentaires:
    - ou sont cachees les fonctions cov.shrink et var.shrink?

    Nous avons regarde la fonction tau.estimate qui est dans RGCCA et SHIP. Pourquoi ne pas utiliser celle la?
    Je vais tenter de la re introduire pour l update mixOmics imminente avec juste une fonction separee pour l instant.

    tau.estimate
    function (x)
    {
    if (is.matrix(x) == TRUE && is.numeric(x) == FALSE)
    stop("The data matrix must be numeric!")
    p <- NCOL(x)
    n <- NROW(x)
    covm <- cov(x)
    corm <- cor(x)
    xs <- scale(x, center = TRUE, scale = TRUE)
    v <- (n/((n - 1)^3)) * (crossprod(xs^2) - 1/n * (crossprod(xs))^2)
    diag(v) <- 0
    m <- matrix(rep(apply(xs^2, 2, mean), p), p, p)
    I <- diag(NCOL(x))
    d <- (corm - I)^2
    tau <- (sum(v))/sum(d)
    tau <- max(min(tau, 1), 0)
    return(tau)
    }
    <environment: namespace:RGCCA>

  2. Kim-Anh Le Cao reporter

    Resolved as indicated above using the function faut.estimate from RGCCA (named tau.estim in mixOmics)

  3. Log in to comment