downward {LCAextend}
Description
computes the probability of measurements above connectors and their classes given the model parameters, and returns the unnormalized triplet and individual weights. This is an internal function not meant to be called by the user.
Usage
downward(id, dad, mom, status, probs, fyc, peel, res.upward)
Arguments
- id
- individual ID of the pedigree,
- dad
- dad ID,
- mom
- mom ID,
- status
- symptom status: (2: symptomatic, 1: without symptoms, 0: missing),
- probs
- a list of probability parameters of the model,
- fyc
- a matrix of
ntimesK+1given the density of observations of each individual if allocated to classk, wherenis the number of individuals andKis the total number of latent classes in the model, - peel
- a list of pedigree peeling containing connectors by peeling order and couples of parents,
- res.upward
- result of the upward step of the peeling algorithm, see
upward.
Details
This function computes the probability of observations above connectors and their classes using the function downward.connect, for each connector, if Y_above(i) is the observations above connector i and S_i and C_i are his status and his class respectively, the functions computes P(Y_above(i),S_i,C_i) by computing a downward step for the parent of connector i who is also a connector. These quantities are used by the function weight.nuc to compute the unnormalized triplet weights ww and the unnormalized individual weights w.
Values
The function returns a list of 2 elements:
- ww
- unnormalized triplet weights, an array of
ntimes 2 timesK+1timesK+1timesK+1, wherenis the number of individulas andKis the total number of latent classes in the model, seee.stepfor more details, - w
- unnormalized individual weights, an array of
ntimes 2 timesK+1, seee.step.
References
TAYEB et al.: Solving Genetic Heterogeneity in Extended Families by Identifying Sub-types of Complex Diseases. Computational Statistics, 2011, DOI: 10.1007/s00180-010-0224-2.
See Also
See also downward.connect.
Examples
#data data(ped.cont) data(peel) fam <- ped.cont[,1] id <- ped.cont[fam==1,2] dad <- ped.cont[fam==1,3] mom <- ped.cont[fam==1,4] status <- ped.cont[fam==1,6] y <- ped.cont[fam==1,7:ncol(ped.cont)] peel <- peel[[1]] #standardize id to be 1, 2, 3, ... id.origin <- id standard <- function(vec) ifelse(vec%in%id.origin,which(id.origin==vec),0) id <- apply(t(id),2,standard) dad <- apply(t(dad),2,standard) mom <- apply(t(mom),2,standard) peel$couple <- cbind(apply(t(peel$couple[,1]),2,standard), apply(t(peel$couple[,2]),2,standard)) for(generat in 1:peel$generation) peel$peel.connect[generat,] <- apply(t(peel$peel.connect[generat,]),2,standard) #probs and param data(probs) data(param.cont) #densities of the observations fyc <- matrix(1,nrow=length(id),ncol=length(probs$p)+1) fyc[status==2,1:length(probs$p)] <- t(apply(y[status==2,],1,dens.norm,param.cont,NULL)) #the upward step res.upward <- upward(id,dad,mom,status,probs,fyc,peel) #the function downward(id,dad,mom,status,probs,fyc,peel,res.upward)
Documentation reproduced from package LCAextend, version 1.2. License: GPL
