missingPersonLR {forrel} | R Documentation |
Likelihood ratio calculation for missing person identification
Description
This is a wrapper function for kinshipLR()
for the special case of missing
person identification. A person of interest (POI) is matched against a
reference dataset containing genotypes of relatives of the missing person.
Usage
missingPersonLR(reference, missing, poi = NULL, verbose = TRUE, ...)
Arguments
reference |
A |
missing |
The ID label of the missing member of |
poi |
A |
verbose |
A logical. |
... |
Optional parameters to be passed on to |
Details
Note that this function accepts two forms of input:
With
poi
a typed singleton. This is the typical use case, when you want to compute the LR for some person of interest.With
poi = NULL
, butmissing
being genotyped. The data formissing
is then extracted as a singleton POI. This is especially useful in simulation procedures, e.g., for simulating the LR distribution of the true missing person.
See Examples for illustrations of both cases.
Value
The LRresult
object returned by kinshipLR()
, but without the
trivial H2:H2
comparison.
Examples
#------------------------------------------------
# Example: Identification of a missing grandchild
#------------------------------------------------
# Database with 5 STR markers (increase to make more realistic)
db = NorwegianFrequencies[1:5]
# Pedigree with missing person (MP); grandmother is genotyped
x = linearPed(2) |>
relabel(old = 5, new = "MP") |>
profileSim(markers = db, ids = "2", seed = 123)
### Scenario 1: Unrelated POI --------------------
# Generate random unrelated profile
poi = singleton("POI") |>
profileSim(markers = db, seed = 1234)
# Compute LR
lr = missingPersonLR(x, missing = "MP", poi = poi)
lr
lr$LRperMarker
### Scenario 2: POI is the missing person --------
# A small simulation example
# Simulate profiles for MP conditional on the grandmother
N = 10
y = profileSim(x, N = N, ids = "MP", seed = 12345)
# Compute LRs for each sim
LRsims = lapply(y, missingPersonLR, missing = "MP", verbose = FALSE)
# Plot distribution
LRtotal = sapply(LRsims, function(a) a$LRtotal)
plot(density(LRtotal))
# LRs for each marker
LRperMarker = sapply(LRsims, function(a) a$LRperMarker)
LRperMarker
# Overlaying marker-wise density plots (requires tidyverse)
# library(tidyverse)
# t(LRperMarker) |> as_tibble() |> pivot_longer(everything()) |>
# ggplot() + geom_density(aes(value, fill = name), alpha = 0.6)