predict.lsvd {logisticPCA}R Documentation

Predict Logistic SVD left singular values or reconstruction on new data

Description

Predict Logistic SVD left singular values or reconstruction on new data

Usage

## S3 method for class 'lsvd'
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

# 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)

[Package logisticPCA version 0.2 Index]