| predict.SMME {SMME} | R Documentation |
Make Prediction From a SMME Object
Description
Given new covariate data this function computes the linear predictors
based on the estimated model coefficients in an object produced by the function
softmaximin. Note that the data can be supplied in three different
formats: i) for general models as a n' \times p matrix (p is the
number of model coefficients and n' is the number of new data points),
ii) for array models with custom design as a list of one, two or three Kronecker component
matrices each of size n_i' \times p_i, i = 1, 2, 3
(n_i' is the number of new marginal data points in the ith dimension),
iii) for wavelet based models a string indicating the wavelet used to produce
the model object.
Usage
## S3 method for class 'SMME'
predict(object, x, ...)
Arguments
object |
An object of class SMME, produced with |
x |
An object that should be like the input to the |
... |
ignored. |
Value
A list of length length(zeta). If x is a n' \times p
matrix each list item is a n'\times m_\zeta matrix containing the linear
predictors computed for each lambda. If x is a string or a list of
tensor component matrices and fit$dim = d, each list item is a d + 1
array containing predictions computed for each lambda.
Author(s)
Adam Lund
Examples
##size of example
n1 <- 65; n2 <- 26; n3 <- 13; p1 <- 13; p2 <- 5; p3 <- 4
##marginal design matrices (Kronecker components)
X1 <- matrix(rnorm(n1 * p1, 0, 0.5), n1, p1)
X2 <- matrix(rnorm(n2 * p2, 0, 0.5), n2, p2)
X3 <- matrix(rnorm(n3 * p3, 0, 0.5), n3, p3)
X <- list(X1, X2, X3)
component <- rbinom(p1 * p2 * p3, 1, 0.1)
Beta1 <- array(rnorm(p1 * p2 * p3, 0, 0.1) + component, c(p1 , p2, p3))
Beta2 <- array(rnorm(p1 * p2 * p3, 0, 0.1) + component, c(p1 , p2, p3))
mu1 <- RH(X3, RH(X2, RH(X1, Beta1)))
mu2 <- RH(X3, RH(X2, RH(X1, Beta2)))
Y1 <- array(rnorm(n1 * n2 * n3, mu1), dim = c(n1, n2, n3))
Y2 <- array(rnorm(n1 * n2 * n3, mu2), dim = c(n1, n2, n3))
Y <- array(NA, c(dim(Y1), 2))
Y[,,, 1] <- Y1; Y[,,, 2] <- Y2;
fit <- softmaximin(X, Y, zeta = c(1, 10), penalty = "lasso", alg = "npg")
##new data in tensor component form
X1 <- matrix(rnorm(2 * p1), nrow = 2)
X2 <- matrix(rnorm(3 * p2), nrow = 3)
X3 <- matrix(rnorm(4 * p3), nrow = 4)
Yhat <- predict(fit, x = list(X1, X2, X3))