diff --git a/rapport/chapter4-simulation-studies.tex b/rapport/chapter4-simulation-studies.tex index 7878aaf..fcf5a4f 100644 --- a/rapport/chapter4-simulation-studies.tex +++ b/rapport/chapter4-simulation-studies.tex @@ -9,6 +9,7 @@ performances and the clustering capacities. the report repository at \url{https://gitea.polarolouis.fr/polarolouis/rapport-CEI-MIA-2023}. -% \include{Rcodes/simulation/inference_analyze} -% \include{Rcodes/simulation/model_selection_analyze} + +\input{chapter4-simulations/inference.tex} +\input{chapter4-simulations/model-selection} % \include{Rcodes/simulation/netclustering_analyze} diff --git a/rapport/chapter4-simulations/inference.tex b/rapport/chapter4-simulations/inference.tex new file mode 100644 index 0000000..1754cfc --- /dev/null +++ b/rapport/chapter4-simulations/inference.tex @@ -0,0 +1,122 @@ +\section{Efficiency of the inference} + +The goal here is to assess the quality of the inference procedure. + +\paragraph{Simulation settings} For this simulation the data is simulated with +$M = 2, n_{1}^{m} = 120, n_{2}^{m} = 120, Q_1 = Q_2 = 4$, $\bm{\alpha}, \bm{\pi}$ +and $\bm{\rho}$ are set as follows: +\begin{align*} + & \bm{\alpha} = .25 + + \begin{pmatrix} + 3 \eps[\alpha] & 2 \eps[\alpha] & \eps[\alpha] & - \eps[\alpha] \\ + 2 \eps[\alpha] & 2 \eps[\alpha] & - \eps[\alpha] & \eps[\alpha] \\ + \eps[\alpha] & - \eps[\alpha] & \eps[\alpha] & 2 \eps[\alpha] \\ + - \eps[\alpha] & \eps[\alpha] & 2 \eps[\alpha] & 0 + \end{pmatrix}, +\end{align*} +\begin{align*} + \bm{\pi}^1 = \sigma_1 + \begin{pmatrix} + 0.2 & 0.4 & 0.4 & 0 + \end{pmatrix}, + & & \bm{\pi}^2 = + \begin{pmatrix} + 0.25 & 0.25 & 0.25 & 0.25 + \end{pmatrix}, \\ + \bm{\rho}^1 = + \begin{pmatrix} + 0.25 & 0.25 & 0.25 & 0.25 + \end{pmatrix}, & & + \bm{\rho}^2 = \sigma_2 + \begin{pmatrix} + 0 & 0.33 & 0.33 & 0.33 + \end{pmatrix}, & & +\end{align*} +with $\eps[\alpha]$ taking nine equally spaced values ranging from 0 to 0.24. +For each value of $\eps[\alpha]$, 108 datasets ($X_1, X_2$) are simulated, +resulting in $9 \times 108 = 972$ datasets. More precisely, for each dataset, +we pick uniformly at random two permutations of $\{ 1, \dots , 4 \}$ +($\sigma_1, \sigma_2$) with the constraint that $\sigma_1(4) \neq \sigma_2(1)$. +This ensures that each of the two networks have a non-empty block that is empty +in the other one. Then the networks are simulated with +$\mathcal{B}$ern-$BiSBM_{120,120}(Q_1 = 4, Q_2 = 4, + \bm{\alpha}, \bm{\pi}^m, \bm{\rho}^m)$ +with the previous parameters. Each network has 2 blocks in common and their +connectivity structures encompass a mix of core-periphery, assortative +community and disassortative community structures, depending on which 3 of the 4 +blocks are selected for each network. $\eps[\alpha]$ represents the strength of +these structures, the larger, the easier it is to tell apart one block from +another. +The true model of all the simulation is a $\pi\rho\text{-}colBiSBM$. + +\paragraph{Inference} We want to measure the quality of the +inference procedure, for this we use the inference described in the section +\ref{sec:variational-estimation-of-the-parameters}. + +\paragraph{Quality indicators} To assess the quality of the inference, we will +use the following indicators: +\begin{itemize} + \item First, for each dataset, we put in competition $\pi\text{-}colBiSBM$ with + $sep\text{-}BiSBM$, $iid\text{-}colBiSBM$, $\rho\text{-}colBiSBM$, + $\pi\rho\text{-}colBiSBM$ + respectively. To do so, for each dataset, we compute the + BIC-L of each model $\pi\text{-}colBiSBM$ is preferred to $sep\text{-}BiSBM$ + (resp. $iid\text{-}colBiSBM$, $\rho\text{-}colBiSBM$, + $\pi\rho\text{-}colBiSBM$) if + its BIC-L is greater. + \item When considering our \emph{colBiSBM} models we compare + $\widehat{Q_1}$, $\widehat{Q_2}$ to + their true values. ($Q_1 = 4$ and $Q_2 = 4$) + \item Finally, we assess the quality of the node grouping by computing the + Adjusted Rand Index \parencite{hubertComparingPartitions1985}, ARI = 0 + for a random grouping, ARI = 1 for a perfect recovery. For each + network, for the + $\pi\text{-}colBiSBM$, $\rho\text{-}colBiSBM$, + $\pi\rho\text{-}colBiSBM$ we compare the inferred block memberships to + the real ones by computing the mean of the ARI per axis over the two + networks + \begin{equation*} + \overline{\text{ARI}}_d = \frac{1}{2} \text{ARI}\big( \text{ARI}(\widehat{\bm{Z}^1_d},\bm{Z}^1_d) + \text{ARI}(\widehat{\bm{Z}^2_d},\bm{Z}^2_d) \big), + \end{equation*} + where $d$ is the dimension or axis (i.e., rows, $d=1$, or columns, $d=2$) of + the block memberships. + And we compute the ARI of the whole set of nodes to account for block + pairing between networks + \begin{equation*} + \text{ARI}_d = \text{ARI}\big((\widehat{\bm{Z}^1_d},\widehat{\bm{Z}^2_d}),(\bm{Z}^1_d,\bm{Z}^2_d) \big). + \end{equation*} +\end{itemize} + +All these quality indicators are averaged over the 108 datasets. The results are +provided in the tables \ref{tab:per_model_sep} to \ref{tab:per_model_pirho}. Each line corresponds to the +108 datasets for a given value of value of $\eps[\alpha]$. + +\begin{figure}[ht] + \centering + \input{../tikz/simulations/inference/model-proportions.tex} + \caption{Preferred model proportions over all datasets in function of + $\eps[\alpha]$} + \label{fig:prop-modele-pref} +\end{figure} + +\foreach \modelname in {sep,iid,pi,rho,pirho}{ + \input{../tables/simulations/inference/\modelname.tex} + } + +\paragraph{Results} +For the model comparison, when $\eps[\alpha]$ is small +($\eps[\alpha]\in[0, .04]$), the simulation model is close to the +Erd\H{o}s-Reńyi network and it is very hard to find any structure beyond the one +of a single block on each dimension. + +On the figure \ref{fig:inference-proportion-preferred} and table +\ref{tab:proportion-preferred-table} we can see that from +$\eps[\alpha] = 0.06$ around $70\%$ of the time the $\pi\rho\text{-}colBiSBM$ +model (i.e., the correct one) is selected. + +An interesting result we can read in the tables is that our models outperform +the $sep\text{-}BiSBM$ when considering the ARI on the whole set of nodes +($\text{ARI}_d$). This means that our models are able to recover the block +pairing \emph{between the networks} in addition to recovering the blocks and +their parameters. +\clearpage \ No newline at end of file diff --git a/rapport/chapter4-simulations/model-selection.tex b/rapport/chapter4-simulations/model-selection.tex new file mode 100644 index 0000000..abb70ae --- /dev/null +++ b/rapport/chapter4-simulations/model-selection.tex @@ -0,0 +1,128 @@ +\section[Capacity to distinguish models]{Capacity to distinguish + $\pi\rho\text{-}colBiSBM$~from\newline$iid\text{-}colBiSBM$ and other + models}\label{capacity-to-distinguish-pirhotext-colbisbm-from-iidtext-colbisbm-and-other-variants} + +The idea of this model selection simulations is to assess how the model +select the correct \emph{colBiSBM} model among the possible ones: +\textit{iid, pi, rho, pirho}. This difference being based on the row and +col block proportions. + +For this task we choose the same simulation settings as +\cite{chabert-liddellLearningCommonStructures2024a}. + +Namely $n_{1}^{m} = 90, n_{2}^{m} = 90, Q_1 = Q_2 = 3$, +$\bm{\alpha}, \bm{\pi}$ and $\bm{\rho}$ are set as follows: +\begin{minipage}[l]{0.4\linewidth} + \begin{align*} + \bm{\alpha} =.25 + \begin{pmatrix} + 3 \eps[\alpha] & 2 \eps[\alpha] & \eps[\alpha] \\ + 2 \eps[\alpha] & 2 \eps[\alpha] & - \eps[\alpha] \\ + \eps[\alpha] & - \eps[\alpha] & \eps[\alpha] + \end{pmatrix}, + \end{align*} +\end{minipage} +\hfill +\begin{minipage}[r]{0.4\linewidth} + \begin{align*} + \bm{\pi}^1 = \begin{pmatrix} + \frac{1}{3}, & \frac{1}{3}, & \frac{1}{3} + \end{pmatrix}, & & \bm{\pi}^2 = \sigma\begin{pmatrix} + \frac{1}{3} - \eps[\pi], & \frac{1}{3}, & \frac{1}{3} + \eps[\pi] + \end{pmatrix}, \\ + \bm{\rho}^1 = \begin{pmatrix} + \frac{1}{3}, & \frac{1}{3}, & \frac{1}{3} + \end{pmatrix}, & & \bm{\rho}^2 = \sigma\begin{pmatrix} + \frac{1}{3} - \eps[\rho], & \frac{1}{3}, & \frac{1}{3} + \eps[\rho] + \end{pmatrix}, + \end{align*} +\end{minipage} +with $\eps[\alpha] = 0.16$, $\eps[\pi]$ and +$\eps[\rho]$ taking 9 values equally spaced in +$\left[ 0, .28\right]$. We simulate 324 different collections for each +value of $\eps[\pi]$ and $\eps[\rho]$. + +$\pi\rho\text{-}colBiSBM$, $\pi\text{-}colBiSBM$, +$\rho\text{-}colBiSBM$, $iid\text{-}colBiSBM$ and +$sep\text{-}BiSBM$ are put in competition and the model with the +greater BIC-L is selected as the \emph{preferred model}. + +When $\eps[\pi] = 0$, $\bm{\pi}^1 = \bm{\pi}^2$, $\eps[\rho] = 0$ +and $\bm{\rho}^1 = \bm{\rho}^2$, the generated collection is an +$iid\text{-}colBiSBM$. When $\eps[\pi] > 0$ or +$\bm{\pi}^1 \neq \bm{\pi}^2$, the model is a $\pi\text{-}colBiSBM$. +When $\eps[\rho] > 0$ or $\bm{\rho}^1 \neq \bm{\rho}^2$, the model +is a $\rho\text{-}colBiSBM$. Finally, when $\eps[\pi] > 0$ or +$\bm{\pi}^1 \neq \bm{\pi}^2$ and $\eps[\rho] > 0$ or +$\bm{\rho}^1 \neq \bm{\rho}^2$, the model is a +$\pi\rho\text{-}colBiSBM$. + +\begin{table}[!h] + + \caption{\label{tab:tables}\label{tab:pi-model-sel}Model selection for varying $\pi$ mixture parameters} + \centering + \begin{tabular}[t]{lccccl} + \toprule + \multicolumn{1}{c}{ } & \multicolumn{4}{c}{Models} & \multicolumn{1}{c}{Blocks} \\ + \cmidrule(l{3pt}r{3pt}){2-5} \cmidrule(l{3pt}r{3pt}){6-6} + $\eps[\pi]$ & $iid\text{-}colBiSBM$ & $\pi\text{-}colBiSBM$ & $\rho\text{-}colBiSBM$ & $\pi\rho\text{-}colBiSBM$ & Recovered $Q_1$ \\ + \midrule + 0.00 & 0.65 & 0.00 & 0.35 & 0.00 & 3 \\ + 0.04 & 0.66 & 0.00 & 0.34 & 0.00 & 3 \\ + 0.07 & 0.64 & 0.01 & 0.34 & 0.01 & 3.01 $\pm$ 0.01 \\ + 0.11 & 0.63 & 0.03 & 0.31 & 0.03 & 3.01 $\pm$ 0.01 \\ + 0.14 & 0.55 & 0.12 & 0.28 & 0.05 & 3 \\ + \addlinespace + 0.18 & 0.39 & 0.26 & 0.21 & 0.13 & 3.01 \\ + 0.21 & 0.23 & 0.42 & 0.13 & 0.23 & 3.01 \\ + 0.25 & 0.10 & 0.56 & 0.05 & 0.29 & 3.02 $\pm$ 0.01 \\ + 0.28 & 0.01 & 0.65 & 0.01 & 0.33 & 3.01 $\pm$ 0.01 \\ + \bottomrule + \end{tabular} +\end{table} + +\begin{table}[!h] + + \caption{\label{tab:tables}\label{tab:rho-model-sel}Model selection for varying $\rho$ mixture parameters} + \centering + \begin{tabular}[t]{lccccl} + \toprule + \multicolumn{1}{c}{ } & \multicolumn{4}{c}{Models} & \multicolumn{1}{c}{Blocks} \\ + \cmidrule(l{3pt}r{3pt}){2-5} \cmidrule(l{3pt}r{3pt}){6-6} + $\eps[\rho]$ & $iid\text{-}colBiSBM$ & $\pi\text{-}colBiSBM$ & $\rho\text{-}colBiSBM$ & $\pi\rho\text{-}colBiSBM$ & Recovered $Q_2$ \\ + \midrule + 0.00 & 0.63 & 0.37 & 0.00 & 0.00 & 3 \\ + 0.04 & 0.65 & 0.34 & 0.00 & 0.01 & 3 \\ + 0.07 & 0.64 & 0.33 & 0.01 & 0.01 & 3 \\ + 0.11 & 0.64 & 0.31 & 0.03 & 0.02 & 3 \\ + 0.14 & 0.53 & 0.29 & 0.11 & 0.06 & 3 \\ + \addlinespace + 0.18 & 0.42 & 0.20 & 0.24 & 0.14 & 3.01 \\ + 0.21 & 0.25 & 0.12 & 0.40 & 0.22 & 3.01 \\ + 0.25 & 0.08 & 0.06 & 0.58 & 0.29 & 3.01 \\ + 0.28 & 0.01 & 0.01 & 0.65 & 0.32 & 3 \\ + \bottomrule + \end{tabular} +\end{table} + +\begin{figure}[H] + % \includegraphics{./Rcodes/simulation/img/plot_model_function_eps.png} + \caption{Plot of preferred model in function of $\eps[\pi]$ and $\eps[\rho]$} + \label{fig:pref_model_func_eps} +\end{figure} + +\paragraph{Results:} + +On the figure \ref{fig:pref_model_func_eps} and tables +\ref{tab:pi-model-sel} and \ref{tab:rho-model-sel}, one can see that +there is a turning point around $\eps[\pi] = 0.2$ (resp. +$\eps[\rho] = 0.2$), before which $iid\text{-}colBiSBM$ and +$\rho\text{-}colBiSBM$ (resp. $\pi\text{-}colBiSBM$) are selected +most of the times and after $0.2$ the $\pi\text{-}colBiSBM$ (resp. +$\rho\text{-}colBiSBM$) and $\pi\rho\text{-}colBiSBM$ gets more and +more selected, highlighting our capacity to recover the simulated +structure. + +\paragraph*{Remark:} + +Please note that when ``Recovered $Q_1$(or $Q_2$)'' is not an +integer it's because some procedures returned a value other than 3. diff --git a/rapport/rapport.pdf b/rapport/rapport.pdf index 94a386a..8c39a6c 100644 Binary files a/rapport/rapport.pdf and b/rapport/rapport.pdf differ diff --git a/rapport/rapport.tex b/rapport/rapport.tex index 7de3824..a5ec46b 100644 --- a/rapport/rapport.tex +++ b/rapport/rapport.tex @@ -8,9 +8,13 @@ \usepackage[cyr]{aeguill} % Police vectorielle TrueType, guillemets francais \usepackage{epsfig} % pour gérer les images \usepackage{amsmath,amsthm, mathtools} % très bon mode mathématique -\usepackage{amsfonts,amssymb,bm, bbold}% permet la definition des ensembles +\usepackage{amsfonts,amssymb,bm}% permet la definition des ensembles +\DeclareMathAlphabet{\mathbbb}{U}{bbold}{m}{n} % Pour l'indicatrice + \usepackage{algorithm2e} % pour les algorithmes -\usepackage{algpseudocode} % pour les algorithmes +% \usepackage{algpseudocode} % pour les algorithmes +\RestyleAlgo{ruled} + \usepackage{float} % pour le placement des figure \usepackage{url} % pour une gestion efficace des url \usepackage[citecolor=blueind,urlcolor=blueps,bookmarks=false,hypertexnames=true]{hyperref} % pour les hyperliens dans le document @@ -20,7 +24,6 @@ \usepackage[outline]{contour} \usepackage[super]{nth} - \usepackage{caption} % Figures \usepackage{subcaption} % And Subfigures @@ -31,8 +34,11 @@ \usepackage{titling} \usepackage{rotating} % For allowing to rotate figures -\usepackage{svg} % To allow svg inclusions + \usepackage{float} % To allow Pandoc to control figure placement +\floatplacement{figure}{H} +\floatplacement{table}{H} + \usepackage{booktabs} % For good tables % FancyHDR @@ -55,16 +61,12 @@ % Images \graphicspath{{../img/}{../figure/}} -% Figure placement -\floatplacement{figure}{t} - %% Tikz Related \usetikzlibrary{calc,shapes,backgrounds,arrows,automata,shadows,positioning, arrows,shapes,positioning,shadows,trees,calc,backgrounds, automata,positioning} - \tikzset{ basic/.style = {draw, text width=3cm, font=\sffamily, rectangle}, root/.style = {basic, rounded corners=2pt, thin, align=center, @@ -203,15 +205,13 @@ automata,positioning} \pagenumbering{roman} \tableofcontents \include{remerciements} - \include{chapter1-presentation_UMR} + % \include{chapter1-presentation_UMR} \end{selectlanguage} \begin{selectlanguage}{english} \pagenumbering{arabic} \include{chapter2-context} - \include{chapter3-structure-detection} - \include{chapter4-simulation-studies} % \chapter{Applications} @@ -221,8 +221,8 @@ automata,positioning} \addtocounter{maincontentend}{1} \addtocounter{customchapter}{1} \printbibliography - \listoffigures - \listoftables + % \listoffigures + % \listoftables \end{selectlanguage} -\end{document} \ No newline at end of file +\end{document} diff --git a/tables/simulations/inference/iid.tex b/tables/simulations/inference/iid.tex new file mode 100644 index 0000000..af67e7b --- /dev/null +++ b/tables/simulations/inference/iid.tex @@ -0,0 +1,21 @@ +\begin{table}[!h] + +\caption{\label{tab:per_model_iid}Quality metrics for $iid$$\text{-}colBiSBM$} +\centering +\begin{tabular}[t]{rllllll} +\toprule +$\eps[\alpha]$ & $\overline{\text{ARI}}_{1}$ & $\overline{\text{ARI}}_{2}$ & $\text{ARI}_{1}$ & $\text{ARI}_{2}$ & $\mathbbb{1}_{\widehat{Q_1}=Q_1}$ & $\mathbbb{1}_{\widehat{Q_2}=Q_2}$\\ +\midrule +0.00 & 0 & 0 & 0 & 0 & 0 & 0\\ +0.03 & 0.01 & 0.02 & 0.01 & 0.02 & 0 & 0\\ +0.06 & 0.7 $\pm$ 0.01 & 0.69 $\pm$ 0.01 & 0.55 $\pm$ 0.02 & 0.54 $\pm$ 0.02 & 0.61 $\pm$ 0.05 & 0.63 $\pm$ 0.05\\ +0.09 & 0.96 & 0.95 & 0.86 $\pm$ 0.02 & 0.85 $\pm$ 0.02 & 0.95 $\pm$ 0.02 & 0.96 $\pm$ 0.02\\ +0.12 & 0.99 & 0.99 & 0.9 $\pm$ 0.02 & 0.89 $\pm$ 0.02 & 0.95 $\pm$ 0.02 & 0.86 $\pm$ 0.03\\ +\addlinespace +0.15 & 1 & 0.99 & 0.91 $\pm$ 0.02 & 0.91 $\pm$ 0.02 & 0.94 $\pm$ 0.02 & 0.88 $\pm$ 0.03\\ +0.18 & 1 & 1 & 0.95 $\pm$ 0.01 & 0.94 $\pm$ 0.02 & 0.93 $\pm$ 0.03 & 0.97 $\pm$ 0.02\\ +0.21 & 1 & 1 & 0.94 $\pm$ 0.02 & 0.94 $\pm$ 0.02 & 0.94 $\pm$ 0.02 & 0.94 $\pm$ 0.02\\ +0.24 & 1 & 1 & 0.93 $\pm$ 0.02 & 0.92 $\pm$ 0.02 & 0.91 $\pm$ 0.03 & 0.92 $\pm$ 0.03\\ +\bottomrule +\end{tabular} +\end{table} \ No newline at end of file diff --git a/tables/simulations/inference/pi.tex b/tables/simulations/inference/pi.tex new file mode 100644 index 0000000..155bcc8 --- /dev/null +++ b/tables/simulations/inference/pi.tex @@ -0,0 +1,21 @@ +\begin{table}[!h] + +\caption{\label{tab:per_model_pi}Quality metrics for $\pi$$\text{-}colBiSBM$} +\centering +\begin{tabular}[t]{rllllll} +\toprule +$\eps[\alpha]$ & $\overline{\text{ARI}}_{1}$ & $\overline{\text{ARI}}_{2}$ & $\text{ARI}_{1}$ & $\text{ARI}_{2}$ & $\mathbbb{1}_{\widehat{Q_1}=Q_1}$ & $\mathbbb{1}_{\widehat{Q_2}=Q_2}$\\ +\midrule +0.00 & 0 & 0 & 0 & 0 & 0 & 0\\ +0.03 & 0.01 & 0.02 & 0.01 & 0.01 & 0 & 0\\ +0.06 & 0.74 $\pm$ 0.01 & 0.71 $\pm$ 0.01 & 0.62 $\pm$ 0.02 & 0.58 $\pm$ 0.02 & 0.59 $\pm$ 0.05 & 0.64 $\pm$ 0.05\\ +0.09 & 0.97 & 0.95 & 0.87 $\pm$ 0.02 & 0.84 $\pm$ 0.02 & 0.71 $\pm$ 0.04 & 1\\ +0.12 & 1 & 0.98 & 0.91 $\pm$ 0.02 & 0.89 $\pm$ 0.02 & 0.73 $\pm$ 0.04 & 1\\ +\addlinespace +0.15 & 1 & 0.99 & 0.93 $\pm$ 0.02 & 0.91 $\pm$ 0.02 & 0.84 $\pm$ 0.04 & 1\\ +0.18 & 1 & 0.99 & 0.94 $\pm$ 0.01 & 0.92 $\pm$ 0.02 & 0.85 $\pm$ 0.03 & 1\\ +0.21 & 1 & 0.99 & 0.91 $\pm$ 0.02 & 0.87 $\pm$ 0.03 & 0.81 $\pm$ 0.04 & 1\\ +0.24 & 1 & 0.99 & 0.93 $\pm$ 0.02 & 0.9 $\pm$ 0.02 & 0.83 $\pm$ 0.04 & 0.99 $\pm$ 0.01\\ +\bottomrule +\end{tabular} +\end{table} \ No newline at end of file diff --git a/tables/simulations/inference/pirho.tex b/tables/simulations/inference/pirho.tex new file mode 100644 index 0000000..d7139ee --- /dev/null +++ b/tables/simulations/inference/pirho.tex @@ -0,0 +1,21 @@ +\begin{table}[!h] + +\caption{\label{tab:per_model_pirho}Quality metrics for $\pi\rho$$\text{-}colBiSBM$} +\centering +\begin{tabular}[t]{rllllll} +\toprule +$\eps[\alpha]$ & $\overline{\text{ARI}}_{1}$ & $\overline{\text{ARI}}_{2}$ & $\text{ARI}_{1}$ & $\text{ARI}_{2}$ & $\mathbbb{1}_{\widehat{Q_1}=Q_1}$ & $\mathbbb{1}_{\widehat{Q_2}=Q_2}$\\ +\midrule +0.00 & 0 & 0 & 0 & 0 & 0 & 0\\ +0.03 & 0.01 & 0.01 & 0.01 & 0.02 & 0 & 0\\ +0.06 & 0.76 $\pm$ 0.01 & 0.75 $\pm$ 0.01 & 0.65 $\pm$ 0.02 & 0.64 $\pm$ 0.02 & 0.86 $\pm$ 0.03 & 0.83 $\pm$ 0.04\\ +0.09 & 0.97 & 0.97 & 0.91 $\pm$ 0.02 & 0.91 $\pm$ 0.02 & 0.9 $\pm$ 0.03 & 0.92 $\pm$ 0.03\\ +0.12 & 1 & 1 & 0.92 $\pm$ 0.02 & 0.91 $\pm$ 0.02 & 0.91 $\pm$ 0.03 & 0.86 $\pm$ 0.03\\ +\addlinespace +0.15 & 1 & 1 & 0.95 $\pm$ 0.02 & 0.94 $\pm$ 0.02 & 0.93 $\pm$ 0.03 & 0.91 $\pm$ 0.03\\ +0.18 & 1 & 1 & 0.91 $\pm$ 0.02 & 0.91 $\pm$ 0.02 & 0.87 $\pm$ 0.03 & 0.86 $\pm$ 0.03\\ +0.21 & 1 & 1 & 0.94 $\pm$ 0.02 & 0.94 $\pm$ 0.02 & 0.91 $\pm$ 0.03 & 0.93 $\pm$ 0.03\\ +0.24 & 1 & 1 & 0.93 $\pm$ 0.02 & 0.93 $\pm$ 0.02 & 0.9 $\pm$ 0.03 & 0.91 $\pm$ 0.03\\ +\bottomrule +\end{tabular} +\end{table} \ No newline at end of file diff --git a/tables/simulations/inference/preferred.tex b/tables/simulations/inference/preferred.tex new file mode 100644 index 0000000..78e6528 --- /dev/null +++ b/tables/simulations/inference/preferred.tex @@ -0,0 +1,21 @@ +\begin{table}[!h] + +\caption{\label{tab:proportion-preferred-table}Proportions of models selected per \eps[\alpha] (data for Figure \ref{fig:inference-proportion-preferred})} +\centering +\begin{tabular}[t]{rccccc} +\toprule +\eps[\alpha] & $sep\text{-}BiSBM$ & $iid\text{-}colBiSBM$ & $\pi\text{-}colBiSBM$ & $\rho\text{-}colBiSBM$ & $\pi\rho\text{-}colBiSBM$\\ +\midrule +0.00 & 1.00 & 0.00 & 0.00 & 0.00 & 0.00\\ +0.03 & 0.52 & 0.25 & 0.06 & 0.09 & 0.07\\ +0.06 & 0.01 & 0.04 & 0.13 & 0.06 & 0.77\\ +0.09 & 0.00 & 0.04 & 0.02 & 0.00 & 0.94\\ +0.12 & 0.00 & 0.04 & 0.00 & 0.00 & 0.96\\ +\addlinespace +0.15 & 0.00 & 0.05 & 0.00 & 0.00 & 0.95\\ +0.18 & 0.00 & 0.06 & 0.00 & 0.00 & 0.94\\ +0.21 & 0.00 & 0.05 & 0.00 & 0.00 & 0.95\\ +0.24 & 0.00 & 0.03 & 0.00 & 0.00 & 0.97\\ +\bottomrule +\end{tabular} +\end{table} \ No newline at end of file diff --git a/tables/simulations/inference/rho.tex b/tables/simulations/inference/rho.tex new file mode 100644 index 0000000..d996814 --- /dev/null +++ b/tables/simulations/inference/rho.tex @@ -0,0 +1,21 @@ +\begin{table}[!h] + +\caption{\label{tab:per_model_rho}Quality metrics for $\rho$$\text{-}colBiSBM$} +\centering +\begin{tabular}[t]{rllllll} +\toprule +$\eps[\alpha]$ & $\overline{\text{ARI}}_{1}$ & $\overline{\text{ARI}}_{2}$ & $\text{ARI}_{1}$ & $\text{ARI}_{2}$ & $\mathbbb{1}_{\widehat{Q_1}=Q_1}$ & $\mathbbb{1}_{\widehat{Q_2}=Q_2}$\\ +\midrule +0.00 & 0 & 0 & 0 & 0 & 0 & 0\\ +0.03 & 0.01 & 0.01 & 0.01 & 0.02 & 0 & 0\\ +0.06 & 0.72 $\pm$ 0.01 & 0.74 $\pm$ 0.01 & 0.57 $\pm$ 0.02 & 0.6 $\pm$ 0.02 & 0.61 $\pm$ 0.05 & 0.56 $\pm$ 0.05\\ +0.09 & 0.94 & 0.97 & 0.83 $\pm$ 0.02 & 0.85 $\pm$ 0.02 & 1 & 0.6 $\pm$ 0.05\\ +0.12 & 0.98 & 1 & 0.87 $\pm$ 0.02 & 0.9 $\pm$ 0.02 & 1 & 0.75 $\pm$ 0.04\\ +\addlinespace +0.15 & 0.98 & 1 & 0.83 $\pm$ 0.03 & 0.88 $\pm$ 0.02 & 1 & 0.72 $\pm$ 0.04\\ +0.18 & 0.98 & 1 & 0.82 $\pm$ 0.03 & 0.87 $\pm$ 0.02 & 0.99 $\pm$ 0.01 & 0.71 $\pm$ 0.04\\ +0.21 & 0.98 & 1 & 0.87 $\pm$ 0.02 & 0.9 $\pm$ 0.02 & 1 & 0.77 $\pm$ 0.04\\ +0.24 & 0.98 & 1 & 0.84 $\pm$ 0.03 & 0.88 $\pm$ 0.02 & 1 & 0.72 $\pm$ 0.04\\ +\bottomrule +\end{tabular} +\end{table} \ No newline at end of file diff --git a/tables/simulations/inference/sep.tex b/tables/simulations/inference/sep.tex new file mode 100644 index 0000000..ea02a3d --- /dev/null +++ b/tables/simulations/inference/sep.tex @@ -0,0 +1,21 @@ +\begin{table}[!h] + +\caption{\label{tab:per_model_sep}Quality metrics for $sep\text{-}BiSBM$} +\centering +\begin{tabular}[t]{rllll} +\toprule +$\eps[\alpha]$ & $\overline{\text{ARI}}_{1}$ & $\overline{\text{ARI}}_{2}$ & $\text{ARI}_{1}$ & $\text{ARI}_{2}$\\ +\midrule +0.00 & 0 & 0 & 0 & 0\\ +0.03 & 0.01 & 0.02 & 0.02 & 0.02\\ +0.06 & 0.69 $\pm$ 0.02 & 0.68 $\pm$ 0.02 & 0.38 $\pm$ 0.02 & 0.36 $\pm$ 0.02\\ +0.09 & 0.97 & 0.96 & 0.55 $\pm$ 0.02 & 0.52 $\pm$ 0.02\\ +0.12 & 1 & 1 & 0.51 $\pm$ 0.02 & 0.52 $\pm$ 0.02\\ +\addlinespace +0.15 & 1 & 1 & 0.54 $\pm$ 0.02 & 0.54 $\pm$ 0.02\\ +0.18 & 1 & 1 & 0.56 $\pm$ 0.02 & 0.54 $\pm$ 0.02\\ +0.21 & 1 & 1 & 0.56 $\pm$ 0.02 & 0.57 $\pm$ 0.02\\ +0.24 & 1 & 1 & 0.57 $\pm$ 0.02 & 0.57 $\pm$ 0.02\\ +\bottomrule +\end{tabular} +\end{table} \ No newline at end of file diff --git a/tikz/simulations/inference/model-proportions.tex b/tikz/simulations/inference/model-proportions.tex new file mode 100644 index 0000000..05d1c9a --- /dev/null +++ b/tikz/simulations/inference/model-proportions.tex @@ -0,0 +1,407 @@ +% Created by tikzDevice version 0.12.6 on 2024-07-11 23:39:46 +% !TEX encoding = UTF-8 Unicode +\begin{tikzpicture}[x=1pt,y=1pt] +\definecolor{fillColor}{RGB}{255,255,255} +\path[use as bounding box,fill=fillColor,fill opacity=0.00] (0,0) rectangle (289.08,289.08); +\begin{scope} +\path[clip] ( 0.00, 32.81) rectangle (289.08,256.27); +\definecolor{drawColor}{RGB}{255,255,255} +\definecolor{fillColor}{RGB}{255,255,255} + +\path[draw=drawColor,line width= 0.6pt,line join=round,line cap=round,fill=fillColor] ( 0.00, 32.81) rectangle (289.08,256.27); +\end{scope} +\begin{scope} +\path[clip] ( 38.56, 72.28) rectangle (217.04,250.77); +\definecolor{fillColor}{gray}{0.92} + +\path[fill=fillColor] ( 38.56, 72.28) rectangle (217.04,250.77); +\definecolor{drawColor}{RGB}{255,255,255} + +\path[draw=drawColor,line width= 0.3pt,line join=round] ( 38.56,100.68) -- + (217.04,100.68); + +\path[draw=drawColor,line width= 0.3pt,line join=round] ( 38.56,141.24) -- + (217.04,141.24); + +\path[draw=drawColor,line width= 0.3pt,line join=round] ( 38.56,181.81) -- + (217.04,181.81); + +\path[draw=drawColor,line width= 0.3pt,line join=round] ( 38.56,222.37) -- + (217.04,222.37); + +\path[draw=drawColor,line width= 0.3pt,line join=round] ( 45.76, 72.28) -- + ( 45.76,250.77); + +\path[draw=drawColor,line width= 0.3pt,line join=round] ( 63.99, 72.28) -- + ( 63.99,250.77); + +\path[draw=drawColor,line width= 0.3pt,line join=round] ( 82.22, 72.28) -- + ( 82.22,250.77); + +\path[draw=drawColor,line width= 0.3pt,line join=round] (100.45, 72.28) -- + (100.45,250.77); + +\path[draw=drawColor,line width= 0.3pt,line join=round] (118.68, 72.28) -- + (118.68,250.77); + +\path[draw=drawColor,line width= 0.3pt,line join=round] (136.91, 72.28) -- + (136.91,250.77); + +\path[draw=drawColor,line width= 0.3pt,line join=round] (155.14, 72.28) -- + (155.14,250.77); + +\path[draw=drawColor,line width= 0.3pt,line join=round] (173.38, 72.28) -- + (173.38,250.77); + +\path[draw=drawColor,line width= 0.3pt,line join=round] (191.61, 72.28) -- + (191.61,250.77); + +\path[draw=drawColor,line width= 0.3pt,line join=round] (209.84, 72.28) -- + (209.84,250.77); + +\path[draw=drawColor,line width= 0.6pt,line join=round] ( 38.56, 80.39) -- + (217.04, 80.39); + +\path[draw=drawColor,line width= 0.6pt,line join=round] ( 38.56,120.96) -- + (217.04,120.96); + +\path[draw=drawColor,line width= 0.6pt,line join=round] ( 38.56,161.52) -- + (217.04,161.52); + +\path[draw=drawColor,line width= 0.6pt,line join=round] ( 38.56,202.09) -- + (217.04,202.09); + +\path[draw=drawColor,line width= 0.6pt,line join=round] ( 38.56,242.65) -- + (217.04,242.65); + +\path[draw=drawColor,line width= 0.6pt,line join=round] ( 54.87, 72.28) -- + ( 54.87,250.77); + +\path[draw=drawColor,line width= 0.6pt,line join=round] ( 73.10, 72.28) -- + ( 73.10,250.77); + +\path[draw=drawColor,line width= 0.6pt,line join=round] ( 91.33, 72.28) -- + ( 91.33,250.77); + +\path[draw=drawColor,line width= 0.6pt,line join=round] (109.57, 72.28) -- + (109.57,250.77); + +\path[draw=drawColor,line width= 0.6pt,line join=round] (127.80, 72.28) -- + (127.80,250.77); + +\path[draw=drawColor,line width= 0.6pt,line join=round] (146.03, 72.28) -- + (146.03,250.77); + +\path[draw=drawColor,line width= 0.6pt,line join=round] (164.26, 72.28) -- + (164.26,250.77); + +\path[draw=drawColor,line width= 0.6pt,line join=round] (182.49, 72.28) -- + (182.49,250.77); + +\path[draw=drawColor,line width= 0.6pt,line join=round] (200.72, 72.28) -- + (200.72,250.77); +\definecolor{drawColor}{RGB}{86,180,233} +\definecolor{fillColor}{RGB}{86,180,233} + +\path[draw=drawColor,line width= 0.6pt,fill=fillColor] ( 46.67, 80.39) rectangle ( 63.08,242.65); +\definecolor{drawColor}{RGB}{230,159,0} +\definecolor{fillColor}{RGB}{230,159,0} + +\path[draw=drawColor,line width= 0.6pt,fill=fillColor] ( 64.90,202.09) rectangle ( 81.31,242.65); +\definecolor{drawColor}{RGB}{86,180,233} +\definecolor{fillColor}{RGB}{86,180,233} + +\path[draw=drawColor,line width= 0.6pt,fill=fillColor] ( 64.90,117.95) rectangle ( 81.31,202.09); +\definecolor{drawColor}{RGB}{0,158,115} +\definecolor{fillColor}{RGB}{0,158,115} + +\path[draw=drawColor,line width= 0.6pt,fill=fillColor] ( 64.90,107.44) rectangle ( 81.31,117.95); +\definecolor{drawColor}{RGB}{240,228,66} +\definecolor{fillColor}{RGB}{240,228,66} + +\path[draw=drawColor,line width= 0.6pt,fill=fillColor] ( 64.90, 92.41) rectangle ( 81.31,107.44); +\definecolor{drawColor}{RGB}{0,114,178} +\definecolor{fillColor}{RGB}{0,114,178} + +\path[draw=drawColor,line width= 0.6pt,fill=fillColor] ( 64.90, 80.39) rectangle ( 81.31, 92.41); +\definecolor{drawColor}{RGB}{230,159,0} +\definecolor{fillColor}{RGB}{230,159,0} + +\path[draw=drawColor,line width= 0.6pt,fill=fillColor] ( 83.13,236.64) rectangle ( 99.54,242.65); +\definecolor{drawColor}{RGB}{86,180,233} +\definecolor{fillColor}{RGB}{86,180,233} + +\path[draw=drawColor,line width= 0.6pt,fill=fillColor] ( 83.13,235.14) rectangle ( 99.54,236.64); +\definecolor{drawColor}{RGB}{0,158,115} +\definecolor{fillColor}{RGB}{0,158,115} + +\path[draw=drawColor,line width= 0.6pt,fill=fillColor] ( 83.13,214.11) rectangle ( 99.54,235.14); +\definecolor{drawColor}{RGB}{240,228,66} +\definecolor{fillColor}{RGB}{240,228,66} + +\path[draw=drawColor,line width= 0.6pt,fill=fillColor] ( 83.13,205.09) rectangle ( 99.54,214.11); +\definecolor{drawColor}{RGB}{0,114,178} +\definecolor{fillColor}{RGB}{0,114,178} + +\path[draw=drawColor,line width= 0.6pt,fill=fillColor] ( 83.13, 80.39) rectangle ( 99.54,205.09); +\definecolor{drawColor}{RGB}{230,159,0} +\definecolor{fillColor}{RGB}{230,159,0} + +\path[draw=drawColor,line width= 0.6pt,fill=fillColor] (101.36,236.64) rectangle (117.77,242.65); +\definecolor{drawColor}{RGB}{0,158,115} +\definecolor{fillColor}{RGB}{0,158,115} + +\path[draw=drawColor,line width= 0.6pt,fill=fillColor] (101.36,233.64) rectangle (117.77,236.64); +\definecolor{drawColor}{RGB}{0,114,178} +\definecolor{fillColor}{RGB}{0,114,178} + +\path[draw=drawColor,line width= 0.6pt,fill=fillColor] (101.36, 80.39) rectangle (117.77,233.64); +\definecolor{drawColor}{RGB}{230,159,0} +\definecolor{fillColor}{RGB}{230,159,0} + +\path[draw=drawColor,line width= 0.6pt,fill=fillColor] (119.59,236.64) rectangle (136.00,242.65); +\definecolor{drawColor}{RGB}{0,114,178} +\definecolor{fillColor}{RGB}{0,114,178} + +\path[draw=drawColor,line width= 0.6pt,fill=fillColor] (119.59, 80.39) rectangle (136.00,236.64); +\definecolor{drawColor}{RGB}{230,159,0} +\definecolor{fillColor}{RGB}{230,159,0} + +\path[draw=drawColor,line width= 0.6pt,fill=fillColor] (137.83,235.14) rectangle (154.23,242.65); +\definecolor{drawColor}{RGB}{0,114,178} +\definecolor{fillColor}{RGB}{0,114,178} + +\path[draw=drawColor,line width= 0.6pt,fill=fillColor] (137.83, 80.39) rectangle (154.23,235.14); +\definecolor{drawColor}{RGB}{230,159,0} +\definecolor{fillColor}{RGB}{230,159,0} + +\path[draw=drawColor,line width= 0.6pt,fill=fillColor] (156.06,233.64) rectangle (172.46,242.65); +\definecolor{drawColor}{RGB}{0,114,178} +\definecolor{fillColor}{RGB}{0,114,178} + +\path[draw=drawColor,line width= 0.6pt,fill=fillColor] (156.06, 80.39) rectangle (172.46,233.64); +\definecolor{drawColor}{RGB}{230,159,0} +\definecolor{fillColor}{RGB}{230,159,0} + +\path[draw=drawColor,line width= 0.6pt,fill=fillColor] (174.29,235.14) rectangle (190.70,242.65); +\definecolor{drawColor}{RGB}{0,114,178} +\definecolor{fillColor}{RGB}{0,114,178} + +\path[draw=drawColor,line width= 0.6pt,fill=fillColor] (174.29, 80.39) rectangle (190.70,235.14); +\definecolor{drawColor}{RGB}{230,159,0} +\definecolor{fillColor}{RGB}{230,159,0} + +\path[draw=drawColor,line width= 0.6pt,fill=fillColor] (192.52,238.15) rectangle (208.93,242.65); +\definecolor{drawColor}{RGB}{0,114,178} +\definecolor{fillColor}{RGB}{0,114,178} + +\path[draw=drawColor,line width= 0.6pt,fill=fillColor] (192.52, 80.39) rectangle (208.93,238.15); +\end{scope} +\begin{scope} +\path[clip] ( 0.00, 0.00) rectangle (289.08,289.08); +\definecolor{drawColor}{gray}{0.30} + +\node[text=drawColor,anchor=base east,inner sep=0pt, outer sep=0pt, scale= 0.88] at ( 33.61, 77.36) {0.00}; + +\node[text=drawColor,anchor=base east,inner sep=0pt, outer sep=0pt, scale= 0.88] at ( 33.61,117.93) {0.25}; + +\node[text=drawColor,anchor=base east,inner sep=0pt, outer sep=0pt, scale= 0.88] at ( 33.61,158.49) {0.50}; + +\node[text=drawColor,anchor=base east,inner sep=0pt, outer sep=0pt, scale= 0.88] at ( 33.61,199.06) {0.75}; + +\node[text=drawColor,anchor=base east,inner sep=0pt, outer sep=0pt, scale= 0.88] at ( 33.61,239.62) {1.00}; +\end{scope} +\begin{scope} +\path[clip] ( 0.00, 0.00) rectangle (289.08,289.08); +\definecolor{drawColor}{gray}{0.20} + +\path[draw=drawColor,line width= 0.6pt,line join=round] ( 35.81, 80.39) -- + ( 38.56, 80.39); + +\path[draw=drawColor,line width= 0.6pt,line join=round] ( 35.81,120.96) -- + ( 38.56,120.96); + +\path[draw=drawColor,line width= 0.6pt,line join=round] ( 35.81,161.52) -- + ( 38.56,161.52); + +\path[draw=drawColor,line width= 0.6pt,line join=round] ( 35.81,202.09) -- + ( 38.56,202.09); + +\path[draw=drawColor,line width= 0.6pt,line join=round] ( 35.81,242.65) -- + ( 38.56,242.65); +\end{scope} +\begin{scope} +\path[clip] ( 0.00, 0.00) rectangle (289.08,289.08); +\definecolor{drawColor}{gray}{0.20} + +\path[draw=drawColor,line width= 0.6pt,line join=round] ( 54.87, 69.53) -- + ( 54.87, 72.28); + +\path[draw=drawColor,line width= 0.6pt,line join=round] ( 73.10, 69.53) -- + ( 73.10, 72.28); + +\path[draw=drawColor,line width= 0.6pt,line join=round] ( 91.33, 69.53) -- + ( 91.33, 72.28); + +\path[draw=drawColor,line width= 0.6pt,line join=round] (109.57, 69.53) -- + (109.57, 72.28); + +\path[draw=drawColor,line width= 0.6pt,line join=round] (127.80, 69.53) -- + (127.80, 72.28); + +\path[draw=drawColor,line width= 0.6pt,line join=round] (146.03, 69.53) -- + (146.03, 72.28); + +\path[draw=drawColor,line width= 0.6pt,line join=round] (164.26, 69.53) -- + (164.26, 72.28); + +\path[draw=drawColor,line width= 0.6pt,line join=round] (182.49, 69.53) -- + (182.49, 72.28); + +\path[draw=drawColor,line width= 0.6pt,line join=round] (200.72, 69.53) -- + (200.72, 72.28); +\end{scope} +\begin{scope} +\path[clip] ( 0.00, 0.00) rectangle (289.08,289.08); +\definecolor{drawColor}{gray}{0.30} + +\node[text=drawColor,rotate=-45.00,anchor=base east,inner sep=0pt, outer sep=0pt, scale= 0.88] at ( 52.73, 48.63) {0.00}; + +\node[text=drawColor,rotate=-45.00,anchor=base east,inner sep=0pt, outer sep=0pt, scale= 0.88] at ( 70.96, 48.63) {0.03}; + +\node[text=drawColor,rotate=-45.00,anchor=base east,inner sep=0pt, outer sep=0pt, scale= 0.88] at ( 89.19, 48.63) {0.06}; + +\node[text=drawColor,rotate=-45.00,anchor=base east,inner sep=0pt, outer sep=0pt, scale= 0.88] at (107.42, 48.63) {0.09}; + +\node[text=drawColor,rotate=-45.00,anchor=base east,inner sep=0pt, outer sep=0pt, scale= 0.88] at (125.66, 48.63) {0.12}; + +\node[text=drawColor,rotate=-45.00,anchor=base east,inner sep=0pt, outer sep=0pt, scale= 0.88] at (143.89, 48.63) {0.15}; + +\node[text=drawColor,rotate=-45.00,anchor=base east,inner sep=0pt, outer sep=0pt, scale= 0.88] at (162.12, 48.63) {0.18}; + +\node[text=drawColor,rotate=-45.00,anchor=base east,inner sep=0pt, outer sep=0pt, scale= 0.88] at (180.35, 48.63) {0.21}; + +\node[text=drawColor,rotate=-45.00,anchor=base east,inner sep=0pt, outer sep=0pt, scale= 0.88] at (198.58, 48.63) {0.24}; +\end{scope} +\begin{scope} +\path[clip] ( 0.00, 0.00) rectangle (289.08,289.08); +\definecolor{drawColor}{RGB}{0,0,0} + +\node[text=drawColor,anchor=base,inner sep=0pt, outer sep=0pt, scale= 1.10] at (127.80, 40.45) {$\epsilon_{\alpha}$}; +\end{scope} +\begin{scope} +\path[clip] ( 0.00, 0.00) rectangle (289.08,289.08); +\definecolor{drawColor}{RGB}{0,0,0} + +\node[text=drawColor,rotate= 90.00,anchor=base,inner sep=0pt, outer sep=0pt, scale= 1.10] at ( 13.08,161.52) {Preferred model proportions}; +\end{scope} +\begin{scope} +\path[clip] ( 0.00, 0.00) rectangle (289.08,289.08); +\definecolor{fillColor}{RGB}{255,255,255} + +\path[fill=fillColor] (228.04,106.34) rectangle (283.58,216.71); +\end{scope} +\begin{scope} +\path[clip] ( 0.00, 0.00) rectangle (289.08,289.08); +\definecolor{drawColor}{RGB}{0,0,0} + +\node[text=drawColor,anchor=base west,inner sep=0pt, outer sep=0pt, scale= 1.10] at (233.54,202.56) {Preferred}; + +\node[text=drawColor,anchor=base west,inner sep=0pt, outer sep=0pt, scale= 1.10] at (233.54,190.68) {Model}; +\end{scope} +\begin{scope} +\path[clip] ( 0.00, 0.00) rectangle (289.08,289.08); +\definecolor{fillColor}{gray}{0.92} + +\path[fill=fillColor] (233.54,169.66) rectangle (247.99,184.11); +\end{scope} +\begin{scope} +\path[clip] ( 0.00, 0.00) rectangle (289.08,289.08); +\definecolor{drawColor}{RGB}{230,159,0} +\definecolor{fillColor}{RGB}{230,159,0} + +\path[draw=drawColor,line width= 0.6pt,fill=fillColor] (234.25,170.37) rectangle (247.28,183.40); +\end{scope} +\begin{scope} +\path[clip] ( 0.00, 0.00) rectangle (289.08,289.08); +\definecolor{fillColor}{gray}{0.92} + +\path[fill=fillColor] (233.54,155.20) rectangle (247.99,169.66); +\end{scope} +\begin{scope} +\path[clip] ( 0.00, 0.00) rectangle (289.08,289.08); +\definecolor{drawColor}{RGB}{86,180,233} +\definecolor{fillColor}{RGB}{86,180,233} + +\path[draw=drawColor,line width= 0.6pt,fill=fillColor] (234.25,155.92) rectangle (247.28,168.95); +\end{scope} +\begin{scope} +\path[clip] ( 0.00, 0.00) rectangle (289.08,289.08); +\definecolor{fillColor}{gray}{0.92} + +\path[fill=fillColor] (233.54,140.75) rectangle (247.99,155.20); +\end{scope} +\begin{scope} +\path[clip] ( 0.00, 0.00) rectangle (289.08,289.08); +\definecolor{drawColor}{RGB}{0,158,115} +\definecolor{fillColor}{RGB}{0,158,115} + +\path[draw=drawColor,line width= 0.6pt,fill=fillColor] (234.25,141.46) rectangle (247.28,154.49); +\end{scope} +\begin{scope} +\path[clip] ( 0.00, 0.00) rectangle (289.08,289.08); +\definecolor{fillColor}{gray}{0.92} + +\path[fill=fillColor] (233.54,126.30) rectangle (247.99,140.75); +\end{scope} +\begin{scope} +\path[clip] ( 0.00, 0.00) rectangle (289.08,289.08); +\definecolor{drawColor}{RGB}{240,228,66} +\definecolor{fillColor}{RGB}{240,228,66} + +\path[draw=drawColor,line width= 0.6pt,fill=fillColor] (234.25,127.01) rectangle (247.28,140.04); +\end{scope} +\begin{scope} +\path[clip] ( 0.00, 0.00) rectangle (289.08,289.08); +\definecolor{fillColor}{gray}{0.92} + +\path[fill=fillColor] (233.54,111.84) rectangle (247.99,126.30); +\end{scope} +\begin{scope} +\path[clip] ( 0.00, 0.00) rectangle (289.08,289.08); +\definecolor{drawColor}{RGB}{0,114,178} +\definecolor{fillColor}{RGB}{0,114,178} + +\path[draw=drawColor,line width= 0.6pt,fill=fillColor] (234.25,112.55) rectangle (247.28,125.59); +\end{scope} +\begin{scope} +\path[clip] ( 0.00, 0.00) rectangle (289.08,289.08); +\definecolor{drawColor}{RGB}{0,0,0} + +\node[text=drawColor,anchor=base west,inner sep=0pt, outer sep=0pt, scale= 0.88] at (253.49,173.86) {sep}; +\end{scope} +\begin{scope} +\path[clip] ( 0.00, 0.00) rectangle (289.08,289.08); +\definecolor{drawColor}{RGB}{0,0,0} + +\node[text=drawColor,anchor=base west,inner sep=0pt, outer sep=0pt, scale= 0.88] at (253.49,159.40) {iid}; +\end{scope} +\begin{scope} +\path[clip] ( 0.00, 0.00) rectangle (289.08,289.08); +\definecolor{drawColor}{RGB}{0,0,0} + +\node[text=drawColor,anchor=base west,inner sep=0pt, outer sep=0pt, scale= 0.88] at (253.49,144.95) {$\pi$}; +\end{scope} +\begin{scope} +\path[clip] ( 0.00, 0.00) rectangle (289.08,289.08); +\definecolor{drawColor}{RGB}{0,0,0} + +\node[text=drawColor,anchor=base west,inner sep=0pt, outer sep=0pt, scale= 0.88] at (253.49,130.49) {$\rho$}; +\end{scope} +\begin{scope} +\path[clip] ( 0.00, 0.00) rectangle (289.08,289.08); +\definecolor{drawColor}{RGB}{0,0,0} + +\node[text=drawColor,anchor=base west,inner sep=0pt, outer sep=0pt, scale= 0.88] at (253.49,116.04) {$\pi\rho$}; +\end{scope} +\end{tikzpicture}