Besides the point estimates from the posteriors of
`mashr`

, we also provide the option to sampling from the
posteriors. Using the samples, we can answer many questions. For
example, what proportion of effects have the same sign and similar
magnitude for each pair of conditions?

We use simulated data for illustration. The simulation routine creates a dataset with 5 conditions, and four different types of effect: null, independent among conditions, condition-specific in condition 1, and shared (equal effects in all conditions). It creates 500 effects of each type for a total of 2000 effects.

```
library(mashr)
set.seed(1)
= simple_sims(500,5,1) simdata
```

Read in the data and set up the covariance matrices:

```
= mash_set_data(simdata$Bhat, simdata$Shat)
data = cov_canonical(data) U.c
```

Here, we draw 100 samples from the posteriors of each effect.

`= mash(data, U.c, algorithm.version = 'R', posterior_samples = 100) m `

```
# - Computing 2000 x 151 likelihood matrix.
# - Likelihood calculations took 0.10 seconds.
# - Fitting model with 151 mixture components.
# - Model fitting took 0.58 seconds.
# - Computing posterior matrices.
# - Computation allocated took 2.69 seconds.
```

Using `get_samples(m)`

, we have a \(2000 \times 5 \times 100\) array for
samples.

If we fit the mash model without the posterior samples, we could use
`mash_compute_posterior_matrices`

to sample from the mash
object.

```
$result = mash_compute_posterior_matrices(m, data, algorithm.version = 'R',
mposterior_samples = 100)
```

To answer ‘what proportion of effects have the same sign and similar
magnitude for each pair of conditions?’, `mash`

has a
function to summarize the results from samples. Here, we define similar
in magnitude to mean both the same sign and within a factor of 2 of one
another.

\[ \begin{align*} &\text{Proportion of effects have the same sign and similar magnitude for condition r, r'} \\ &= \frac{1}{2000} \sum_{j=1}^{2000}\mathbb{E}\left(\mathbb{I}(b_{jr}, b_{jr'} \text{ have same sign and similar magnitude}) \right) \\ &\approx \frac{1}{2000} \sum_{j=1}^{2000} \frac{1}{100} \sum_{m=1}^{100} \mathbb{I}(b_{jr}^{(m)}, b_{jr'}^{(m)} \text{ have same sign and similar magnitude}) \end{align*} \] The last approximation is achieved by sampling.

`library(corrplot)`

`# corrplot 0.92 loaded`

```
= get_pairwise_sharing_from_samples(m, factor=0.5, lfsr_thresh = 1)
x corrplot(x, method='color', col.lim=c(0,1), type='upper', addCoef.col = "black", tl.col="black", tl.srt=45, title = 'Pairwise Sharing by Magnitude', mar = c(4,0,4,0))
```

We can also get the proportion of **significant**
effects have the same sign and similar magnitude for each pair of
conditions. For each pair of conditions, first identify the effects that
are significant in at least one of the two conditions. Then compute the
probability of sharing in sign and magnitude.

```
= get_pairwise_sharing_from_samples(m, factor=0.5, lfsr_thresh = 0.05)
x corrplot(x, method='color', col.lim=c(0,1), type='upper', addCoef.col = "black", tl.col="black", tl.srt=45, title = 'Pairwise Sharing by Magnitude', mar = c(4,0,4,0))
```

The pairwise sharing proportions are higher, since it is computed out
of **significant signals** only.

There is another function in `mashr`

package
(`get_pairwise_sharing`

) that compute the proportion of
**significant signals** shared by magnitude in the
**estimated effect sizes**, for each pair of conditions.
For each pair of conditions, first identify the effects that are
significant in at least one of the two conditions. Then compute what
fraction of these have an estimated (posterior mean) effect size within
a factor `factor`

of one another.

```
= get_pairwise_sharing(m, factor=0.5)
x corrplot(x, method='color', col.lim=c(0,1), type='upper', addCoef.col = "black", tl.col="black", tl.srt=45, title = 'Pairwise Sharing by Magnitude', mar = c(4,0,4,0))
```