Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I've got a multiplicative-with-noise model $F(x,y)=S(x)*R(y)*D(x,y)+N$, where $S(x)$ and $R(y)$ are unknown functions, $D(x,y)$ is a distance function, that is, a function that depends only on $|x-y|$ and decreases quickly when distance increases. $N$ is an uncorrelated "small random noise" function. All of the functions except noise are positive.

I have $F(x,y)$ sampled for almost any not-very-distant pair of discrete $(x,y)$, that is, for $(x,y): |x-y| \leq D_{max}$.

I'd like to decompose $F(x,y)$ to obtain the "form" of $S(x), R(y), D(x,y)$. How can I do it? My only idea is to calculate averages $S_{est}(x_i)=average(F(x,y), x=x_i)$, $R_{est}(y_j)=average(F(x,y),y=y_j)$ etc, assume $N=0$, then produce an estimated $F_{est}=S_{est}(x)*R_{est}(y)*D_{est}(x,y)$. I dont know what to do next.

share|cite|improve this question
up vote 3 down vote accepted

The standard way would be to minimize an error function, perhaps least-min-squares $$\mathbb{E} [F(x,y) - S(x)R(y)D(|x-y|)]^2,$$ where $S,R,D$ are all variables. You can also add a regularization term reflecting your belief that $D(d)$ is small for large $d$, e.g. something like $\sum c_d D(d)^2$ for some chosen weights $c_d \rightarrow \infty$.

Now that you have a clear goal, you can try to find an explicit solution by finding the minimum analytically. Alternatively, use any standard iterative minimizing technique in the literature, for example gradient descent, to solve the problem in practice.

share|cite|improve this answer
Should I first transform the task into logarithm domain, assuming the noise is zero? That is, considering $N=0$ and taking the logarithm of the both hands of the equality, gives $log(F(x,y))=log(S(x))+log(R(y))+log(D(|x-y|)$, and renaming $log(F)=f$ etc gives $f(x,y)=s(x)+r(y)+d(|x-y|)$. – mbaitoff Nov 23 '10 at 4:45
If you assume that the noise is normal, then least-min-squares is gives the solution with maximum likelihood (with the regularization, maximum aposteriori probability). – Yuval Filmus Nov 23 '10 at 6:08
I've got approximately 10-20 thousands of $x$ and $y$ points, and $F(x,y)$ is sampled approximately at 10-20 millions of $(x,y)$ pairs. So, the task is to find a 10-20 thousand-element vectors $S(x)$, $R(y)$. I'm not happy to dive into zillion-term matrices. Is it safe to use the averages approach instead? – mbaitoff Nov 23 '10 at 7:44
The best way to know is to try. You can then check your results using the formula - if you have some model for the noise, you can actually check if the solution you get is reasonable. – Yuval Filmus Nov 23 '10 at 9:15

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.