Aren't you just reinventing the inverse of a function? --------------------------------------------------------------------------- Jeff Newmiller The ..... ..... Go Live... DCN:<jdnew...@dcn.davis.ca.us> Basics: ##.#. ##.#. Live Go... Live: OO#.. Dead: OO#.. Playing Research Engineer (Solar/Batteries O.O#. #.O#. with /Software/Embedded Controllers) .OO#. .OO#. rocks...1k --------------------------------------------------------------------------- Sent from my phone. Please excuse my brevity.
Emmanuel Levy <emmanuel.l...@gmail.com> wrote: >Hi, > >I am trying to normalize some data. First I fitted a principal curve >(using the LCPM package), but now I would like to apply a >transformation so that the curve becomes a "straight diagonal line" on >the plot. The data used to fit the curve would then be normalized by >applying the same transformation to it. > >A simple solution could be to apply translations only (e.g., as done >after a fit using loess), but here rotations would have to be applied >as well. One could visualize this as the "stretching of a curve", >i.e., during such an "unfolding" process, both translations and >rotations would need to be applied. > >Before I embark on this (which would require me remembering long >forgotten geometry principles) I was wondering if you can think of >packages or tricks that could make my life simpler? > >Thanks for any input, > >Emmanuel > > >Below I provide an example - the black curve is to be "brought" along >the diagonal, and all data points normal to a "small segment" (of the >black curve) would undergo the same transformation as it - what >"small" is remains to be defined though. > > tmp=rnorm(2000) > X.1 = 5+tmp > Y.1 = 5+ (5*tmp+rnorm(2000)) > tmp=rnorm(1000) > X.2 = 9+tmp > Y.2 = 40+ (1.5*tmp+rnorm(1000)) > X.3 = 7+ 0.5*runif(500) > Y.3 = 15+20*runif(500) > X = c(X.1,X.2,X.3) > Y = c(Y.1,Y.2,Y.3) > > lpc1 = lpc(cbind(X,Y), scaled=FALSE, h=c(1,1) ) > plot(lpc1) > >______________________________________________ >R-help@r-project.org mailing list >https://stat.ethz.ch/mailman/listinfo/r-help >PLEASE do read the posting guide >http://www.R-project.org/posting-guide.html >and provide commented, minimal, self-contained, reproducible code. ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.