Skip to contents

The product the book actually delivers (p.272-273): for each row of newdata, the probability of response in each category, F(t_k - a) - F(t_(k-1) - a) with a = x'b + z'u at that row's levels. A level dropped from the design (a reference level, or a dropped dependent column) contributes zero; a level absent from the fit's data is an error, not a silent zero. An indirect() term contributes (n - 1)^(-d) sum_j u_S,j over the pen mates of the row IN newdata: the pen column must be there (otherwise the prediction is refused), the mates are the distinct animals of that pen among the rows of newdata, counted with the same rule as the fit, and every one of them must be a level of the fit. In the joint fit (Foulley et al. 1983) the binary liability is conditional on the quantitative trait, and the probability is the book's Eqn 15.25: P(y2 = 1 | x, y1) = F(x't + nu + b1 (y1 - mean(y1))), with b1 the residual regression and the mean of the quantitative trait in the fit; newdata then needs the quantitative trait column too.

Usage

# S3 method for class 'breeding_fit_thr'
predict(
  object,
  newdata,
  type = c("probability", "liability", "quantitative"),
  ...
)

Arguments

object

result of model_threshold()

newdata

data.frame with the fixed and random columns of the formula, the pen column of every indirect() term (and, for the joint fit, the quantitative trait)

type

"probability" (default) for the n x m matrix of category probabilities (joint fit: the probability of the upper binary category, the larger value for numbers and the second level for a factor, fit$binary_levels[2]), "liability" for the linear predictor, and for the joint fit "quantitative" for the expected quantitative trait x'b + u1

...

unused, kept for the generic

Value

a matrix with one row per row of newdata and the categories as columns, or a numeric vector