christian.ritter at shell.com
2007-Jun-11 09:06 UTC
[R] Looking for R-code for non-negative matrix factorization in the presence of Gaussian or Poisson noise
Hi all, Has any of you implemented code for non-negative matrix factorization to solve Y=T P' +E; dim(Y)=n,p ; dim(T)=n,nc; dim (P)=(p,nc); dim(E)=n,p where T and P must be non-negative and E either Gaussian or Poisson noise. I'm looking for two variants: 1. Easy (I think), T is known (that is we just want to solve the general inverse problem) 2. Harder (?), T is unknown (under some restrictions) [as an intermediate, we may want to fix nc] Solutions/suggestions welcome Have a nice day, Christian Ritter Senior Statistical Consultant Analytical and Statistical Services Shell Coordination Centre S.A. Monnet Centre International Laboratory, Avenue Jean Monnet 1, B-1348 Louvain-La-Neuve, Belgium Tel: +32 10 477 349 Fax: +32 10 477 219 Email: christian.ritter@shell.com Internet: analyticalsolutions4u.eu [[alternative HTML version deleted]]
Thomas Lumley
2007-Jun-11 13:06 UTC
[R] Looking for R-code for non-negative matrix factorization in the presence of Gaussian or Poisson noise
On Mon, 11 Jun 2007, christian.ritter at shell.com wrote:> > Hi all, > > Has any of you implemented code for non-negative matrix factorization to > solve > > Y=T P' +E; dim(Y)=n,p ; dim(T)=n,nc; dim (P)=(p,nc); dim(E)=n,p > > where T and P must be non-negative and E either Gaussian or Poisson noise. > > I'm looking for two variants: > > 1. Easy (I think), T is known (that is we just want to solve the general > inverse problem)This is non-negative least squares, a quadratic programming problem, for which there is code (at least if n and nc are not too big)> > 2. Harder (?), T is unknown (under some restrictions) [as an > intermediate, we may want to fix nc] >Even with fixed nc this is Distinctly Non-trivial. It often isn't identifiable, for a start. I've encountered this problem in air pollution source apportionment, where people use an algorithm due to Paatero (1999) JCGS 8:854-8, which is a conjugate gradient algorithm that handles the constraints by creative abuse of preconditioning. The algorithm seems fairly well-behaved, although the statistical properties of the estimates are not well-understood [at least, I don't understand them, and I have simulations that appear to contradict the views of people who claim to understand them]. The difficulty probably depends on the size of the problem -- the air pollution problems have n~1000, p~20, nc~7, or larger. -thomas
Reasonably Related Threads
- Looking for nice implementations of rectangular scatterplot matrices
- Assistance with dll's to use with dyn.load
- Slightly off topic but concerning R#DSC-2005
- A little problem handling logicals in RMySQL under R1.6.1
- The desire for prettier and cheaper images ...