# Additive relationship matrix and its inverse

### Description

`relationshipAdditive`

creates additive relationship matrix, while
`inverseAdditive`

creates its inverse directly from a
pedigree. `kinship`

is another definition of relationship and is
equal to half of additive relationship.

### Usage

1 2 3 |

### Arguments

`x` |
Pedigree |

`sort` |
logical, for the computation the pedigree needs to be sorted, but results are sorted back to original sorting (sort=TRUE) or not (sort=FALSE) |

`names` |
logical, should returned matrix have row/colnames; this can be used to get leaner matrix |

`...` |
arguments for other methods |

### Details

Additive or numerator relationship matrix is symetric and contains
*1 + F_i* on diagonal, where *F_i* is an inbreeding coefficients
(see `inbreeding`

) for subject *i*. Off-diagonal
elements represent numerator or relationship coefficient bewteen
subjects *i* and *j* as defined by Wright (1922). Henderson
(1976) showed a way to setup inverse of relationship matrix
directly. Mrode (2005) has a very nice introduction to these concepts.

Take care with `sort=FALSE, names=FALSE`

. It is your own
responsibility to assure proper handling in this case.

### Value

A matrix of *n * n* dimension, where *n* is number of
subjects in `x`

### Author(s)

Gregor Gorjanc and Dave A. Henderson

### References

Henderson, C. R. (1976) A simple method for computing the inverse of a
numerator relationship matrix used in prediction of breeding
values. *Biometrics* **32**(1):69-83

Mrode, R. A. (2005) Linear models for the prediction of animal breeding values. 2nd edition. CAB International. ISBN 0-85199-000-2 http://www.amazon.com/gp/product/0851990002

Wright, S. (1922) Coefficients of inbreeding and relationship.
*American Naturalist* 56:330-338

### See Also

`Pedigree`

, `inbreeding`

and
`geneFlowT`

### Examples

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | ```
data(Mrode2.1)
Mrode2.1$dtB <- as.Date(Mrode2.1$dtB)
x2.1 <- Pedigree(x=Mrode2.1, subject="sub", ascendant=c("fat", "mot"),
ascendantSex=c("M", "F"), family="fam", sex="sex",
generation="gen", dtBirth="dtB")
(A <- relationshipAdditive(x2.1))
fractions(A)
solve(A)
inverseAdditive(x2.1)
relationshipAdditive(x2.1[3:6, ])
## Compare the speed
ped <- generatePedigree(nId=10, nGeneration=3, nFather=1, nMother=2)
system.time(solve(relationshipAdditive(ped)))
system.time(inverseAdditive(ped))
``` |