Learn R Programming

logisticPCA (version 0.2)

predict.lsvd: Predict Logistic SVD left singular values or reconstruction on new data

Description

Predict Logistic SVD left singular values or reconstruction on new data

Usage

"predict"(object, newdata, quiet = TRUE, max_iters = 1000, conv_criteria = 1e-05, random_start = FALSE, start_A, type = c("PCs", "link", "response"), ...)

Arguments

object
logistic SVD object
newdata
matrix with all binary entries. If missing, will use the data that object was fit on
quiet
logical; whether the calculation should give feedback
max_iters
number of maximum iterations
conv_criteria
convergence criteria. The difference between average deviance in successive iterations
random_start
logical; whether to randomly inititalize the parameters. If FALSE, algorithm implicitly starts A with 0 matrix
start_A
starting value for the left singular vectors
type
the type of fitting required. type = "PCs" gives the left singular vectors, type = "link" gives matrix on the logit scale and type = "response" gives matrix on the probability scale
...
Additional arguments

Details

Minimizes binomial deviance for new data by finding the optimal left singular vector matrix (A), given B and mu. Assumes the columns of the right singular vector matrix (B) are orthonormal.

Examples

Run this code
# construct a low rank matrices in the logit scale
rows = 100
cols = 10
set.seed(1)
loadings = rnorm(cols)
mat_logit = outer(rnorm(rows), loadings)
mat_logit_new = outer(rnorm(rows), loadings)

# convert to a binary matrix
mat = (matrix(runif(rows * cols), rows, cols) <= inv.logit.mat(mat_logit)) * 1.0
mat_new = (matrix(runif(rows * cols), rows, cols) <= inv.logit.mat(mat_logit_new)) * 1.0

# run logistic PCA on it
lsvd = logisticSVD(mat, k = 1, main_effects = FALSE, partial_decomp = FALSE)

A_new = predict(lsvd, mat_new)

Run the code above in your browser using DataLab