diff --git a/index.html b/index.html index 821a1c6..f28087f 100644 --- a/index.html +++ b/index.html @@ -224,14 +224,14 @@ window.Quarto = {
Date de publication
-

10 février 2026

+

17 février 2026

Modifié
-

10 février 2026

+

17 février 2026

@@ -263,7 +263,7 @@ Agenda

Journaux

-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+

Baldock iid

diff --git a/search.json b/search.json index c015c48..5982a46 100644 --- a/search.json +++ b/search.json @@ -480,14 +480,14 @@ "href": "suivi/2026-7/2026-7.html", "title": "Bilan semaine 7 2026 : 09 février - 13 février", "section": "", - "text": "Petites opérations sur les OTUs (regarder la matrice dans les yeux):\n\nRanger les OTUs par variances (i.e. sd(OTU_j))\n\nHMC sur-dispersés (au-dessus bissectrice)\nEnterotype phyloseq sous-disp\n\nRegarder la proportion de 1. taxon rares, 2. zeros.\nFaire des coupures selon niveaux taxonomiques et regarder si \\mathbb{V}_{\\text{intra}} \\approx \\mathbb{V}_{\\text{inter}}\nBonus: faire ça dans qmd et voir si forge permet gitlab pages\n\n✅ Avec blockmodels, codé un LBM-Séquentiel. Des différences contrastées…\n\nTODO Ajouter lien vers notebooks résultats\n\nRelire Peixoto (2014)\n\nRegarder les gens qui citent les travaux de Peixoto\n\n⌛ En cours Implémentation blockmodels LBM avec covariables sur proportions (voir Équation 1)\n\n\n\n\n\n\n\nIdées\n\n\n\n\nTravailler sur Fungus Tree network\n⌛Demander à PB et SD, ils regardent : Comparaison covar prop avec GREMLINS multipartite sur (log(dist_phylo), fungus-tree)\nTrouver manière de faire un compromis : \\ell(Y,Z,W;\\theta) - \\lambda d(C(W),C_0) avec C(W) le clustering seulement sur la base de la structure LBM et C_0 le clustering de l’arbre. Problème d est une distance entre partition, comment optimiser dessus ?\n⌛ Mise à jour partielle des \\tau : ce qui pose soucis c’est les gros calculs matriciels (c’est vraiment vrai?). Donc sorte de “stochastic” VEM où on update seulement une partie des \\tau à chaque itération. Et échantillonnage stratifié selon l’arbre ?\n\n⌛ Simulations avec n_2 croissant lancée sur Migale\nRéimplementé VE Bernoulli dans colSBM pour Bipartite et début implémentation Stochastic VE. En fait le problème des calculs matriciels Y\\times(\\tau^{(1)})^{\\top} (n_2^2) donc besoin de sous-échantillonner les noeuds de l’autre dimension à mettre à jour.\n\n\n\n\n\nClustering unipartite j’ai cassé une fonction de distance à vérifier et réparer\nCodes pour le papier :\n\nNettoyer les scripts\nFaire un joli README\n❓Faire des notebooks\n\nRéussir à reproduire résultat de Abramov et al. (s. d.)\nMaitriser graphtools de Peixoto pour essayer d’utiliser l’arbre taxonomique sur graphe de cooccurence inférer par SparCC\nMaitriser SparCC\n👶 (délégué à Mona) Clustering sur Doré :\n\nAjouter Chao1 et 2, colonne par colonne (site par site), et faire indice moyen et la variance.\n\n\n\n\n\n✅ En préparation d’un fichier (réu avec JBL à 10h45 le 06/02/2026). Possible en modifiant lbm.h et sbm.h d’obtenir un modèle utilisant les covariables de groupes (de blocs ?). Car besoin de changer membership.m_step() pour mettre à jour \\pmb\\pi et \\pmb{\\rho} en utilisant les \\pmb B^{\\top}\\pmb X et en renvoyant l’ELBO adaptée.\n\n😄 Avantage s’inscrit directement dans blockmodels et permet d’avoir toutes les lois d’émissions déjà codées et compatibles !\n😢 Besoin de réfléchir a une bonne implémentation.\n\n\n\n\n\\begin{align*}\n\\pmb{\\beta}_{r}& = \\begin{pmatrix}\n \\beta_{r,0}\\\\\n \\vdots\\\\\n \\beta_{r,p}\n\\end{pmatrix}, & X_{j,\\bullet} = \\begin{pmatrix}\n 1 = x_{0,j} & x_{1,j} & \\dots & x_{p,j}\n\\end{pmatrix}\\\\\nX_{j,\\bullet} \\pmb{\\beta}_r& = \\beta_{r,0} x_{0,j} + \\beta_{r,1} x_{1,j} + \\dots + \\beta_{r,p} x_{p,j} & \\approx \\log(\\rho_r^j) \\\\\nB & = \\begin{pmatrix}\n\\pmb{\\beta}_1 \\dots \\pmb{\\beta}_r \\dots \\pmb{\\beta}_R\n\\end{pmatrix} & X_{j,\\bullet}B \\approx \\log(\\pmb{\\rho}^j) \\\\\nX B & \\approx \\log((\\pmb{\\rho}^j)_{j=1,\\dots,n_2}) = \\log(\\pmb{\\Rho})\\\\\n\\end{align*} Et pour les probas en lignes du LBM \\begin{align*}\n\\pmb{\\gamma}_{q}& = \\begin{pmatrix}\n \\gamma_{q,0}\\\\\n \\vdots\\\\\n \\gamma_{q,d}\n\\end{pmatrix}, & V_{i,\\bullet} = \\begin{pmatrix}\n 1 = v_{0,i} & v_{1,i} & \\dots & v_{d,i}\n\\end{pmatrix}\\\\\nV_{i,\\bullet} \\pmb{\\gamma}_q & = \\gamma_{q,0} v_{0,i} + \\gamma_{q,1} v_{1,i} + \\dots + \\gamma_{q,d} v_{d,i} & \\approx \\log(\\pi_q^i) \\\\\n\\Gamma & = \\begin{pmatrix}\n\\gamma_1 \\dots \\pmb{\\gamma}_q \\dots \\pmb{\\gamma}_Q\n\\end{pmatrix} & V_{i,\\bullet} \\Gamma \\approx \\log(\\pmb{\\pi}^i) \\\\\nV \\Gamma & \\approx \\log((\\pmb{\\pi}^i)_{i=1,\\dots,n_1}) = \\log(\\pmb{\\Pi})\n\n\n\\end{align*}\n\n\n\nSoient B,B^{\\prime} avec B_{\\bullet,R} = B^{\\prime}_{\\bullet,R} = \\vec{0}_{p+1} et X de rang plein tel que X^{\\top}X soit inversible. Soit j=1,\\dots,n_2 alors \\begin{align*}\n&\\sigma(XB)_{j} = \\sigma(XB^{\\prime})_{j}\\\\\n&\\implies \\exists c \\in \\mathbb{R}, X_{j,\\bullet}B = X_{j,\\bullet}B^{\\prime} + c \\\\\n&\\implies \\exists c \\in \\mathbb{R}, \\begin{pmatrix} X_{j,\\bullet} \\beta_1 & \\dots & X_{j,\\bullet} \\beta_{R-1} & \\vec{0}_{p+1} \\end{pmatrix} = X_{j,\\bullet}B^{\\prime} + c\n\n\\end{align*}\nSoient X : (p+1, n_2), B : (p+1, R) avec X de plein rang, i.e., rg(X) = p+1\\implies XX^{\\top} est inversible.\nOn veut qu’il existe B^{\\prime} et B avec B_{:,R} = \\vec 0_p, par les propriétés de la fonction softmax, \\sigma(.) :\n\\begin{align*}\n& \\sigma(B^{\\top}X) = \\sigma({B^{\\prime}}^{\\top}X)\\\\\n& \\iff \\exists C \\in \\mathbb{R}^{n_2}, B^{\\top} X = {B^{\\prime}}^{\\top} X + \\pmb{1}_R C^{\\top}\\\\\n& \\iff \\exists C \\in \\mathbb{R}^{n_2}, B^{\\top} X - \\pmb{1}_R C^{\\top} = {B^{\\prime}}^{\\top} X\\\\\n& \\iff \\exists C \\in \\mathbb{R}^{n_2}, (B^{\\top} X - \\pmb{1}_R C^{\\top}) X^{\\top} = {B^{\\prime}}^{\\top} X X^{\\top}\\\\\n& \\iff \\exists C \\in \\mathbb{R}^{n_2}, (B^{\\top} X - \\pmb{1}_R C^{\\top}) X^{\\top}(X X^{\\top})^{-1} = {B^{\\prime}}^{\\top}\\\\\n\n\n\\end{align*}\n\n\n\nToujours modèle LBM mais avec probas d’appartenance pour les colonnes variables:\n\\begin{align*}\nZ_i &\\sim \\mathcal{M}(1; \\pi_1, \\dots, \\pi_Q), \\sum_{q=1}^{Q} \\pi_q = 1\\\\\nW_j &\\sim \\mathcal{M}(1; \\rho_1^j, \\dots, \\rho_R^j), \\sum_{r=1}^{R} \\rho_r^j = 1\\\\\nY_{i,j}&\\mid Z_i = q, W_j = r \\sim \\mathcal{F}(\\alpha_{qr})\n\\end{align*}\nInférence variationnelle donc \\ell(Y;\\pmb{\\theta}) \\geq \\mathcal{J}(\\mathcal{R},\\pmb{\\theta}) avec\n\n\\mathcal{J}(\\mathcal{R},\\pmb{\\theta})= \\sum_{i = 1}^{n_1}\\sum_{j=1}^{n_2}\\sum_{q \\in \\mathcal{Q}_1} \\sum_{r \\in \\mathcal{Q}_2} \\tau_{iq}^{1} \\tau_{jr}^{2} \\log f(Y_{ij}; \\alpha_{qr})\n + \\sum_{i=1}^{n_1} \\sum_{q \\in \\mathcal{Q}_1} \\tau_{iq}^{1} \\log \\pi_{\\color{black}q} + \\sum_{j=1}^{n_2} \\sum_{r \\in \\mathcal{Q}_2} \\tau_{jr}^{2} \\log \\rho_{\\color{black}r} \\\\\n - \\sum_{i=1}^{n_1} \\tau_{iq}^{1} \\log \\tau_{iq}^{1} - \\sum_{j=1}^{n_2} \\tau_{jr}^{2} \\log \\tau_{jr}^{2}\n\n\n\nAvec \\rho_r^j = \\frac{\\exp{\\beta_r X_j}}{\\sum_{s=1}^{R} \\exp{\\beta_s X_j}} = \\sigma(\\pmb{\\beta} \\pmb{X})_{r,j}, où \\sigma désigne le softmax. Mais il y a besoin de poser une contrainte sur l’un des (\\beta_r)_{r=1,\\dots,R}, ici \\beta_R = 0.\nLa partie pertinente de l’ELBO devient: \n P((\\beta_r)_{r=1,\\dots,R}, (X_j)_{j=1,\\dots,n_2}, (\\tau_{jr})_{\\substack{j=1,\\dots,n_2\\\\r=1,\\dots,R}} ) = \\sum_{j=1}^{n_2} \\sum_{r=1}^{R} [\\tau_{jr} (\\beta_r X_j - \\log (\\sum_{s=1}^{R} \\exp{\\beta_s X_j}))]\n\\tag{1}\nEt on obtient la dérivée partielle par rapport à \\beta_t comme: \\begin{align*}\n\\dfrac{\\partial P}{\\partial \\beta_t}&((\\beta_r)_{r=1,\\dots,R}, (X_j)_{j=1,\\dots,n_2}, (\\tau_{jr})_{\\substack{j=1,\\dots,n_2\\\\r=1,\\dots,R}} ) = \\sum_{j=1}^{n_2} \\biggl[ \\tau_{jt} X_j - \\frac{X_j \\exp{\\beta_t X_j}}{\\sum_{s=1}^{R} \\exp{\\beta_s X_j}} \\biggr]\\\\\n& = \\sum_{j=1}^{n_2} \\biggl[\\bigl(\\tau_{jt} - \\sigma(\\pmb{\\beta} \\pmb{X})_{t,j}\\bigr) X_j\\biggr] = \\sum_{j=1}^{n_2} \\biggl[\\bigl(\\tau_{jt} - \\rho_t^j \\bigr) X_j\\biggr]\n\\end{align*}\n\n\n\n\n\nLire article multi-niveaux Saint-Clair\n🆕 🔎 Trouver des papiers:\n\nLBM Negative Binomial\nNetwork inference through sample comparison\n\nIdée des groupes sur la base de distance phylogénétique:\n\nEn train de comprendre les distances que phyloseq permet de calculer sur notre exemple\nEn train de lire sur Principle coordinate analysis : https://openplantpathology.github.io/OPP_Workshop_Multivariate/2-MV_PCO.html\nParametric t-SNE pour avoir une unique représentation latente (inconvénient utilise du Deep Learning)\nLire Papier UniFrac\n\n\n\n\n\n\neasy16s : se renseigner sur\n\n\\alpha, \\beta diversité\nHeatmap\n\nRegarder SPARTA Rennes\nEcrire et étudier les modèles pour différents niveaux taxonomiques.\n🆕 Regarder NetComi\n🆕 Regarder OneNet car aggrégation plus robuste\n🆕 Réfléchir sens d’aggréger les données ou de les diviser\n\n\n\n\n\nLancer colBiSBM sur OTU\\times Sample → problème du chargement en mémoire des données à voir\nLancer colSBM sur OTU\\times OTU\nTabNet pratiquer les exercices\n🆕 SparCC à différent niveaux\n🆕 SBM à différent niveaux\n🆕⌛ Tree-PLN à différents niveaux\n\n\n\n\nPlus sur le temps long, à regarder\n\nGT causalité\nDaria Bystrova lire présentation Bystrova (s. d.) (Meek rules, V-structure)" + "text": "Petites opérations sur les OTUs (regarder la matrice dans les yeux):\n\nRanger les OTUs par variances (i.e. sd(OTU_j))\n\nHMC sur-dispersés (au-dessus bissectrice)\nEnterotype phyloseq sous-disp\n\nRegarder la proportion de 1. taxon rares, 2. zeros.\nFaire des coupures selon niveaux taxonomiques et regarder si \\mathbb{V}_{\\text{intra}} \\approx \\mathbb{V}_{\\text{inter}}\nBonus: faire ça dans qmd et voir si forge permet gitlab pages\n\n✅ Avec blockmodels, codé un LBM-Séquentiel. Des différences contrastées…\n\nTODO Ajouter lien vers notebooks résultats\n\nRelire Peixoto (2014)\n\nRegarder les gens qui citent les travaux de Peixoto\n\n⌛ En cours Implémentation blockmodels LBM avec covariables sur proportions (voir Équation 1)\n\n\n\n\n\n\n\nIdées\n\n\n\n\nTravailler sur Fungus Tree network\n⌛Demander à PB et SD, ils regardent : Comparaison covar prop avec GREMLINS multipartite sur (log(dist_phylo), fungus-tree)\nTrouver manière de faire un compromis : \\ell(Y,Z,W;\\theta) - \\lambda d(C(W),C_0) avec C(W) le clustering seulement sur la base de la structure LBM et C_0 le clustering de l’arbre. Problème d est une distance entre partition, comment optimiser dessus ?\n⌛ Mise à jour partielle des \\tau : ce qui pose soucis c’est les gros calculs matriciels (c’est vraiment vrai?). Donc sorte de “stochastic” VEM où on update seulement une partie des \\tau à chaque itération. Et échantillonnage stratifié selon l’arbre ?\n\n⌛ Simulations avec n_2 croissant lancée sur Migale\nRéimplementé VE Bernoulli dans colSBM pour Bipartite et début implémentation Stochastic VE. En fait le problème des calculs matriciels Y\\times(\\tau^{(1)})^{\\top} (n_2^2) donc besoin de sous-échantillonner les noeuds de l’autre dimension à mettre à jour.\n\n\n\n\n\nClustering unipartite j’ai cassé une fonction de distance à vérifier et réparer\nCodes pour le papier :\n\nNettoyer les scripts\nFaire un joli README\n❓Faire des notebooks\n\nRéussir à reproduire résultat de Abramov et al. (s. d.)\nMaitriser graphtools de Peixoto pour essayer d’utiliser l’arbre taxonomique sur graphe de cooccurence inférer par SparCC\nMaitriser SparCC\n👶 (délégué à Mona) Clustering sur Doré :\n\nAjouter Chao1 et 2, colonne par colonne (site par site), et faire indice moyen et la variance.\n\n\n\n\n\n✅ En préparation d’un fichier (réu avec JBL à 10h45 le 06/02/2026). Possible en modifiant lbm.h et sbm.h d’obtenir un modèle utilisant les covariables de groupes (de blocs ?). Car besoin de changer membership.m_step() pour mettre à jour \\pmb\\pi et \\pmb{\\rho} en utilisant les \\pmb B^{\\top}\\pmb X et en renvoyant l’ELBO adaptée.\n\n😄 Avantage s’inscrit directement dans blockmodels et permet d’avoir toutes les lois d’émissions déjà codées et compatibles !\n😢 Besoin de réfléchir a une bonne implémentation.\n\n\n\n\n\\begin{align*}\n\\pmb{\\beta}_{r}& = \\begin{pmatrix}\n \\beta_{r,0}\\\\\n \\vdots\\\\\n \\beta_{r,p}\n\\end{pmatrix}, & X_{j,\\bullet} = \\begin{pmatrix}\n 1 = x_{0,j} & x_{1,j} & \\dots & x_{p,j}\n\\end{pmatrix}\\\\\nX_{j,\\bullet} \\pmb{\\beta}_r& = \\beta_{r,0} x_{0,j} + \\beta_{r,1} x_{1,j} + \\dots + \\beta_{r,p} x_{p,j} & \\approx \\log(\\rho_r^j) \\\\\nB & = \\begin{pmatrix}\n\\pmb{\\beta}_1 \\dots \\pmb{\\beta}_r \\dots \\pmb{\\beta}_R\n\\end{pmatrix} & X_{j,\\bullet}B \\approx \\log(\\pmb{\\rho}^j) \\\\\nX B & \\approx \\log((\\pmb{\\rho}^j)_{j=1,\\dots,n_2}) = \\log(\\pmb{\\Rho})\\\\\n\\end{align*} Et pour les probas en lignes du LBM \\begin{align*}\n\\pmb{\\gamma}_{q}& = \\begin{pmatrix}\n \\gamma_{q,0}\\\\\n \\vdots\\\\\n \\gamma_{q,d}\n\\end{pmatrix}, & V_{i,\\bullet} = \\begin{pmatrix}\n 1 = v_{0,i} & v_{1,i} & \\dots & v_{d,i}\n\\end{pmatrix}\\\\\nV_{i,\\bullet} \\pmb{\\gamma}_q & = \\gamma_{q,0} v_{0,i} + \\gamma_{q,1} v_{1,i} + \\dots + \\gamma_{q,d} v_{d,i} & \\approx \\log(\\pi_q^i) \\\\\n\\Gamma & = \\begin{pmatrix}\n\\gamma_1 \\dots \\pmb{\\gamma}_q \\dots \\pmb{\\gamma}_Q\n\\end{pmatrix} & V_{i,\\bullet} \\Gamma \\approx \\log(\\pmb{\\pi}^i) \\\\\nV \\Gamma & \\approx \\log((\\pmb{\\pi}^i)_{i=1,\\dots,n_1}) = \\log(\\pmb{\\Pi})\n\n\n\\end{align*}\n\n\n\nSoient B,B^{\\prime} avec B_{\\bullet,R} = B^{\\prime}_{\\bullet,R} = \\vec{0}_{p+1} et X de rang plein tel que X^{\\top}X soit inversible pas nécessaire.\n\\begin{align*}\n&\\sigma(XB) = \\sigma(XB^{\\prime})\\\\\n&\\implies \\exists C = \\begin{pmatrix}c_1 \\\\ \\vdots \\\\ c_j \\\\ \\vdots \\\\ c_{n_2}\\end{pmatrix} \\in \\mathbb{R}^{n_2}, X B = X B^{\\prime} + C \\pmb{1}_{R}^{\\top} \\\\\n&\\implies \\exists C \\in \\mathbb{R}^{n_2}, (X B)_{j,r} = (X B^{\\prime})_{j,r} + (C \\pmb{1}_{R}^{\\top})_{j,r} \\\\\n&\\implies \\exists C \\in \\mathbb{R}^{n_2}, \\forall r\\in\\{1\\dots,R\\}, \\forall j\\in\\{1,\\dots,n_2\\}, \\sum_{k=1}^{p+1} x_{j,k} \\beta_{k,r} = \\sum_{k=1}^{p+1} x_{j,k} \\beta^{\\prime}_{k,r} + c_j\\\\\n&\\implies \\exists C \\in \\mathbb{R}^{n_2}, \\forall j\\in\\{1,\\dots,n_2\\}, \\sum_{k=1}^{p+1} x_{j,k} \\beta_{k,R} = \\sum_{k=1}^{p+1} x_{j,k} \\beta^{\\prime}_{k,R} + c_j \\\\\n&\\implies \\exists C \\in \\mathbb{R}^{n_2}, \\forall j\\in\\{1,\\dots,n_2\\}, \\sum_{k=1}^{p+1} x_{j,k} \\times 0 = \\sum_{k=1}^{p+1} x_{j,k} \\times 0 + c_j \\\\\n&\\implies \\exists C \\in \\mathbb{R}^{n_2}, \\forall j\\in\\{1,\\dots,n_2\\}, 0 = 0 + c_j \\implies c_j = 0 \\\\\n&\\implies C = \\begin{pmatrix} 0 \\\\ \\vdots \\\\ 0 \\end{pmatrix} \\text{and thus}, B = B^{\\prime} \\\\\n\n\\end{align*}\n\n\n\nToujours modèle LBM mais avec probas d’appartenance pour les colonnes variables:\n\\begin{align*}\nZ_i &\\sim \\mathcal{M}(1; \\pi_1, \\dots, \\pi_Q), \\sum_{q=1}^{Q} \\pi_q = 1\\\\\nW_j &\\sim \\mathcal{M}(1; \\rho_1^j, \\dots, \\rho_R^j), \\sum_{r=1}^{R} \\rho_r^j = 1\\\\\nY_{i,j}&\\mid Z_i = q, W_j = r \\sim \\mathcal{F}(\\alpha_{qr})\n\\end{align*}\nInférence variationnelle donc \\ell(Y;\\pmb{\\theta}) \\geq \\mathcal{J}(\\mathcal{R},\\pmb{\\theta}) avec\n\n\\mathcal{J}(\\mathcal{R},\\pmb{\\theta})= \\sum_{i = 1}^{n_1}\\sum_{j=1}^{n_2}\\sum_{q \\in \\mathcal{Q}_1} \\sum_{r \\in \\mathcal{Q}_2} \\tau_{iq}^{1} \\tau_{jr}^{2} \\log f(Y_{ij}; \\alpha_{qr})\n + \\sum_{i=1}^{n_1} \\sum_{q \\in \\mathcal{Q}_1} \\tau_{iq}^{1} \\log \\pi_{\\color{black}q} + \\sum_{j=1}^{n_2} \\sum_{r \\in \\mathcal{Q}_2} \\tau_{jr}^{2} \\log \\rho_{\\color{black}r} \\\\\n - \\sum_{i=1}^{n_1} \\tau_{iq}^{1} \\log \\tau_{iq}^{1} - \\sum_{j=1}^{n_2} \\tau_{jr}^{2} \\log \\tau_{jr}^{2}\n\n\n\nAvec \\rho_r^j = \\frac{\\exp{\\beta_r X_j}}{\\sum_{s=1}^{R} \\exp{\\beta_s X_j}} = \\sigma(\\pmb{\\beta} \\pmb{X})_{r,j}, où \\sigma désigne le softmax. Mais il y a besoin de poser une contrainte sur l’un des (\\beta_r)_{r=1,\\dots,R}, ici \\beta_R = 0.\nLa partie pertinente de l’ELBO devient: \n P((\\beta_r)_{r=1,\\dots,R}, (X_j)_{j=1,\\dots,n_2}, (\\tau_{jr})_{\\substack{j=1,\\dots,n_2\\\\r=1,\\dots,R}} ) = \\sum_{j=1}^{n_2} \\sum_{r=1}^{R} [\\tau_{jr} (\\beta_r X_j - \\log (\\sum_{s=1}^{R} \\exp{\\beta_s X_j}))]\n\\tag{1}\nEt on obtient la dérivée partielle par rapport à \\beta_t comme: \\begin{align*}\n\\dfrac{\\partial P}{\\partial \\beta_t}&((\\beta_r)_{r=1,\\dots,R}, (X_j)_{j=1,\\dots,n_2}, (\\tau_{jr})_{\\substack{j=1,\\dots,n_2\\\\r=1,\\dots,R}} ) = \\sum_{j=1}^{n_2} \\biggl[ \\tau_{jt} X_j - \\frac{X_j \\exp{\\beta_t X_j}}{\\sum_{s=1}^{R} \\exp{\\beta_s X_j}} \\biggr]\\\\\n& = \\sum_{j=1}^{n_2} \\biggl[\\bigl(\\tau_{jt} - \\sigma(\\pmb{\\beta} \\pmb{X})_{t,j}\\bigr) X_j\\biggr] = \\sum_{j=1}^{n_2} \\biggl[\\bigl(\\tau_{jt} - \\rho_t^j \\bigr) X_j\\biggr]\n\\end{align*}\n\n\n\n\n\nLire article multi-niveaux Saint-Clair\n🆕 🔎 Trouver des papiers:\n\nLBM Negative Binomial\nNetwork inference through sample comparison\n\nIdée des groupes sur la base de distance phylogénétique:\n\nEn train de comprendre les distances que phyloseq permet de calculer sur notre exemple\nEn train de lire sur Principle coordinate analysis : https://openplantpathology.github.io/OPP_Workshop_Multivariate/2-MV_PCO.html\nParametric t-SNE pour avoir une unique représentation latente (inconvénient utilise du Deep Learning)\nLire Papier UniFrac\n\n\n\n\n\n\neasy16s : se renseigner sur\n\n\\alpha, \\beta diversité\nHeatmap\n\nRegarder SPARTA Rennes\nEcrire et étudier les modèles pour différents niveaux taxonomiques.\n🆕 Regarder NetComi\n🆕 Regarder OneNet car aggrégation plus robuste\n🆕 Réfléchir sens d’aggréger les données ou de les diviser\n\n\n\n\n\nLancer colBiSBM sur OTU\\times Sample → problème du chargement en mémoire des données à voir\nLancer colSBM sur OTU\\times OTU\nTabNet pratiquer les exercices\n🆕 SparCC à différent niveaux\n🆕 SBM à différent niveaux\n🆕⌛ Tree-PLN à différents niveaux\n\n\n\n\nPlus sur le temps long, à regarder\n\nGT causalité\nDaria Bystrova lire présentation Bystrova (s. d.) (Meek rules, V-structure)" }, { "objectID": "suivi/2026-7/2026-7.html#todo-list", "href": "suivi/2026-7/2026-7.html#todo-list", "title": "Bilan semaine 7 2026 : 09 février - 13 février", "section": "", - "text": "Petites opérations sur les OTUs (regarder la matrice dans les yeux):\n\nRanger les OTUs par variances (i.e. sd(OTU_j))\n\nHMC sur-dispersés (au-dessus bissectrice)\nEnterotype phyloseq sous-disp\n\nRegarder la proportion de 1. taxon rares, 2. zeros.\nFaire des coupures selon niveaux taxonomiques et regarder si \\mathbb{V}_{\\text{intra}} \\approx \\mathbb{V}_{\\text{inter}}\nBonus: faire ça dans qmd et voir si forge permet gitlab pages\n\n✅ Avec blockmodels, codé un LBM-Séquentiel. Des différences contrastées…\n\nTODO Ajouter lien vers notebooks résultats\n\nRelire Peixoto (2014)\n\nRegarder les gens qui citent les travaux de Peixoto\n\n⌛ En cours Implémentation blockmodels LBM avec covariables sur proportions (voir Équation 1)\n\n\n\n\n\n\n\nIdées\n\n\n\n\nTravailler sur Fungus Tree network\n⌛Demander à PB et SD, ils regardent : Comparaison covar prop avec GREMLINS multipartite sur (log(dist_phylo), fungus-tree)\nTrouver manière de faire un compromis : \\ell(Y,Z,W;\\theta) - \\lambda d(C(W),C_0) avec C(W) le clustering seulement sur la base de la structure LBM et C_0 le clustering de l’arbre. Problème d est une distance entre partition, comment optimiser dessus ?\n⌛ Mise à jour partielle des \\tau : ce qui pose soucis c’est les gros calculs matriciels (c’est vraiment vrai?). Donc sorte de “stochastic” VEM où on update seulement une partie des \\tau à chaque itération. Et échantillonnage stratifié selon l’arbre ?\n\n⌛ Simulations avec n_2 croissant lancée sur Migale\nRéimplementé VE Bernoulli dans colSBM pour Bipartite et début implémentation Stochastic VE. En fait le problème des calculs matriciels Y\\times(\\tau^{(1)})^{\\top} (n_2^2) donc besoin de sous-échantillonner les noeuds de l’autre dimension à mettre à jour.\n\n\n\n\n\nClustering unipartite j’ai cassé une fonction de distance à vérifier et réparer\nCodes pour le papier :\n\nNettoyer les scripts\nFaire un joli README\n❓Faire des notebooks\n\nRéussir à reproduire résultat de Abramov et al. (s. d.)\nMaitriser graphtools de Peixoto pour essayer d’utiliser l’arbre taxonomique sur graphe de cooccurence inférer par SparCC\nMaitriser SparCC\n👶 (délégué à Mona) Clustering sur Doré :\n\nAjouter Chao1 et 2, colonne par colonne (site par site), et faire indice moyen et la variance.\n\n\n\n\n\n✅ En préparation d’un fichier (réu avec JBL à 10h45 le 06/02/2026). Possible en modifiant lbm.h et sbm.h d’obtenir un modèle utilisant les covariables de groupes (de blocs ?). Car besoin de changer membership.m_step() pour mettre à jour \\pmb\\pi et \\pmb{\\rho} en utilisant les \\pmb B^{\\top}\\pmb X et en renvoyant l’ELBO adaptée.\n\n😄 Avantage s’inscrit directement dans blockmodels et permet d’avoir toutes les lois d’émissions déjà codées et compatibles !\n😢 Besoin de réfléchir a une bonne implémentation.\n\n\n\n\n\\begin{align*}\n\\pmb{\\beta}_{r}& = \\begin{pmatrix}\n \\beta_{r,0}\\\\\n \\vdots\\\\\n \\beta_{r,p}\n\\end{pmatrix}, & X_{j,\\bullet} = \\begin{pmatrix}\n 1 = x_{0,j} & x_{1,j} & \\dots & x_{p,j}\n\\end{pmatrix}\\\\\nX_{j,\\bullet} \\pmb{\\beta}_r& = \\beta_{r,0} x_{0,j} + \\beta_{r,1} x_{1,j} + \\dots + \\beta_{r,p} x_{p,j} & \\approx \\log(\\rho_r^j) \\\\\nB & = \\begin{pmatrix}\n\\pmb{\\beta}_1 \\dots \\pmb{\\beta}_r \\dots \\pmb{\\beta}_R\n\\end{pmatrix} & X_{j,\\bullet}B \\approx \\log(\\pmb{\\rho}^j) \\\\\nX B & \\approx \\log((\\pmb{\\rho}^j)_{j=1,\\dots,n_2}) = \\log(\\pmb{\\Rho})\\\\\n\\end{align*} Et pour les probas en lignes du LBM \\begin{align*}\n\\pmb{\\gamma}_{q}& = \\begin{pmatrix}\n \\gamma_{q,0}\\\\\n \\vdots\\\\\n \\gamma_{q,d}\n\\end{pmatrix}, & V_{i,\\bullet} = \\begin{pmatrix}\n 1 = v_{0,i} & v_{1,i} & \\dots & v_{d,i}\n\\end{pmatrix}\\\\\nV_{i,\\bullet} \\pmb{\\gamma}_q & = \\gamma_{q,0} v_{0,i} + \\gamma_{q,1} v_{1,i} + \\dots + \\gamma_{q,d} v_{d,i} & \\approx \\log(\\pi_q^i) \\\\\n\\Gamma & = \\begin{pmatrix}\n\\gamma_1 \\dots \\pmb{\\gamma}_q \\dots \\pmb{\\gamma}_Q\n\\end{pmatrix} & V_{i,\\bullet} \\Gamma \\approx \\log(\\pmb{\\pi}^i) \\\\\nV \\Gamma & \\approx \\log((\\pmb{\\pi}^i)_{i=1,\\dots,n_1}) = \\log(\\pmb{\\Pi})\n\n\n\\end{align*}\n\n\n\nSoient B,B^{\\prime} avec B_{\\bullet,R} = B^{\\prime}_{\\bullet,R} = \\vec{0}_{p+1} et X de rang plein tel que X^{\\top}X soit inversible. Soit j=1,\\dots,n_2 alors \\begin{align*}\n&\\sigma(XB)_{j} = \\sigma(XB^{\\prime})_{j}\\\\\n&\\implies \\exists c \\in \\mathbb{R}, X_{j,\\bullet}B = X_{j,\\bullet}B^{\\prime} + c \\\\\n&\\implies \\exists c \\in \\mathbb{R}, \\begin{pmatrix} X_{j,\\bullet} \\beta_1 & \\dots & X_{j,\\bullet} \\beta_{R-1} & \\vec{0}_{p+1} \\end{pmatrix} = X_{j,\\bullet}B^{\\prime} + c\n\n\\end{align*}\nSoient X : (p+1, n_2), B : (p+1, R) avec X de plein rang, i.e., rg(X) = p+1\\implies XX^{\\top} est inversible.\nOn veut qu’il existe B^{\\prime} et B avec B_{:,R} = \\vec 0_p, par les propriétés de la fonction softmax, \\sigma(.) :\n\\begin{align*}\n& \\sigma(B^{\\top}X) = \\sigma({B^{\\prime}}^{\\top}X)\\\\\n& \\iff \\exists C \\in \\mathbb{R}^{n_2}, B^{\\top} X = {B^{\\prime}}^{\\top} X + \\pmb{1}_R C^{\\top}\\\\\n& \\iff \\exists C \\in \\mathbb{R}^{n_2}, B^{\\top} X - \\pmb{1}_R C^{\\top} = {B^{\\prime}}^{\\top} X\\\\\n& \\iff \\exists C \\in \\mathbb{R}^{n_2}, (B^{\\top} X - \\pmb{1}_R C^{\\top}) X^{\\top} = {B^{\\prime}}^{\\top} X X^{\\top}\\\\\n& \\iff \\exists C \\in \\mathbb{R}^{n_2}, (B^{\\top} X - \\pmb{1}_R C^{\\top}) X^{\\top}(X X^{\\top})^{-1} = {B^{\\prime}}^{\\top}\\\\\n\n\n\\end{align*}\n\n\n\nToujours modèle LBM mais avec probas d’appartenance pour les colonnes variables:\n\\begin{align*}\nZ_i &\\sim \\mathcal{M}(1; \\pi_1, \\dots, \\pi_Q), \\sum_{q=1}^{Q} \\pi_q = 1\\\\\nW_j &\\sim \\mathcal{M}(1; \\rho_1^j, \\dots, \\rho_R^j), \\sum_{r=1}^{R} \\rho_r^j = 1\\\\\nY_{i,j}&\\mid Z_i = q, W_j = r \\sim \\mathcal{F}(\\alpha_{qr})\n\\end{align*}\nInférence variationnelle donc \\ell(Y;\\pmb{\\theta}) \\geq \\mathcal{J}(\\mathcal{R},\\pmb{\\theta}) avec\n\n\\mathcal{J}(\\mathcal{R},\\pmb{\\theta})= \\sum_{i = 1}^{n_1}\\sum_{j=1}^{n_2}\\sum_{q \\in \\mathcal{Q}_1} \\sum_{r \\in \\mathcal{Q}_2} \\tau_{iq}^{1} \\tau_{jr}^{2} \\log f(Y_{ij}; \\alpha_{qr})\n + \\sum_{i=1}^{n_1} \\sum_{q \\in \\mathcal{Q}_1} \\tau_{iq}^{1} \\log \\pi_{\\color{black}q} + \\sum_{j=1}^{n_2} \\sum_{r \\in \\mathcal{Q}_2} \\tau_{jr}^{2} \\log \\rho_{\\color{black}r} \\\\\n - \\sum_{i=1}^{n_1} \\tau_{iq}^{1} \\log \\tau_{iq}^{1} - \\sum_{j=1}^{n_2} \\tau_{jr}^{2} \\log \\tau_{jr}^{2}\n\n\n\nAvec \\rho_r^j = \\frac{\\exp{\\beta_r X_j}}{\\sum_{s=1}^{R} \\exp{\\beta_s X_j}} = \\sigma(\\pmb{\\beta} \\pmb{X})_{r,j}, où \\sigma désigne le softmax. Mais il y a besoin de poser une contrainte sur l’un des (\\beta_r)_{r=1,\\dots,R}, ici \\beta_R = 0.\nLa partie pertinente de l’ELBO devient: \n P((\\beta_r)_{r=1,\\dots,R}, (X_j)_{j=1,\\dots,n_2}, (\\tau_{jr})_{\\substack{j=1,\\dots,n_2\\\\r=1,\\dots,R}} ) = \\sum_{j=1}^{n_2} \\sum_{r=1}^{R} [\\tau_{jr} (\\beta_r X_j - \\log (\\sum_{s=1}^{R} \\exp{\\beta_s X_j}))]\n\\tag{1}\nEt on obtient la dérivée partielle par rapport à \\beta_t comme: \\begin{align*}\n\\dfrac{\\partial P}{\\partial \\beta_t}&((\\beta_r)_{r=1,\\dots,R}, (X_j)_{j=1,\\dots,n_2}, (\\tau_{jr})_{\\substack{j=1,\\dots,n_2\\\\r=1,\\dots,R}} ) = \\sum_{j=1}^{n_2} \\biggl[ \\tau_{jt} X_j - \\frac{X_j \\exp{\\beta_t X_j}}{\\sum_{s=1}^{R} \\exp{\\beta_s X_j}} \\biggr]\\\\\n& = \\sum_{j=1}^{n_2} \\biggl[\\bigl(\\tau_{jt} - \\sigma(\\pmb{\\beta} \\pmb{X})_{t,j}\\bigr) X_j\\biggr] = \\sum_{j=1}^{n_2} \\biggl[\\bigl(\\tau_{jt} - \\rho_t^j \\bigr) X_j\\biggr]\n\\end{align*}\n\n\n\n\n\nLire article multi-niveaux Saint-Clair\n🆕 🔎 Trouver des papiers:\n\nLBM Negative Binomial\nNetwork inference through sample comparison\n\nIdée des groupes sur la base de distance phylogénétique:\n\nEn train de comprendre les distances que phyloseq permet de calculer sur notre exemple\nEn train de lire sur Principle coordinate analysis : https://openplantpathology.github.io/OPP_Workshop_Multivariate/2-MV_PCO.html\nParametric t-SNE pour avoir une unique représentation latente (inconvénient utilise du Deep Learning)\nLire Papier UniFrac\n\n\n\n\n\n\neasy16s : se renseigner sur\n\n\\alpha, \\beta diversité\nHeatmap\n\nRegarder SPARTA Rennes\nEcrire et étudier les modèles pour différents niveaux taxonomiques.\n🆕 Regarder NetComi\n🆕 Regarder OneNet car aggrégation plus robuste\n🆕 Réfléchir sens d’aggréger les données ou de les diviser\n\n\n\n\n\nLancer colBiSBM sur OTU\\times Sample → problème du chargement en mémoire des données à voir\nLancer colSBM sur OTU\\times OTU\nTabNet pratiquer les exercices\n🆕 SparCC à différent niveaux\n🆕 SBM à différent niveaux\n🆕⌛ Tree-PLN à différents niveaux\n\n\n\n\nPlus sur le temps long, à regarder\n\nGT causalité\nDaria Bystrova lire présentation Bystrova (s. d.) (Meek rules, V-structure)" + "text": "Petites opérations sur les OTUs (regarder la matrice dans les yeux):\n\nRanger les OTUs par variances (i.e. sd(OTU_j))\n\nHMC sur-dispersés (au-dessus bissectrice)\nEnterotype phyloseq sous-disp\n\nRegarder la proportion de 1. taxon rares, 2. zeros.\nFaire des coupures selon niveaux taxonomiques et regarder si \\mathbb{V}_{\\text{intra}} \\approx \\mathbb{V}_{\\text{inter}}\nBonus: faire ça dans qmd et voir si forge permet gitlab pages\n\n✅ Avec blockmodels, codé un LBM-Séquentiel. Des différences contrastées…\n\nTODO Ajouter lien vers notebooks résultats\n\nRelire Peixoto (2014)\n\nRegarder les gens qui citent les travaux de Peixoto\n\n⌛ En cours Implémentation blockmodels LBM avec covariables sur proportions (voir Équation 1)\n\n\n\n\n\n\n\nIdées\n\n\n\n\nTravailler sur Fungus Tree network\n⌛Demander à PB et SD, ils regardent : Comparaison covar prop avec GREMLINS multipartite sur (log(dist_phylo), fungus-tree)\nTrouver manière de faire un compromis : \\ell(Y,Z,W;\\theta) - \\lambda d(C(W),C_0) avec C(W) le clustering seulement sur la base de la structure LBM et C_0 le clustering de l’arbre. Problème d est une distance entre partition, comment optimiser dessus ?\n⌛ Mise à jour partielle des \\tau : ce qui pose soucis c’est les gros calculs matriciels (c’est vraiment vrai?). Donc sorte de “stochastic” VEM où on update seulement une partie des \\tau à chaque itération. Et échantillonnage stratifié selon l’arbre ?\n\n⌛ Simulations avec n_2 croissant lancée sur Migale\nRéimplementé VE Bernoulli dans colSBM pour Bipartite et début implémentation Stochastic VE. En fait le problème des calculs matriciels Y\\times(\\tau^{(1)})^{\\top} (n_2^2) donc besoin de sous-échantillonner les noeuds de l’autre dimension à mettre à jour.\n\n\n\n\n\nClustering unipartite j’ai cassé une fonction de distance à vérifier et réparer\nCodes pour le papier :\n\nNettoyer les scripts\nFaire un joli README\n❓Faire des notebooks\n\nRéussir à reproduire résultat de Abramov et al. (s. d.)\nMaitriser graphtools de Peixoto pour essayer d’utiliser l’arbre taxonomique sur graphe de cooccurence inférer par SparCC\nMaitriser SparCC\n👶 (délégué à Mona) Clustering sur Doré :\n\nAjouter Chao1 et 2, colonne par colonne (site par site), et faire indice moyen et la variance.\n\n\n\n\n\n✅ En préparation d’un fichier (réu avec JBL à 10h45 le 06/02/2026). Possible en modifiant lbm.h et sbm.h d’obtenir un modèle utilisant les covariables de groupes (de blocs ?). Car besoin de changer membership.m_step() pour mettre à jour \\pmb\\pi et \\pmb{\\rho} en utilisant les \\pmb B^{\\top}\\pmb X et en renvoyant l’ELBO adaptée.\n\n😄 Avantage s’inscrit directement dans blockmodels et permet d’avoir toutes les lois d’émissions déjà codées et compatibles !\n😢 Besoin de réfléchir a une bonne implémentation.\n\n\n\n\n\\begin{align*}\n\\pmb{\\beta}_{r}& = \\begin{pmatrix}\n \\beta_{r,0}\\\\\n \\vdots\\\\\n \\beta_{r,p}\n\\end{pmatrix}, & X_{j,\\bullet} = \\begin{pmatrix}\n 1 = x_{0,j} & x_{1,j} & \\dots & x_{p,j}\n\\end{pmatrix}\\\\\nX_{j,\\bullet} \\pmb{\\beta}_r& = \\beta_{r,0} x_{0,j} + \\beta_{r,1} x_{1,j} + \\dots + \\beta_{r,p} x_{p,j} & \\approx \\log(\\rho_r^j) \\\\\nB & = \\begin{pmatrix}\n\\pmb{\\beta}_1 \\dots \\pmb{\\beta}_r \\dots \\pmb{\\beta}_R\n\\end{pmatrix} & X_{j,\\bullet}B \\approx \\log(\\pmb{\\rho}^j) \\\\\nX B & \\approx \\log((\\pmb{\\rho}^j)_{j=1,\\dots,n_2}) = \\log(\\pmb{\\Rho})\\\\\n\\end{align*} Et pour les probas en lignes du LBM \\begin{align*}\n\\pmb{\\gamma}_{q}& = \\begin{pmatrix}\n \\gamma_{q,0}\\\\\n \\vdots\\\\\n \\gamma_{q,d}\n\\end{pmatrix}, & V_{i,\\bullet} = \\begin{pmatrix}\n 1 = v_{0,i} & v_{1,i} & \\dots & v_{d,i}\n\\end{pmatrix}\\\\\nV_{i,\\bullet} \\pmb{\\gamma}_q & = \\gamma_{q,0} v_{0,i} + \\gamma_{q,1} v_{1,i} + \\dots + \\gamma_{q,d} v_{d,i} & \\approx \\log(\\pi_q^i) \\\\\n\\Gamma & = \\begin{pmatrix}\n\\gamma_1 \\dots \\pmb{\\gamma}_q \\dots \\pmb{\\gamma}_Q\n\\end{pmatrix} & V_{i,\\bullet} \\Gamma \\approx \\log(\\pmb{\\pi}^i) \\\\\nV \\Gamma & \\approx \\log((\\pmb{\\pi}^i)_{i=1,\\dots,n_1}) = \\log(\\pmb{\\Pi})\n\n\n\\end{align*}\n\n\n\nSoient B,B^{\\prime} avec B_{\\bullet,R} = B^{\\prime}_{\\bullet,R} = \\vec{0}_{p+1} et X de rang plein tel que X^{\\top}X soit inversible pas nécessaire.\n\\begin{align*}\n&\\sigma(XB) = \\sigma(XB^{\\prime})\\\\\n&\\implies \\exists C = \\begin{pmatrix}c_1 \\\\ \\vdots \\\\ c_j \\\\ \\vdots \\\\ c_{n_2}\\end{pmatrix} \\in \\mathbb{R}^{n_2}, X B = X B^{\\prime} + C \\pmb{1}_{R}^{\\top} \\\\\n&\\implies \\exists C \\in \\mathbb{R}^{n_2}, (X B)_{j,r} = (X B^{\\prime})_{j,r} + (C \\pmb{1}_{R}^{\\top})_{j,r} \\\\\n&\\implies \\exists C \\in \\mathbb{R}^{n_2}, \\forall r\\in\\{1\\dots,R\\}, \\forall j\\in\\{1,\\dots,n_2\\}, \\sum_{k=1}^{p+1} x_{j,k} \\beta_{k,r} = \\sum_{k=1}^{p+1} x_{j,k} \\beta^{\\prime}_{k,r} + c_j\\\\\n&\\implies \\exists C \\in \\mathbb{R}^{n_2}, \\forall j\\in\\{1,\\dots,n_2\\}, \\sum_{k=1}^{p+1} x_{j,k} \\beta_{k,R} = \\sum_{k=1}^{p+1} x_{j,k} \\beta^{\\prime}_{k,R} + c_j \\\\\n&\\implies \\exists C \\in \\mathbb{R}^{n_2}, \\forall j\\in\\{1,\\dots,n_2\\}, \\sum_{k=1}^{p+1} x_{j,k} \\times 0 = \\sum_{k=1}^{p+1} x_{j,k} \\times 0 + c_j \\\\\n&\\implies \\exists C \\in \\mathbb{R}^{n_2}, \\forall j\\in\\{1,\\dots,n_2\\}, 0 = 0 + c_j \\implies c_j = 0 \\\\\n&\\implies C = \\begin{pmatrix} 0 \\\\ \\vdots \\\\ 0 \\end{pmatrix} \\text{and thus}, B = B^{\\prime} \\\\\n\n\\end{align*}\n\n\n\nToujours modèle LBM mais avec probas d’appartenance pour les colonnes variables:\n\\begin{align*}\nZ_i &\\sim \\mathcal{M}(1; \\pi_1, \\dots, \\pi_Q), \\sum_{q=1}^{Q} \\pi_q = 1\\\\\nW_j &\\sim \\mathcal{M}(1; \\rho_1^j, \\dots, \\rho_R^j), \\sum_{r=1}^{R} \\rho_r^j = 1\\\\\nY_{i,j}&\\mid Z_i = q, W_j = r \\sim \\mathcal{F}(\\alpha_{qr})\n\\end{align*}\nInférence variationnelle donc \\ell(Y;\\pmb{\\theta}) \\geq \\mathcal{J}(\\mathcal{R},\\pmb{\\theta}) avec\n\n\\mathcal{J}(\\mathcal{R},\\pmb{\\theta})= \\sum_{i = 1}^{n_1}\\sum_{j=1}^{n_2}\\sum_{q \\in \\mathcal{Q}_1} \\sum_{r \\in \\mathcal{Q}_2} \\tau_{iq}^{1} \\tau_{jr}^{2} \\log f(Y_{ij}; \\alpha_{qr})\n + \\sum_{i=1}^{n_1} \\sum_{q \\in \\mathcal{Q}_1} \\tau_{iq}^{1} \\log \\pi_{\\color{black}q} + \\sum_{j=1}^{n_2} \\sum_{r \\in \\mathcal{Q}_2} \\tau_{jr}^{2} \\log \\rho_{\\color{black}r} \\\\\n - \\sum_{i=1}^{n_1} \\tau_{iq}^{1} \\log \\tau_{iq}^{1} - \\sum_{j=1}^{n_2} \\tau_{jr}^{2} \\log \\tau_{jr}^{2}\n\n\n\nAvec \\rho_r^j = \\frac{\\exp{\\beta_r X_j}}{\\sum_{s=1}^{R} \\exp{\\beta_s X_j}} = \\sigma(\\pmb{\\beta} \\pmb{X})_{r,j}, où \\sigma désigne le softmax. Mais il y a besoin de poser une contrainte sur l’un des (\\beta_r)_{r=1,\\dots,R}, ici \\beta_R = 0.\nLa partie pertinente de l’ELBO devient: \n P((\\beta_r)_{r=1,\\dots,R}, (X_j)_{j=1,\\dots,n_2}, (\\tau_{jr})_{\\substack{j=1,\\dots,n_2\\\\r=1,\\dots,R}} ) = \\sum_{j=1}^{n_2} \\sum_{r=1}^{R} [\\tau_{jr} (\\beta_r X_j - \\log (\\sum_{s=1}^{R} \\exp{\\beta_s X_j}))]\n\\tag{1}\nEt on obtient la dérivée partielle par rapport à \\beta_t comme: \\begin{align*}\n\\dfrac{\\partial P}{\\partial \\beta_t}&((\\beta_r)_{r=1,\\dots,R}, (X_j)_{j=1,\\dots,n_2}, (\\tau_{jr})_{\\substack{j=1,\\dots,n_2\\\\r=1,\\dots,R}} ) = \\sum_{j=1}^{n_2} \\biggl[ \\tau_{jt} X_j - \\frac{X_j \\exp{\\beta_t X_j}}{\\sum_{s=1}^{R} \\exp{\\beta_s X_j}} \\biggr]\\\\\n& = \\sum_{j=1}^{n_2} \\biggl[\\bigl(\\tau_{jt} - \\sigma(\\pmb{\\beta} \\pmb{X})_{t,j}\\bigr) X_j\\biggr] = \\sum_{j=1}^{n_2} \\biggl[\\bigl(\\tau_{jt} - \\rho_t^j \\bigr) X_j\\biggr]\n\\end{align*}\n\n\n\n\n\nLire article multi-niveaux Saint-Clair\n🆕 🔎 Trouver des papiers:\n\nLBM Negative Binomial\nNetwork inference through sample comparison\n\nIdée des groupes sur la base de distance phylogénétique:\n\nEn train de comprendre les distances que phyloseq permet de calculer sur notre exemple\nEn train de lire sur Principle coordinate analysis : https://openplantpathology.github.io/OPP_Workshop_Multivariate/2-MV_PCO.html\nParametric t-SNE pour avoir une unique représentation latente (inconvénient utilise du Deep Learning)\nLire Papier UniFrac\n\n\n\n\n\n\neasy16s : se renseigner sur\n\n\\alpha, \\beta diversité\nHeatmap\n\nRegarder SPARTA Rennes\nEcrire et étudier les modèles pour différents niveaux taxonomiques.\n🆕 Regarder NetComi\n🆕 Regarder OneNet car aggrégation plus robuste\n🆕 Réfléchir sens d’aggréger les données ou de les diviser\n\n\n\n\n\nLancer colBiSBM sur OTU\\times Sample → problème du chargement en mémoire des données à voir\nLancer colSBM sur OTU\\times OTU\nTabNet pratiquer les exercices\n🆕 SparCC à différent niveaux\n🆕 SBM à différent niveaux\n🆕⌛ Tree-PLN à différents niveaux\n\n\n\n\nPlus sur le temps long, à regarder\n\nGT causalité\nDaria Bystrova lire présentation Bystrova (s. d.) (Meek rules, V-structure)" }, { "objectID": "suivi/2026-7/2026-7.html#a-discuter", diff --git a/suivi/2025-13/2025-13.html b/suivi/2025-13/2025-13.html index 73d8b83..7e86dd3 100644 --- a/suivi/2025-13/2025-13.html +++ b/suivi/2025-13/2025-13.html @@ -192,7 +192,7 @@ window.Quarto = {
Modifié
-

10 février 2026

+

17 février 2026

diff --git a/suivi/2025-14/2025-14.html b/suivi/2025-14/2025-14.html index e90958a..90e6ba5 100644 --- a/suivi/2025-14/2025-14.html +++ b/suivi/2025-14/2025-14.html @@ -189,7 +189,7 @@ window.Quarto = {
Modifié
-

10 février 2026

+

17 février 2026

diff --git a/suivi/2025-15/2025-15.html b/suivi/2025-15/2025-15.html index 1f6eab5..6cd90a8 100644 --- a/suivi/2025-15/2025-15.html +++ b/suivi/2025-15/2025-15.html @@ -189,7 +189,7 @@ window.Quarto = {
Modifié
-

10 février 2026

+

17 février 2026

diff --git a/suivi/2025-16/2025-16.html b/suivi/2025-16/2025-16.html index 830c9aa..08cbb25 100644 --- a/suivi/2025-16/2025-16.html +++ b/suivi/2025-16/2025-16.html @@ -189,7 +189,7 @@ window.Quarto = {
Modifié
-

10 février 2026

+

17 février 2026

diff --git a/suivi/2025-17/2025-17.html b/suivi/2025-17/2025-17.html index 6c3d0f9..4552296 100644 --- a/suivi/2025-17/2025-17.html +++ b/suivi/2025-17/2025-17.html @@ -192,7 +192,7 @@ window.Quarto = {
Modifié
-

10 février 2026

+

17 février 2026

diff --git a/suivi/2025-18/2025-18.html b/suivi/2025-18/2025-18.html index d672e39..6ebed6b 100644 --- a/suivi/2025-18/2025-18.html +++ b/suivi/2025-18/2025-18.html @@ -193,7 +193,7 @@ window.Quarto = {
Modifié
-

10 février 2026

+

17 février 2026

diff --git a/suivi/2025-19/2025-19.html b/suivi/2025-19/2025-19.html index 44fa4de..f8bbca9 100644 --- a/suivi/2025-19/2025-19.html +++ b/suivi/2025-19/2025-19.html @@ -190,7 +190,7 @@ window.Quarto = {
Modifié
-

10 février 2026

+

17 février 2026

diff --git a/suivi/2025-20/2025-20.html b/suivi/2025-20/2025-20.html index 71ca0a3..70689bf 100644 --- a/suivi/2025-20/2025-20.html +++ b/suivi/2025-20/2025-20.html @@ -191,7 +191,7 @@ window.Quarto = {
Modifié
-

10 février 2026

+

17 février 2026

diff --git a/suivi/2025-21/2025-21.html b/suivi/2025-21/2025-21.html index 0efc95a..45b8d69 100644 --- a/suivi/2025-21/2025-21.html +++ b/suivi/2025-21/2025-21.html @@ -191,7 +191,7 @@ window.Quarto = {
Modifié
-

10 février 2026

+

17 février 2026

diff --git a/suivi/2025-22/2025-22.html b/suivi/2025-22/2025-22.html index 21fc328..ad51097 100644 --- a/suivi/2025-22/2025-22.html +++ b/suivi/2025-22/2025-22.html @@ -191,7 +191,7 @@ window.Quarto = {
Modifié
-

10 février 2026

+

17 février 2026

diff --git a/suivi/2025-24/2025-24.html b/suivi/2025-24/2025-24.html index 6ccd178..098f22b 100644 --- a/suivi/2025-24/2025-24.html +++ b/suivi/2025-24/2025-24.html @@ -214,7 +214,7 @@ window.Quarto = {
Modifié
-

10 février 2026

+

17 février 2026

diff --git a/suivi/2025-25/2025-25.html b/suivi/2025-25/2025-25.html index c3ac6fd..fa780a1 100644 --- a/suivi/2025-25/2025-25.html +++ b/suivi/2025-25/2025-25.html @@ -211,7 +211,7 @@ window.Quarto = {
Modifié
-

10 février 2026

+

17 février 2026

diff --git a/suivi/2025-27/2025-27.html b/suivi/2025-27/2025-27.html index 223ecac..59963ed 100644 --- a/suivi/2025-27/2025-27.html +++ b/suivi/2025-27/2025-27.html @@ -211,7 +211,7 @@ window.Quarto = {
Modifié
-

10 février 2026

+

17 février 2026

diff --git a/suivi/2025-29/2025-29.html b/suivi/2025-29/2025-29.html index 5157e5f..31d5b86 100644 --- a/suivi/2025-29/2025-29.html +++ b/suivi/2025-29/2025-29.html @@ -211,7 +211,7 @@ window.Quarto = {
Modifié
-

10 février 2026

+

17 février 2026

diff --git a/suivi/2025-33/2025-33.html b/suivi/2025-33/2025-33.html index 2fc44f0..1ceba9b 100644 --- a/suivi/2025-33/2025-33.html +++ b/suivi/2025-33/2025-33.html @@ -214,7 +214,7 @@ window.Quarto = {
Modifié
-

10 février 2026

+

17 février 2026

diff --git a/suivi/2025-35/2025-35.html b/suivi/2025-35/2025-35.html index 7dd3ba6..74f5ee4 100644 --- a/suivi/2025-35/2025-35.html +++ b/suivi/2025-35/2025-35.html @@ -211,7 +211,7 @@ window.Quarto = {
Modifié
-

10 février 2026

+

17 février 2026

diff --git a/suivi/2025-38/2025-38.html b/suivi/2025-38/2025-38.html index bbf2638..47e9d0f 100644 --- a/suivi/2025-38/2025-38.html +++ b/suivi/2025-38/2025-38.html @@ -211,7 +211,7 @@ window.Quarto = {
Modifié
-

10 février 2026

+

17 février 2026

diff --git a/suivi/2025-43/2025-43.html b/suivi/2025-43/2025-43.html index 0b05cab..333a5e7 100644 --- a/suivi/2025-43/2025-43.html +++ b/suivi/2025-43/2025-43.html @@ -211,7 +211,7 @@ window.Quarto = {
Modifié
-

10 février 2026

+

17 février 2026

diff --git a/suivi/2025-44/2025-44.html b/suivi/2025-44/2025-44.html index a8cf81f..94e217d 100644 --- a/suivi/2025-44/2025-44.html +++ b/suivi/2025-44/2025-44.html @@ -211,7 +211,7 @@ window.Quarto = {
Modifié
-

10 février 2026

+

17 février 2026

diff --git a/suivi/2025-45/2025-45.html b/suivi/2025-45/2025-45.html index 52a7b9b..f497285 100644 --- a/suivi/2025-45/2025-45.html +++ b/suivi/2025-45/2025-45.html @@ -211,7 +211,7 @@ window.Quarto = {
Modifié
-

10 février 2026

+

17 février 2026

diff --git a/suivi/2025-50/2025-50.html b/suivi/2025-50/2025-50.html index 108b84a..aaa6c8e 100644 --- a/suivi/2025-50/2025-50.html +++ b/suivi/2025-50/2025-50.html @@ -211,7 +211,7 @@ window.Quarto = {
Modifié
-

10 février 2026

+

17 février 2026

diff --git a/suivi/2025-51/2025-51.html b/suivi/2025-51/2025-51.html index 2bd37be..cc4bf53 100644 --- a/suivi/2025-51/2025-51.html +++ b/suivi/2025-51/2025-51.html @@ -211,7 +211,7 @@ window.Quarto = {
Modifié
-

10 février 2026

+

17 février 2026

diff --git a/suivi/2026-6/2026-6.html b/suivi/2026-6/2026-6.html index a40eff4..142d898 100644 --- a/suivi/2026-6/2026-6.html +++ b/suivi/2026-6/2026-6.html @@ -211,7 +211,7 @@ window.Quarto = {
Modifié
-

10 février 2026

+

17 février 2026

diff --git a/suivi/2026-7/2026-7.html b/suivi/2026-7/2026-7.html index a1c4bfd..8d8a2af 100644 --- a/suivi/2026-7/2026-7.html +++ b/suivi/2026-7/2026-7.html @@ -211,7 +211,7 @@ window.Quarto = {
Modifié
-

10 février 2026

+

17 février 2026

@@ -355,21 +355,16 @@ V \Gamma & \approx \log((\pmb{\pi}^i)_{i=1,\dots,n_1}) = \log(\pmb{\Pi})

Note sur l’identifiabilité (à partir JBL et réunion JA, PB, SD)

-

Soient B,B^{\prime} avec B_{\bullet,R} = B^{\prime}_{\bullet,R} = \vec{0}_{p+1} et X de rang plein tel que X^{\top}X soit inversible. Soit j=1,\dots,n_2 alors \begin{align*} -&\sigma(XB)_{j} = \sigma(XB^{\prime})_{j}\\ -&\implies \exists c \in \mathbb{R}, X_{j,\bullet}B = X_{j,\bullet}B^{\prime} + c \\ -&\implies \exists c \in \mathbb{R}, \begin{pmatrix} X_{j,\bullet} \beta_1 & \dots & X_{j,\bullet} \beta_{R-1} & \vec{0}_{p+1} \end{pmatrix} = X_{j,\bullet}B^{\prime} + c - -\end{align*}

-

Soient X : (p+1, n_2), B : (p+1, R) avec X de plein rang, i.e., rg(X) = p+1\implies XX^{\top} est inversible.

-

On veut qu’il existe B^{\prime} et B avec B_{:,R} = \vec 0_p, par les propriétés de la fonction softmax, \sigma(.) :

+

Soient B,B^{\prime} avec B_{\bullet,R} = B^{\prime}_{\bullet,R} = \vec{0}_{p+1} et X de rang plein tel que X^{\top}X soit inversible pas nécessaire.

\begin{align*} -& \sigma(B^{\top}X) = \sigma({B^{\prime}}^{\top}X)\\ -& \iff \exists C \in \mathbb{R}^{n_2}, B^{\top} X = {B^{\prime}}^{\top} X + \pmb{1}_R C^{\top}\\ -& \iff \exists C \in \mathbb{R}^{n_2}, B^{\top} X - \pmb{1}_R C^{\top} = {B^{\prime}}^{\top} X\\ -& \iff \exists C \in \mathbb{R}^{n_2}, (B^{\top} X - \pmb{1}_R C^{\top}) X^{\top} = {B^{\prime}}^{\top} X X^{\top}\\ -& \iff \exists C \in \mathbb{R}^{n_2}, (B^{\top} X - \pmb{1}_R C^{\top}) X^{\top}(X X^{\top})^{-1} = {B^{\prime}}^{\top}\\ - +&\sigma(XB) = \sigma(XB^{\prime})\\ +&\implies \exists C = \begin{pmatrix}c_1 \\ \vdots \\ c_j \\ \vdots \\ c_{n_2}\end{pmatrix} \in \mathbb{R}^{n_2}, X B = X B^{\prime} + C \pmb{1}_{R}^{\top} \\ +&\implies \exists C \in \mathbb{R}^{n_2}, (X B)_{j,r} = (X B^{\prime})_{j,r} + (C \pmb{1}_{R}^{\top})_{j,r} \\ +&\implies \exists C \in \mathbb{R}^{n_2}, \forall r\in\{1\dots,R\}, \forall j\in\{1,\dots,n_2\}, \sum_{k=1}^{p+1} x_{j,k} \beta_{k,r} = \sum_{k=1}^{p+1} x_{j,k} \beta^{\prime}_{k,r} + c_j\\ +&\implies \exists C \in \mathbb{R}^{n_2}, \forall j\in\{1,\dots,n_2\}, \sum_{k=1}^{p+1} x_{j,k} \beta_{k,R} = \sum_{k=1}^{p+1} x_{j,k} \beta^{\prime}_{k,R} + c_j \\ +&\implies \exists C \in \mathbb{R}^{n_2}, \forall j\in\{1,\dots,n_2\}, \sum_{k=1}^{p+1} x_{j,k} \times 0 = \sum_{k=1}^{p+1} x_{j,k} \times 0 + c_j \\ +&\implies \exists C \in \mathbb{R}^{n_2}, \forall j\in\{1,\dots,n_2\}, 0 = 0 + c_j \implies c_j = 0 \\ +&\implies C = \begin{pmatrix} 0 \\ \vdots \\ 0 \end{pmatrix} \text{and thus}, B = B^{\prime} \\ \end{align*}