Provides a Bayesian latent space
model for complex networks, either weighted or unweighted.
Given an observed input graph, the estimates for the latent coordinates
of the nodes are obtained through a Bayesian MCMC algorithm.
The overall likelihood of the graph depends on a fundamental probability
equation, which is defined so that ties are more likely to exist
between nodes whose latent space coordinates are close.
The package is mainly based on the model by Hoff, Raftery and Handcock (2002)

R package allowing the computation of a Bayesian latent space model for complex networks, either weighted or unweighted.

Latent Space Models are characterized by the presence of unobservable variables (latent coordinates) that are used to compute the likelihood of the observed networks. Their goal is to map the observed network in the latent space by meeting specific probabilistic requirements, so that the estimated latent coordinates can then be used to describe and characterize the original graph.

In the BSLM package framework, given a network characterized by its adjacency *Y* matrix, the model assigns a binary random variable to each tie: *Y _{ij}* is related to the tie between nodes

The model assumes the independence of *Y _{ij} | x_{i},x_{j}, α*, where

The latent space coordinates are estimated by following a MCMC procedure that is based on the overall likelihood induced by the above equation. Due to the symmetry of the distance, the model leads to more intuitive outputs for undirected networks, but the functions can also deal with directed graphs.

To run a simulation and store the information in a *blsm_obj*, please use the following function:

```
blsm_1 = estimate_latent_positions(example_adjacency_matrix, burn_in=3*10^4, nscan=10^5)
```

If the network is weighted, i.e. to each tie is associated a positive coefficient, the model's probability equation becomes *logit(P(Y _{ij} = 1)) = α - W_{ij}||x_{i} -x_{j}||*, where

When dealing with weighted networks, please be careful to pass a "BLSM weights" matrix as input (please refer to *example_weights_matrix* from the help for more detailed information and a valid example).
For instance:

```
blsm_2 = estimate_latent_positions(example_adjacency_matrix, example_weights_matrix, burn_in=3*10^4, nscan=10^5)
```

The output of the model allows the user to inspect the MCMC simulation, create insightful graphical representations or apply clustering techniques to better describe the latent space.

For instance, the following function plots all the MCMC iterations related to an example simulation available in the package (*example_blsm_obj*):

```
plot_latent_positions(example_blsm_obj, labels_point_color="black", labels_text_color="black")
```

Please refer to the package help for more detailed information.

First release