Description Usage Arguments Details Value Examples
Implements the equivalent of
pca.
This function preprocesses the data as specified by the user,
then calls ppcapM or bpcapM, and finally handles this output
to return a list. One element of the output is a pcaRes object.
1 2 3 4 5 6 7 8 9 10 11 12 |
myMat |
|
nPcs |
|
method |
|
seed |
|
threshold |
|
maxIterations |
|
center |
|
scale |
|
loglike |
|
verbose |
|
See ppcapM and bpcapM for
the algorithm specifics. loglike indicates whether
log-likelihood values for the resulting estimates should
be computed. This can be useful to compare different algorithms.
A list of 5 or 7 elements, depending on the value
of loglike:
matrix – the estimated loadings.
numeric – the estimated isotropic variance.
matrix – the estimated covariance matrix.
numeric – the estimated mean vector.
numeric – the log-likelihood value
of the observed data given the estimated parameters.
numeric – the log-likelihood value
of the imputed data given the estimated parameters.
class –
see pcaRes.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | # simulate a dataset from a zero mean factor model X = Wz + epsilon
# start off by generating a random binary connectivity matrix
n.factors <- 5
n.genes <- 200
# with dense connectivity
# set.seed(20)
conn.mat <- matrix(rbinom(n = n.genes*n.factors,
size = 1, prob = 0.7), c(n.genes, n.factors))
# now generate a loadings matrix from this connectivity
loading.gen <- function(x){
ifelse(x==0, 0, rnorm(1, 0, 1))
}
W <- apply(conn.mat, c(1, 2), loading.gen)
# generate factor matrix
n.samples <- 100
z <- replicate(n.samples, rnorm(n.factors, 0, 1))
# generate a noise matrix
sigma.sq <- 0.1
epsilon <- replicate(n.samples, rnorm(n.genes, 0, sqrt(sigma.sq)))
# by the ppca equations this gives us the data matrix
X <- W%*%z + epsilon
WWt <- tcrossprod(W)
Sigma <- WWt + diag(sigma.sq, n.genes)
# select 10% of entries to make missing values
missFrac <- 0.1
inds <- sample(x = 1:length(X),
size = ceiling(length(X)*missFrac),
replace = FALSE)
# replace them with NAs in the dataset
missing.dataset <- X
missing.dataset[inds] <- NA
# run ppca
ppm <- pcapM(t(missing.dataset), nPcs=5, method="bpca", seed=2009,
maxIterations=1000, center=TRUE, loglike=TRUE, verbose=TRUE)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.