22 KiB
Idée du modèle
\newcommand{\ilr}{\operatorname{ilr}}
\newcommand{\clr}{\operatorname{clr}}
\newcommand{\Cat}{\operatorname{Cat}}
Pierre a proposé que l'on pose une structure latente sur les \pmb{Z}. C'est à dire
\begin{aligned}
& P \sim \Normal_{n_1, K-1} (O_{n_1, K-1}, \Sigma, \sigma^2 Id_{K-1}), \
\forall i \in {1,\dots,n_1}, & Z_i \mid P_i \overset{ind}{\sim} \Cat_{K} ({\ilr}^{-1}(P_i) = \pi_{1:K}^{(i)}), \
\forall j \in {1,\dots,n_2}, & W_j \overset{iid}{\sim} \Cat_R (\rho_{1:R}),\
\forall i,j \in {1,\dots,n_1}\times{1,\dots,n_2}, & Y_{ij} \mid Z_i = k, W_j = r \overset{ind}{\sim} \mathcal{F}(\alpha_{qr}),
\end{aligned}
avec \Sigma, la matrice de variance-covariance déterminée en fonction de l'apparentement (phylogénétique) des noeuds.
\usepackage{tikz}
\usepackage{amsmath,amssymb}
\usetikzlibrary{arrows.meta,positioning,shapes.geometric,calc}
\begin{document}
\begin{tikzpicture}[
font=\sffamily,
>=Latex,
node distance=1.5cm and 2cm,
directed/.style={-{Latex}, line width=0.8pt, draw=gray!75},
bidirected/.style={-, line width=0.8pt, draw=red!75},
base/.style={
draw=gray!70,
line width=0.9pt,
align=center,
inner sep=4pt
},
prior/.style={base,rectangle,rounded corners=1pt,fill=blue!7},
latent/.style={base,rectangle,rounded corners=6pt,fill=teal!8},
known/.style={base,diamond,aspect=1.35,fill=orange!12},
observed/.style={base,circle,fill=purple!8}
]
%--------------------------------------------------
% Hyperparameters rows
%--------------------------------------------------
\node[prior] (sigma) {$\sigma^2$};
\node[known,right=of sigma] (Sigma) {$\Sigma$};
\node[latent,below=of sigma] (Pi) {$P_i$};
\node[latent,below=of Sigma] (Pip) {$P_{i'}$};
\node[latent,below=of Pi] (Zi) {$Z_i$};
\node[latent,below=of Pip] (Zip) {$Z_{i'}$};
%--------------------------------------------------
% Hyperparameters columns
%--------------------------------------------------
\node[prior,right=4cm of Sigma] (rho) {$\rho$};
\node[latent,below left=of rho] (Wj) {$W_j$};
\node[latent,below right=of rho] (Wjp) {$W_{j'}$};
%--------------------------------------------------
% Intercept
%--------------------------------------------------
\node[prior] (alpha)
at ($(Zi)!0.5!(Wj)+(0,-3)$)
{$\alpha$};
%--------------------------------------------------
% Observations
%--------------------------------------------------
\node[observed]
at ($(Zi)!0.5!(Wj)+(0,-1.4)$)
(Yij) {$Y_{ij}$};
\node[observed]
at ($(Zi)!0.5!(Wjp)+(2.0,-1.4)$)
(Yijp) {$Y_{ij'}$};
\node[observed]
at ($(Zip)!0.5!(Wj)+(-2.0,-1.4)$)
(Yipj) {$Y_{i'j}$};
\node[observed]
at ($(Zip)!0.5!(Wjp)+(0,-1.4)$)
(Yipjp) {$Y_{i'j'}$};
%--------------------------------------------------
% Row side
%--------------------------------------------------
\draw[directed] (sigma) -- (Pi);
\draw[directed] (Sigma) -- (Pi);
\draw[directed] (sigma) -- (Pip);
\draw[directed] (Sigma) -- (Pip);
\draw[directed] (Pi) -- (Zi);
\draw[directed] (Pip) -- (Zip);
%--------------------------------------------------
% Column side
%--------------------------------------------------
\draw[directed] (rho) -- (Wj);
\draw[directed] (rho) -- (Wjp);
%--------------------------------------------------
% Likelihood
%--------------------------------------------------
\foreach \y in {Yij,Yijp}
\draw[directed] (Zi) -- (\y);
\foreach \y in {Yipj,Yipjp}
\draw[directed] (Zip) -- (\y);
\foreach \y in {Yij,Yipj}
\draw[directed] (Wj) -- (\y);
\foreach \y in {Yijp,Yipjp}
\draw[directed] (Wjp) -- (\y);
\foreach \y in {Yij,Yijp,Yipj,Yipjp}
\draw[directed] (alpha) -- (\y);
%--------------------------------------------------
% Correlation structure
%--------------------------------------------------
\draw[bidirected] (alpha) -- (Zi);
\draw[bidirected] (alpha) -- (Zip);
\draw[bidirected] (alpha) -- (Wj);
\draw[bidirected] (alpha) -- (Wjp);
\end{tikzpicture}
\end{document}
\usepackage{tikz}
\usepackage{amsmath}
\usetikzlibrary{positioning,shapes.arrows, arrows.meta,shapes.geometric}
\begin{document}
\begin{tikzpicture}
\tikzset{
every path/.append style = {
arrows = ->,
> = stealth,},
every node/.append style = {
shape = circle,
draw = black,
minimum size=3em
},
latent/.style = {
fill = lightgray
},
prior/.style = {
fill = red},
moral/.style = {
dashed,
> = {}, % remove arrow tip
arrows = -, % ensure no arrows
}}
\node (y) {$Y$};
\node[latent] (z) [above left = of y] {$Z$};
\node[latent] (w) [above right = of y] {$W$};
\node[latent] (P) [above = of z] {$P$};
\node[prior] (sigma2) [above = of P] {$\sigma^2$};
\node[prior] (rho) [above = of w] {$\rho_{1:R}$};
\node[prior] (alpha) [below = of y] {$\boldsymbol{\alpha}$};
\path (z) edge (y);
\path (w) edge (y);
\path (rho) edge (w);
\path (alpha) edge (y);
\path (P) edge (z);
\path (sigma2) edge (P);
% moral
\path[moral] (z) edge (alpha);
\path[moral] (w) edge (alpha);
\path[moral] (z) edge (w);
\end{tikzpicture}
\end{document}
Détails sur \ilr
L'Isometric Log Ratio est une transformation qui permet d'envoyer de façon bijective des données depuis le simplexe \Delta_{K} vers \R^{(K-1)}. Elle se construit à partir de la transformation Center Log Ratio (\clr), définie comme:
\clr(\pmb{x}) = (\log(\frac{x_j}{\sqrt[n]{\prod^{n}{i=1} x_i}})){j = 1,\dots,n} = (\log(x_j)- \frac{1}{n}\sum^{n}{i=1} \log(x_i)){j = 1,\dots,n}.
On peut ensuite définir l'ilr en prenant \Psi une base orthonormée de \Delta_{K}:
\ilr(\pmb{x}) = \clr(\pmb{x}) \Psi^{\top}
Dans @hronImputationMissingValues2010, les auteurs définissent la base suivante:
\ilr(\pmb{x}) = (z_1,\dots,z_{K-1})^{\top}, z_j = \sqrt{\frac{K-j}{K-j+1}} \log\biggl(\frac{\sqrt[K-j]{\prod_{l=j+1}^{K} x_l}}{x_j}\biggr) = \sqrt{\frac{K-j}{K-j+1}} \bigl[\frac{1}{K-j}\sum_{l=j+1}^{K}[\log(x_l)] - \log(x_j)\bigr]
D'où l'on obtient la formule de la base suivante :
\begin{aligned}
\psi_j & = \sqrt{\frac{K-j}{K-j+1}} \Biggl( \underbrace{0,\dots,0}{j-1},-1,\underbrace{\frac{1}{K-j},\dots,\frac{1}{K-j}}{K-j}\Biggr) \
\end{aligned}
avec j\in\{1,\dots,K-1\}, \Psi est donc de taille K-1\times K.
Donc on obtient la matrice :
\begin{aligned}
\Psi & = \begin{pmatrix}
- \sqrt{\frac{K-1}{K}} & \frac{1}{K-1}\sqrt{\frac{K-1}{K}} & \dots & \frac{1}{K-1}\sqrt{\frac{K-1}{K}} \
0 & - \sqrt{\frac{K-2}{K-1}} & \dots & \frac{1}{K-2}\sqrt{\frac{K-2}{K-1}} \
\vdots & & \ddots & \vdots \
0 & \dots & - \sqrt{\frac{1}{2}} & \sqrt{\frac{1}{2}}
\end{pmatrix}
\end{aligned}
Et d'après @williamsSimplextoEuclideanBijectionConjugate2026 on a que pour z\in\mathbb{R}^K
\ilr^{-1} (z)= \operatorname{softmax}(\Psi z) = x \in \Delta_{K}
Détails sur le calcul des directions privilégiées
Avec une base orthonormée \Psi on peut calculer les directions privilégiée de la transformation \ilr^{-1}.
On sait qu'on cherche le vecteur v_{k} qui est envoyé par \Psi^{\top} sur s_{k} :
\begin{align*}
\Psi^{\top} v_{k} & = s_{k}\
\implies \Psi\Psi^{\top} v_{k} &= \Psi s_{k} \
\end{align*}
Mais \Psi étant une base orthonormée, on sait que \Psi\Psi^{\top} = Id et donc :
v_{k} =\Psi s_{k}
Et afin de chercher les directions particulière envoyées sur les sommets du simplexe, on cherche s_{k}^{\top} = (-M,\dots,0,\dots, -M) avec le 0 en $k$ième position.
Lois conditionnelles pour échantillonage de Gibbs
- Écrire pour loi d'émission Poisson et Binomiale négative (une conjuguée et l'autre MH)
Loi de P_i\mid Z_i, P_{-i}, \sigma^2
On va vouloir simuler selon p(P_i\mid Z_i, P_{-i}, \sigma^2) \propto p(Z_i\mid P_i) p(P_i\mid P_{-i}, \sigma^2). p(Z_i\mid P_i) est une loi catégorielle, nommément Z_i \mid P_i \sim \Cat_{K} ({\ilr}^{-1}(P_i)). Pour P_i|P_{-i}, \sigma^2, il faut expliciter les formules:
vec(P) \sim \Normal_{n(K-1)}(0, \sigma^2 I_{K-1} \otimes \Sigma), \Omega = (\sigma^2 I_{K-1} \otimes \Sigma)^{-1} = \frac{1}{\sigma^2}I_{K-1} \otimes \Sigma^{-1}
En notant:
\Theta = \Sigma^{-1}, \Omega = \frac{1}{\sigma^2}I_{K-1} \otimes \Theta
En utilisant la formule suivante pour les vecteurs gaussiens conditionnés:
\pmb{x} \sim \Normal(\pmb{\mu}, \Sigma) \qquad x_i \mid \pmb{x_{-i}} \sim \Normal(\mu_{i} - \Sigma_{i,i}\Sigma_{i,-i}^{-1}(\pmb{x_{-i}} - \pmb{\mu_{-i}}), \Sigma_{i,i} - \Sigma_{i,-i}\Sigma_{-i-,-i}^{-1}\Sigma_{-i,i}),
Ce qui donne pour notre application:
P_i\mid P_{-i} \sim \Normal_{K-1}(M_i + \Sigma_{i,-i} \Sigma^{-1}{-i,-i}(P{-i} - M_{-i}), \sigma^2(\Sigma_{i,i} - \Sigma_{i,-i}\Sigma^{-1}{-i,-i}\Sigma{-i,i})I_{K-1})
On peut alors ici faire du Metropolis within Gibbs pour simuler la loi P_i\mid P_{-i}, Z_i, \sigma^2.
Pour tout i :
\begin{algorithm}
\begin{algorithmic}
\State $P_i^c \gets \sim P_i\mid P_{-i}^{(t)}$
\State $\alpha \gets \frac{p(Z_i\mid P_i^c)}{p(Z_i\mid P_i^{(t)})}$, le taux d'acceptation. Simplification grâce au choix du noyau de transition.
\State $u \gets \sim \mathcal{U}(0,1)$
\If{$u\leq \alpha$}
\State $P_i^{(t+1)} \gets P_i^c$
\Else
\State $P_i^{(t+1)} \gets P_i^{(t)}$
\EndIf
\end{algorithmic}
\caption{Metropolis within Gibbs}
\end{algorithm}
Loi de \sigma^2\mid P
\DeclareMathOperator{\Inv}{Inv}
On a un prior \Inv-\Gamma sur \sigma^{2} et on sait qu'il est conjugué avec la loi normale et il l'est aussi avec la loi normale matricielle (se voit grâce à la définition vectorisée de la loi normale matricielle).
La vraisemblance des P et le prior sur \sigma^2
\begin{align*}
p(P\mid \sigma^2) &= \frac{\exp\left( -\frac{1}{2\sigma^2} Tr((P-M)^{\top}\Sigma^{-1}(P-M)\right)}{(2\pi)^{n(K-1)/2}(\sigma^{2})^{n/2}|\Sigma|^\frac{(K-1)}{2}}\
p(\sigma^2|\alpha_{0},\beta_{0}) & = \frac{\beta_{0}^{\alpha_{0}}}{\Gamma(\alpha_{0})} \left( \frac{1}{\sigma²}\right)^{\alpha_{0}+1} \exp\left( -\frac{\beta_{0}}{\sigma²} \right)
\end{align*}
Et alors on a par le théorème de Bayes:
\begin{align*}
p(\sigma^2 \mid P)
\propto
\left(\frac{1}{\sigma^2}\right)^{\boxed{\alpha_0+\frac{n}{2}}+1}
\exp!\left(
-\frac{1}{\sigma^2}
\left[
\boxed{\beta_0
+
\frac{1}{2}
\operatorname{Tr}!\left(
(P-M)^{\top}\Sigma^{-1}(P-M)
\right)}
\right]
\right).
\end{align*}
Avec donc
\sigma^{2}\mid P \sim \Inv-\Gamma (\alpha_{0}+\frac{n}{2}, \beta_0+\frac{1}{2}
\operatorname{Tr}!\left((P-M)^{\top}\Sigma^{-1}(P-M)\right)
Loi de \rho\mid W
On pose un prior Dirichlet sur \boldsymbol{\rho}\sim Dir(\gamma_{1},\dots,\gamma_{r},\dots,\gamma_{R}) qui est conjugué avec la loi Catégorielle:
\begin{align*}
p(\boldsymbol{\rho}|\boldsymbol{\gamma}) &= \frac{1}{B(\boldsymbol{\gamma})} \prod_{r = 1}^{R}\rho_{r}^{\gamma_{r}-1}\
p(W\mid \boldsymbol{\gamma}) &= \prod_{j=1}^{n_{2}} p(W_{j}\mid \boldsymbol{\gamma})\
& = \prod_{j=1}^{n_{2}} \prod_{r=1}^{R} \rho_{r}^{\mathbb{1}{W{j}=r}}\
p(\pmb{\rho}\mid W) &\propto p(W\mid \pmb{\rho}) p(\pmb{\rho}\mid\boldsymbol{\gamma})\
& \propto \prod_{j=1}^{n_{2}} \prod_{r=1}^{R} \rho_{r}^{\mathbb{1}{W{j}=r}} \rho_{r}^{\gamma_{r}-1} = \prod_{j=1}^{n_{2}} \prod_{r=1}^{R} \rho_{r}^{\mathbb{1}{W{j}=r}+\gamma_{r}-1}\
& \propto \prod_{r=1}^{R} \prod_{j=1}^{n_{2}} \rho_{r}^{\mathbb{1}{W{j}=r}+\gamma_{r}-1} = \prod_{r=1}^{R} \rho_{r}^{\sum_{j=1}^{n_{2}}(\mathbb{1}{W{j}=r})+\gamma_{r}-1}\
& \propto \prod_{r=1}^{R} \rho_{r}^{\boxed{N_{r}+\gamma_{r}}-1}
\end{align*}
avec N_r = \sum_{j=1}^{n_{2}} \mathbb{1}_{W_{j}=r}, le comptage des W_{j} qui valent r.
Et on trouve ainsi que \boldsymbol{\rho}\mid W\sim Dir(N_{1}+\gamma_{1},\dots,,N_{r}+\gamma_{r},\dots,N_{R}+\gamma_{R}).
Usuellement, on prend \gamma_r = \frac{1}{R} (Jeffreys) selon Wikipédia si proche de 0 favorise parcimonie, tandis que 1 charge uniformément.
- Tester les effets du prior sur Dirichlet
Loi de Z\mid\alpha ,P,Y,W
\usepackage{tikz}
\usepackage{amsmath,amssymb}
\usetikzlibrary{arrows.meta,positioning,shapes.geometric,calc}
\begin{document}
\begin{tikzpicture}[
font=\sffamily,
node distance=1.35cm and 2.0cm,
>=Latex,
directed/.style={-{Latex}, line width=0.8pt, draw=gray!75},
bidirected/.style={-, line width=0.8pt, draw=red!75},
base/.style={draw=gray!70, line width=0.9pt, align=center, inner sep=5pt, text=black},
prior/.style={base, rectangle, rounded corners=1pt, fill=blue!7},
latent/.style={base, rectangle, rounded corners=6pt, fill=teal!8},
known/.style={base, diamond, aspect=1.35, fill=orange!12, inner sep=2pt},
observed/.style={base, circle, fill=purple!8,inner sep=1pt}
]
% Nodes: variance and covariance hyperparameters
\node[prior] (sigma) at (0, 2.8) {$\sigma^2$};
\node[known] (Sigma) at (3.2,2.8) {$\Sigma$};
% Nodes: latent probabilities
\node[latent] (Pi) [below of = sigma] {$P_i$};
\node[latent] (Pip) [below of = Sigma] {$P_{i^{\prime}}$};
% Nodes: latent assignments
\node[latent] (Zi) [below of = Pi] {$Z_i$};
\node[latent] (Zip) [below of = Pip] {$Z_{i^{\prime}}$};
% Nodes: observed response vectors
\node[observed] (Yidot) [below of = Zi] {$Y_{i,\bullet}$};
\node[observed] (Yipdot) [below of = Zip] {$Y_{i^{\prime},\bullet}$};
% Nodes: shared weights and correlation parameters
\node[prior] (rho) at ($(Zi)!0.5!(Zip)$) {$\boldsymbol{\rho}_{1:R}$};
\node[latent] (W) [below of = rho] {$W$};
% Node: intercept/offset parameter
\node[prior] (alpha) [below of = W] {$\alpha$};
% Directed edges from hyperparameters to latent probabilities
\draw[directed] (sigma) -- (Pi);
\draw[directed] (Sigma) -- (Pi);
\draw[directed] (sigma) -- (Pip);
\draw[directed] (Sigma) -- (Pip);
% Directed edges through latent assignments to observations
\draw[directed] (Pi) -- (Zi);
\draw[directed] (Pip) -- (Zip);
\draw[directed] (Zi) -- (Yidot);
\draw[directed] (Zip) -- (Yipdot);
% Directed edges from correlation parameters through W to observations
\draw[directed] (rho) -- (W);
\draw[directed] (W) -- (Yidot);
\draw[directed] (W) -- (Yipdot);
% Directed effects of alpha on observations
\draw[directed] (alpha) -- (Yidot);
\draw[directed] (alpha) -- (Yipdot);
% Bidirectional associations involving alpha
\draw[bidirected] (alpha) -- (W);
\draw[bidirected] (alpha) -- (Zi);
\draw[bidirected] (alpha) -- (Zip);
\end{tikzpicture}
\end{document}
Du DAG détaillé ci-dessus on peut déduire que pour chaque Z_{i} on doit regarder la loi de Z_{i}\mid Y_{i,\bullet},\alpha,W,P_{i}
\begin{align*}
p(Z_{i}\mid Y_{i,\bullet},\alpha,W,P_{i}) &\propto p(Y_{i,\bullet}\mid Z_{i},\alpha,W,P_{i})p(Z_{i}\mid W, \alpha, P_{i}) \
& \propto p(Y_{i,\bullet}\mid Z_{i}, \alpha, W)p(Z_{i}\mid P_{i})
\end{align*}
car Z_{i}\bot(W,\alpha)\mid P_{i} et Y_{i,\bullet}\bot P_{i}\mid Z_{i}.
On a :
\begin{align*}
p(Z_{i}\mid P_{i}) & = \ilr^{-1}(P_{i}) = (\pi_{i,1},\dots,\pi_{i,k},\dots,\pi_{i,K}) \
p(Y_{i,\bullet}\mid Z_{i}, \alpha, W) & = \prod_{j=1}^{n_{2}} \alpha_{Z_{i},W_{j}}^{Y_{ij}}(1- \alpha_{Z_{i},W_{j}})^{1-Y_{ij}} \
p(Z_{i} = k \mid P_{i}) & = \pi_{i,k} \
p(Y_{i,\bullet}\mid Z_{i} = k, \alpha, W) & = \prod_{j=1}^{n_{2}} \prod_{r=1}^{R}\alpha_{k,r}^{\mathbb{1}{W{j} = r} Y_{ij}}(1- \alpha_{k,r})^{\mathbb{1}{W{j} = r}(1-Y_{ij})} \
& = \prod_{r=1}^{R} \alpha_{k,r}^{\sum_{j=1}^{n_{2}}W_{jr}Y_{ij}} (1-\alpha_{k,r})^{\sum_{j=1}^{n_{2}}W_{jr}(1-Y_{ij})}
\end{align*}
En posant R_{ir}=\sum_{j=1}^{n_{2}}W_{jr}Y_{ij} et F_{ir}=\sum_{j=1}^{n_{2}}W_{jr}(1-Y_{ij}) on définit les matrices \mathbf{R} et \mathbf{F} qui comptent les succès et échecs par ligne i et groupe r.
Ce qui donne pour les \tilde{\pi}_{i,k} de la posterior:
\begin{align*}
\tilde{\pi}{i,k} = p(Z{i} = k\mid Y_{i,\bullet},\alpha,W,P_{i}) & \propto p(Y_{i,\bullet}\mid Z_{i} = k, \alpha, W, P_{i})p(Z_{i}=k\mid P_{i})\
& \propto \pi_{i,k} \prod_{r=1}^{R} \alpha_{k,r}^{R_{ir}}(1-\alpha_{k,r})^{F_{ir}}
\end{align*}
Et ainsi à la fin :
Z_{i}\mid P_{i}, Y, W, \alpha \sim \Cat_{K}(\tilde{\pi}{i,1},\dots, \tilde{\pi}{i,K})
Implémentation
\begin{align*}
\log \tilde{p_{ik}} & = \log \pi_{i,k} + \sum_{r=1}^{R} [R_{ir} \log\alpha_{k,r} + F_{ir}\log{1-\alpha_{k,r}}] \
\tilde{\pi}{i,k} &= \frac{\exp(\log \tilde{p}{ik} - m_{i})}{\sum_{l=1}^{K}\exp(\log \tilde{p_{il}}-m_{i})},\quad m_{i} = \max_{l} \log p_{il}
\end{align*}
Qui se simplifie encore en remarquant que \mathbf{F} = (\mathbf{1}_{n_{1}\times n_{2}}-Y)W = \mathbf{1}_{n_{1}\times n_{2}}W - \mathbf{R} avec \mathbf{1}_{n_{1}\times n_{2}} la matrice de 1 de taille n_{1}\times n_{2}. Et en posant \mathbf{N} = (N_{r})^{\top}_{r=1,\dots,R} (on rappelle N_{r} = \sum_{j=1}^{n_{2}}W_{jr}), on a
\begin{align*}
\mathbf{N} &= W^{\top}\mathbf{1}{n{2}},\quad \mathbf{N}^{\top} = \mathbf{1}{n{2}}^{\top} W\
\mathbf{1}{n{1}} \mathbf{N}^{\top} &= \mathbf{1}{n{1}} \mathbf{1}{n{2}}^{\top}W = \mathbf{1}{n{1}\times n_{2}} W
\end{align*}
Et donc:
\mathbf{F}=\mathbf{1}{n{1}}\mathbf{N}^{\top} - \mathbf{R}
Ainsi :
\log \tilde{\Pi} = \log(\ilr^{-1}(P)) + \mathbf{R}\log\alpha^{\top} + \mathbf{F} \log(1-\alpha)^{\top}
Loi de W\mid\alpha ,\rho,Y,Z
\usepackage{tikz}
\usepackage{amsmath,amssymb}
\usetikzlibrary{arrows.meta,positioning,shapes.geometric,calc}
\begin{document}
\begin{tikzpicture}[font=\sffamily,
node distance=1.35cm and 2.0cm,
>=Latex,
directed/.style={-{Latex}, line width=0.8pt, draw=gray!75},
bidirected/.style={-, line width=0.8pt, draw=red!75},
base/.style={draw=gray!70, line width=0.9pt, align=center, inner sep=5pt,
text=black},
prior/.style={base, rectangle, rounded corners=1pt, fill=blue!7},
latent/.style={base, rectangle, rounded corners=6pt, fill=teal!8},
known/.style={base, diamond, aspect=1.35, fill=orange!12, inner sep=2pt},
observed/.style={base, circle, fill=purple!8,inner sep=1pt}]
% Nodes: latent assignments
\node[latent] (Wj) at (0, 2.8) {$W_j$};
\node[prior] (rho) [right of = Wj] {$\rho$};
\node[latent] (Wjp) [right of = rho] {$W_{j^{\prime}}$};
\node[latent] (Z) [below of = rho] {$Z$};
% Nodes: observed response vectors
\node[observed] (Ydotj) [below of = Wj] {$Y_{\bullet,j}$};
\node[observed] (Ydotjp) [below of = Wjp] {$Y_{\bullet,j^{\prime}}$};
% Nodes: shared weights and correlation parameters
%\node[prior] (rho) at ($(Zi)!0.5!(Zip)$) {$\boldsymbol{\rho}_{1:R}$};
%\node[latent] (W) [below of = rho] {$W$};
% Node: intercept/offset parameter
\node[prior] (alpha) [below of = Z] {$\alpha$};
% Directed edges through latent assignments to observations
\draw[directed] (Z) -- (Ydotj);
\draw[directed] (Z) -- (Ydotjp);
% Directed edges from correlation parameters through W to observations
\draw[directed] (rho) -- (Wj);
\draw[directed] (rho) -- (Wjp);
\draw[directed] (Z) -- (Ydotj);
\draw[directed] (Z) -- (Ydotjp);
% Directed effects of alpha on observations
\draw[directed] (alpha) -- (Ydotj);
\draw[directed] (alpha) -- (Ydotjp);
% Bidirectional associations involving alpha
\draw[bidirected] (alpha) -- (Z);
\draw[bidirected] (alpha) -- (Wj);
\draw[bidirected] (alpha) -- (Wjp);
\end{tikzpicture}
\end{document}
Du DAG détaillé ci-dessus on peut déduire que pour chaque Z_{i} on doit regarder la loi de W_{j}\mid Y_{\bullet,j},\alpha,Z,\rho
\begin{align*}
p(W_{j}\mid Y_{\bullet,j},\alpha,Z,\rho) &\propto p(Y_{\bullet,j}\mid W_{j},\alpha,Z,\rho)p(W_{j}\mid Z, \alpha, \rho) \
%& \propto p(Y_{i,\bullet}\mid Z_{i}, \alpha, W)p(Z_{i}\mid P_{i})
\end{align*}
A MODIFIER
car Z_{i}\bot(W,\alpha)\mid P_{i} et Y_{i,\bullet}\bot P_{i}\mid Z_{i}.
On a :
\begin{align*}
p(Z_{i}\mid P_{i}) & = \ilr^{-1}(P_{i}) = (\pi_{i,1},\dots,\pi_{i,k},\dots,\pi_{i,K}) \
p(Y_{i,\bullet}\mid Z_{i}, \alpha, W) & = \prod_{j=1}^{n_{2}} \alpha_{Z_{i},W_{j}}^{Y_{ij}}(1- \alpha_{Z_{i},W_{j}})^{1-Y_{ij}} \
p(Z_{i} = k \mid P_{i}) & = \pi_{i,k} \
p(Y_{i,\bullet}\mid Z_{i} = k, \alpha, W) & = \prod_{j=1}^{n_{2}} \prod_{r=1}^{R}\alpha_{k,r}^{\mathbb{1}{W{j} = r} Y_{ij}}(1- \alpha_{k,r})^{\mathbb{1}{W{j} = r}(1-Y_{ij})} \
& = \prod_{r=1}^{R} \alpha_{k,r}^{\sum_{j=1}^{n_{2}}W_{jr}Y_{ij}} (1-\alpha_{k,r})^{\sum_{j=1}^{n_{2}}W_{jr}(1-Y_{ij})}
\end{align*}
En posant R_{ir}=\sum_{j=1}^{n_{2}}W_{jr}Y_{ij} et F_{ir}=\sum_{j=1}^{n_{2}}W_{jr}(1-Y_{ij}) on définit les matrices \mathbf{R} et \mathbf{F} qui comptent les succès et échecs par ligne i et groupe r.
Ce qui donne pour les \tilde{\pi}_{i,k} de la posterior:
\begin{align*}
\tilde{\pi}{i,k} = p(Z{i} = k\mid Y_{i,\bullet},\alpha,W,P_{i}) & \propto p(Y_{i,\bullet}\mid Z_{i} = k, \alpha, W, P_{i})p(Z_{i}=k\mid P_{i})\
& \propto \pi_{i,k} \prod_{r=1}^{R} \alpha_{k,r}^{R_{ir}}(1-\alpha_{k,r})^{F_{ir}}
\end{align*}
Et ainsi à la fin :
Z_{i}\mid P_{i}, Y, W, \alpha \sim \Cat_{K}(\tilde{\pi}{i,1},\dots, \tilde{\pi}{i,K})
Loi de \alpha \mid Y,Z,W
On pose un prior Beta sur chaque \alpha_{qr}\sim Beta(a_{0},b_{0}) qui est conjugué avec la vraisemblance:
\begin{align*}
p(\alpha_{qr}) &\propto \alpha_{qr}^{a_{0}-1} (1-\alpha_{qr})^{b_{0}-1} \
p(Y\mid\alpha_{qr}, Z, W) &= \prod_{i,j: Z_i=q, W_{j}=r} p(Y_{ij}\mid\alpha_{qr},Z_{i},W_{j}) \
&= \prod_{i,j: Z_{i}=r,W_{j}=r} \alpha_{qr}^{Y_{ij}}(1-\alpha_{qr})^{1-Y_{ij}} \
& = \prod_{i,j} \alpha_{qr}^{\mathbb{1}{Z{i}=q}\mathbb{1}{W{j}=r}Y_{ij}}(1-\alpha_{qr})^{\mathbb{1}{Z{i}=q}\mathbb{1}{W{j}=r}(1-Y_{ij})}\
& = \alpha_{qr}^{S_{qr}}(1-\alpha_{qr})^{E_{qr}}\
p(\alpha_{qr}\mid Y, Z, W) &\propto p(Y\mid\alpha_{qr}, Z, W) p(\alpha_{qr})\
& \propto \alpha_{qr}^{\boxed{S_{qr} + a_{0}}-1} (1-\alpha_{qr})^{\boxed{E_{qr}+b_{0}} -1}\
\end{align*}
avec S_{qr}=\sum_{i,j}\mathbb{1}_{Z_{i}=q}\mathbb{1}_{W_{j}=r}Y_{ij} et E_{qr}=\sum_{i,j}\mathbb{1}_{Z_{i}=q}\mathbb{1}_{W_{j}=r}(1-Y_{ij}) qui définissent les matrices de comptages des succès et échecs de la réalisation. Les formules de calculs sont alors \mathbf{S}=\mathbf{Z}^{\top}\mathbf{Y}\mathbf{W} et \mathbf{E}=\mathbf{Z}^{\top}(1-\mathbf{Y})\mathbf{W} avec \mathbf{Z} la matrice de taille n_{1}\times Q et \mathbf{W} la matrice de taille n_{2}\times R qui indiquent laquelle des classes est peuplée par l'individu i (ou j).
Pour raccourcir on note Z_{iq}=\mathbb{1}_{Z_{i}=q} et W_{jr}=\mathbb{1}_{W_{j}=r} qui sont aussi les termes des matrices définies avant.
\alpha_{qr}\sim Beta(S_{qr}+a_{0},E_{qr}+b_{0}), \quad\boldsymbol{\alpha} \sim MatBeta(\mathbf{S}+a_{0},\mathbf{E} +b_{0})