interactionMGSP {infinitefactor} | R Documentation |
Factor regression model with interactions using the Multiplicative Gamma Shrinkage Prior
Description
Perform a regression of y onto X and all 2 way interactions in X using the latent factor model introduced in Ferrari and Dunson (2020). This version uses the Multiplicative Gamma Shrinkage Prior introduced in Bhattacharya and Dunson (2011).
Usage
interactionMGSP(y, X, nrun, burn, thin = 1,
delta_rw = 0.0526749, a = 1/2, k = NULL,
output = c("covMean", "covSamples", "factSamples",
"sigSamples", "coefSamples","errSamples"),
verbose = TRUE, dump = FALSE, filename = "samps.Rds",
buffer = 10000, adapt = "burn", augment = NULL)
Arguments
y |
response vector. |
X |
predictor matrix (n x p). |
nrun |
number of iterations. |
burn |
burn-in period. |
thin |
thinning interval. |
delta_rw |
metropolis-hastings proposal variance. |
a |
shrinkage hyperparameter. |
k |
number of factors. |
output |
output type, a vector including some of: c("covMean", "covSamples", "factSamples", "sigSamples", "coefSamples", "numFactors", "errSamples"). |
verbose |
logical. Show progress bar? |
dump |
logical. Save samples to a file during sampling? |
filename |
if dump: filename to address list of posterior samples |
buffer |
if dump: how often to save samples |
adapt |
logical or "burn". Adapt proposal variance in metropolis hastings step? if "burn", will adapt during burn in and not after. |
augment |
additional sampling steps as an expression |
Value
some of:
covMean |
X covariance posterior mean |
omegaSamps |
X covariance posterior samples |
lambdaSamps |
Posterior factor loadings samples (rotationally ambiguous) |
etaSamps |
Posterior factor samples (rotationally ambiguous) |
sigmaSamps |
Posterior marginal variance samples (see notation in Bhattacharya and Dunson (2011)) |
phiSamps |
Posterior main effect coefficient samples in factor form (rotationally ambiguous) |
PsiSamps |
Posterior interaction effect coefficient samples in factor form (rotationally ambiguous) |
interceptSamps |
Posterior induced intercept samples |
mainEffectSamps |
Posterior induced main effect coefficient samples |
interactionSamps |
Posterior induced interaction coefficient samples |
ssySamps |
Posterior irreducible error samples |
Author(s)
Evan Poworoznek
Federico Ferrari
References
Ferrari, Federico, and David B. Dunson. "Bayesian Factor Analysis for Inference on Interactions." arXiv preprint arXiv:1904.11603 (2019).
Bhattacharya, Anirban, and David B. Dunson. "Sparse Bayesian infinite factor models." Biometrika (2011): 291-306.
See Also
Examples
k0 = 5
p = 20
n = 50
lambda = matrix(rnorm(p*k0, 0, 0.01), ncol = k0)
lambda[sample.int(p, 40, replace = TRUE) +
p*(sample.int(k0, 40, replace = TRUE)-1)] = rnorm(40, 0, 1)
lambda[1:7, 1] = rnorm(7, 2, 0.5)
lambda[8:14, 2] = rnorm(7, -2, 0.5)
lambda[15:20, 3] = rnorm(6, 2, 0.5)
lambda[,4] = rnorm(p, 0, 0.5)
lambda[,5] = rnorm(p, 0, 0.5)
plotmat(varimax(lambda)[[1]])
X = matrix(rnorm(n*k0),n,k0)%*%t(lambda) + matrix(rnorm(n*p), n, p)
beta_true = numeric(p); beta_true[c(1,3,6,8,10,11)] =c(1,1,0.5,-1,-2,-0.5)
Omega_true = matrix(0,p,p)
Omega_true[1,2] = 1; Omega_true[5,2] = -1; Omega_true[10,8] = 1;
Omega_true[11,5] = -2; Omega_true[1,1] = 0.5;
Omega_true[2,3] = 0.5;
Omega_true = Omega_true + t(Omega_true)
y = X%*%beta_true + diag(X%*%Omega_true%*%t(X)) + rnorm(n,0.5)
intmgsp = interactionMGSP(y, X, 1000, 500, k = 5)