Timeline for Coordinates from noisy distance matrix?
Current License: CC BY-SA 4.0
8 events
when toggle format | what | by | license | comment | |
---|---|---|---|---|---|
Aug 25, 2020 at 20:41 | vote | accept | Mike Lawrence | ||
Aug 25, 2020 at 20:39 | answer | added | whuber♦ | timeline score: 4 | |
Aug 25, 2020 at 16:28 | comment | added | Mike Lawrence | Ah, beautiful, that works! Now to sit with the math and work at understanding why it works :P Thanks for your help! If you feel like posting your comment as an answer, I'll mark it as the solution. | |
Aug 25, 2020 at 16:10 | comment | added | whuber♦ |
It's the Kronecker delta, a convenient notation for the model. You can create X in R in many ways, such as p <- nrow(D); X <- do.call(rbind, lapply((p-1):1, function(i) cbind(matrix(0, i, p-1-i), -1, diag(1,i,i)))) . Then you're all set: lm.fit(X[, -1], D[lower.tri(D)]) does the work and the estimates will be its coefficients. For large $p$ you will want to use a sparse array representation of $X,$ because $X$ has $p^2(p-1)/2$ entries but only $p(p-1)$ of them are nonzero.
|
|
Aug 25, 2020 at 15:23 | comment | added | Mike Lawrence |
Thanks for taking a look at this! If I understand correctly (and consequent to my latest edit of the question/code for clarity), $y_{ij}$ is the observed noisy-distance matrix D from my code. I'm having trouble discerning what I should be using as the model matrix $x_{ij,k}$ however; I don't follow what $\delta_{ik}$ and $\delta_{jk}$ are intended to be. Would you mind clarifying?
|
|
Aug 25, 2020 at 15:21 | history | edited | Mike Lawrence | CC BY-SA 4.0 |
naming the noisy distance matrix.
|
Aug 25, 2020 at 15:14 | comment | added | whuber♦ |
How would this differ from a straightforward vanilla OLS model? Letting the coordinates of $p$ points be $\beta_i,$ $i=1,\ldots, p,$ the signed distances with noise are $$y_{ij} = \beta_i - \beta_j + \epsilon_{ij}=\mathbf{x}_{ij}\beta + \epsilon_{ij}$$ with iid Normal errors $\epsilon_{ij}$ and model matrix $x_{ij,k} = \delta_{ik}-\delta_{jk}.$ R's lm function should fit this beautifully (especially if you fix, say, $\beta_1=0$ to eliminate the inherent non-identifiability). Is your problem perhaps that $p$ is huge? Something else?
|
|
Aug 25, 2020 at 15:06 | history | asked | Mike Lawrence | CC BY-SA 4.0 |