R: Computes distances in terms of Structural equivalence...

sedist {blockmodeling} | R Documentation

## Computes distances in terms of Structural equivalence (Lorrain & White, 1971)

### Description

The functions compute the distances in terms of Structural equivalence (Lorrain and White, 1971) between the units of a one-mode network. Several options for treating the diagonal values are supported.

### Usage

    sedist(
      M,
      method = "default",
      fun = "default",
      fun.on.rows = "default",
      handle.interaction = "switch",
      use = "pairwise.complete.obs",
      ...
    )

### Arguments

`M` | A matrix representing the (usually valued) network. For now, only one-relational networks are supported. The network must be one-mode.
`method` | The method used to compute distances - any of the methods allowed by functions dist, `"cor"` or `"cov"` (all `package::stats`) or just `"cor"` or `"cov"` (given as a character).
`fun` | Which function should be used to compute distances (given as a character).
`fun.on.rows` | For non-standard function - does the function compute measure on rows (such as `"cor"`, `"cov"`,...) of the data matrix (as opposed to computing measure on columns (such as `dist`).
`handle.interaction` | How should the interaction between the vertices analysed be handled: `"switch"` (the default) - assumes that when comparing units i and j, M[i,i] should be compared with M[j,j] and M[i,j] with M[j,i]. These two comparisons are weighted by 2. This should be used with Euclidean distance to get the corrected Euclidean distance with p = 2. `"switch2"` - the same (alias) `"switch1"` - the same as above, only that the two comparisons are weighted by 1. This should be used with Euclidean distance to get the corrected Wuclidean distance with p = 1. `"ignore"` (diagonal) - Diagonal is ignored. This should be used with Euclidean distance to get the corrected Euclidean distance with p = 0. `"none"` - the matrix is used "as is"
`use` | For use with methods `"cor"` and `"cov"`, for other methods (the default option should be used if `handle.interaction == "ignore"`), `"pairwise.complete.obs"` are always used, if `stats.dist.cor.cov = TRUE`.
`...` | Additional arguments to `fun`

### Details

If both `method` and `fun` are `"default"`, the Euclidean distances are computed. The `"default"` method for `fun = "dist"` is "euclidean" and for `fun = "cor"` "pearson".

### Value

A matrix (usually of class dist) is returned.

### Author(s)

Aleš Žiberna

### References

Batagelj, V., Ferligoj, A., & Doreian, P. (1992). Direct and indirect methods for structural equivalence. Social Networks, 14(1-2), 63-90. doi: 10.1016/0378-8733(92)90014-X

Lorrain, F., & White, H. C. (1971). Structural equivalence of individuals in social networks. Journal of Mathematical Sociology, 1(1), 49-80. doi: 10.1080/0022250X.1971.9989788

### See Also

`dist`, `hclust`, `REGE`, `optParC`, `optParC`, `optRandomParC`

### Examples

    # Generating a simple network corresponding to the simple Sum of squares
    # Structural equivalence with blockmodel:
    # null com
    # null null
    n <- 20
    net <- matrix(NA, ncol = n, nrow = n)
    clu <- rep(1:2, times = c(5, 15))
    tclu <- table(clu)
    net[clu == 1, clu == 1] <- rnorm(n = tclu[1] * tclu[1], mean = 0, sd = 1)
    net[clu == 1, clu == 2] <- rnorm(n = tclu[1] * tclu[2], mean = 4, sd = 1)
    net[clu == 2, clu == 1] <- rnorm(n = tclu[2] * tclu[1], mean = 0, sd = 1)
    net[clu == 2, clu == 2] <- rnorm(n = tclu[2] * tclu[2], mean = 0, sd = 1)

    D <- sedist(M = net)
    plot.mat(net, clu = cutree(hclust(d = D, method = "ward"), k = 2))

[Package blockmodeling version 1.0.0 Index]