predict.MEDgating {MEDseq} | R Documentation |
Predictions from MEDseq gating networks
Description
Predicts mixing proportions from MEDseq gating networks. Effectively akin to predicting from a multinomial logistic regression via multinom
, although here the noise component (if any) is properly accounted for. So too are models with no gating covariates at all, or models with the equal mixing proportion constraint. Prior probabilities are returned by default.
Usage
## S3 method for class 'MEDgating'
predict(object,
newdata = NULL,
type = c("probs", "class"),
keep.noise = TRUE,
droplevels = FALSE,
...)
## S3 method for class 'MEDgating'
fitted(object,
...)
## S3 method for class 'MEDgating'
residuals(object,
...)
Arguments
object |
An object of class |
newdata |
A matrix or data frame of test examples. If omitted, the fitted values are used. |
type |
The type of output desired. The default ( |
keep.noise |
A logical indicating whether the output should acknowledge the noise component (if any). Defaults to |
droplevels |
A logical indicating whether unseen factor levels in categorical variables within |
... |
Catches unused arguments or allows the |
Details
This function (unlike the predict
method for multinom
on which predict.MEDgating
is based) accounts for sampling weights and the various ways of treating gating covariates, equal mixing proportion constraints, and noise components, although its type
argument defaults to "probs"
rather than "class"
.
Value
The return value depends on whether newdata
is supplied or not and whether the model includes gating covariates to begin with. When newdata
is not supplied, the fitted values are returned (as matrix if the model contained gating covariates, otherwise as a vector as per x$params$tau
). If newdata
is supplied, the output is always a matrix with the same number of rows as the newdata
.
Author(s)
Keefe Murphy - <keefe.murphy@mu.ie>
References
Murphy, K., Murphy, T. B., Piccarreta, R., and Gormley, I. C. (2021). Clustering longitudinal life-course sequences using mixtures of exponential-distance models. Journal of the Royal Statistical Society: Series A (Statistics in Society), 184(4): 1414-1451. <doi:10.1111/rssa.12712>.
See Also
Examples
# Load the MVAD data
data(mvad)
mvad$Location <- factor(apply(mvad[,5:9], 1L, function(x)
which(x == "yes")), labels = colnames(mvad[,5:9]))
mvad <- list(covariates = mvad[c(3:4,10:14,87)],
sequences = mvad[,15:86],
weights = mvad[,2])
mvad.cov <- mvad$covariates
# Create a state sequence object with the first two (summer) time points removed
states <- c("EM", "FE", "HE", "JL", "SC", "TR")
labels <- c("Employment", "Further Education", "Higher Education",
"Joblessness", "School", "Training")
mvad.seq <- seqdef(mvad$sequences[-c(1,2)], states=states, labels=labels)
# Fit a model with weights and a gating covariate
# Have the probability of noise-component membership be constant
mod <- MEDseq_fit(mvad.seq, G=11, modtype="UUN", weights=mvad$weights,
gating=~ gcse5eq, covars=mvad.cov, noise.gate=FALSE)
(preds <- predict(mod$gating, newdata=mvad.cov[1:5,]))
# Note that the predictions are not the same as the multinom predict method
# in this instance, owing to the invocation of noise.gate=FALSE above
mod2 <- mod
class(mod2$gating) <- c("multinom", "nnet")
predict(mod2$gating, newdata=mvad.cov[1:5,], type="probs")
# We can make this function behave in the same way by invoking keep.noise=FALSE
predict(mod$gating, keep.noise=FALSE, newdata=mvad.cov[1:5,])