Poisson_Corrected_PCA: PCA with Poisson measurement error

Description Usage Arguments Details Value Author(s) Examples

View source: R/Corrected_PCA.R

Description

Estimates the principal components of the latent Poisson means (possibly with transformation) of high-dimensional data with independent Poisson measurement error.

Usage

1
Poisson_Corrected_PCA(X,k=dim(X)[2]-1,transformation=NULL,seqdepth=FALSE)

Arguments

X

Matrix or data frame of count variables

k

Number of principal components to calculate.

transformation

For estimating the principal components of a transformation of the Poisson mean.

seqdepth

Indicates what sort of sequencing depth correction should be used (if any).

Details

The options for the transformation parameter are:

NULL or "linear" - these perform no transformation.

"log" - this performs a logarithmic transformation

a list of the following functions:

f(x) - evaluates the function deriv(x) - evaluates the derivative of the function solvefunction(target) - evaluates the inverse of the function g(x) - an estimator for f(lambda) from a Poisson observation x with mean lambda CVar(x) - an estimator for the conditional variance of g(x) conditional on lambda from the observed value x

the function polynomial_transformation creates such a list in the case where f is a polynomial using unbiassed estimators for g and CVar. The function makelogtransformation creates an estimator for the logarithmic transformation. The "log" option uses this function with parameters a=3 and N=4, which from experiments appear to produce reasonable results in most situations.

The options for the seqdepth parameter are:

FALSE - indicating no sequencing depth correction

TRUE - indicating standard sequencing depth correction for linear PCA

"minvar" - uses the minimum covariance estimator for the corrected variance. This subtracts the largest constant from all entries of the matrix, such that the matrix is still non-negative definite.

"compositional" - uses the best compositional variance approximation to the estimated covariance matrix.

The package estimates latent principal components using the methods in http://arxiv.org/abs/1904.11745

Value

An object of type "princomp" and "transformedprincomp" that has the following components:

sdev

The standard deviation associated to each principal component

loadings

The principal component vectors

center

The mean of the transformed data

scale

A vector of ones of length n

n.obs

The number of observations

scores

The principal scores. For the linear transformation, these are just the projection of the data onto the principal component space. For transformed principal components, these use a combination of likelihood and mean squared error.

means

The corresponding estimated untransformed Poisson means. This provides a useful diagnostic of the performance in simulation studies. These means should be closer to the true Lambda than the original X data.

variance

The corrected covariance matrix for the transformed latent Sigma.

non_compositional_variance

The corrected covariance matrix without sequencing depth correction.

call

The function call used

Author(s)

Toby Kenney tkenney@mathstat.dal.ca and Tianshu Huang

Examples

 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
set.seed(12345)
n<-20  #20 observations
p<-5   #5 dimensions
r<-2   #rank 2

mean<-10*c(1,3,2,1,1)

Z<-rnorm(n*r)
dim(Z)<-c(n,r)
U<-rnorm(p*r)
dim(U)<-c(r,p)

Latent<-Z%*%U+rep(1,n)%*%t(mean)

X<-rpois(n*p,as.vector(Latent))
dim(X)<-c(n,p)

Poisson_Corrected_PCA(X,k=2,transformation=NULL,seqdepth=FALSE)

seqdepth<-exp(rnorm(n)+2)
Xseqdep<-rpois(n*p,as.vector(diag(seqdepth)%*%Latent))
dim(Xseqdep)<-c(n,p)

Poisson_Corrected_PCA(Xseqdep,k=2,transformation=NULL,seqdepth=TRUE)

squaretransform<-polynomial_transformation(c(1,0))

Xexp<-rpois(n*p,as.vector(diag(seqdepth)%*%exp(Latent)))

Poisson_Corrected_PCA(Xseqdep,k=2,transformation="log",seqdepth="minvar")

PoissonPCA documentation built on Aug. 17, 2021, 5:09 p.m.