I got 16.60964.
Your curve is not linear up to the 39th point.
And as your points appear to be deterministic and nonlinear, splines
are likely to be easier to use.

Here's a base-only solution (if you don't like my kubik suggestion):

g <- splinefun (X, Y)
f <- function (x) g (x) - 6
uniroot (f, c (1, 45) )$root


On Wed, Jan 27, 2021 at 10:30 PM Luigi Marongiu
<marongiu.lu...@gmail.com> wrote:
>
> Dear Jeff,
> I am not sure if I understood the procedure properly but it looks like it 
> works:
> ```
> Y <-c(1.301030,  1.602060,  1.903090,  2.204120,  2.505150,  2.806180,
>  3.107210,  3.408240,  3.709270,
> 4.010300,  4.311330,  4.612360,  4.913390,  5.214420,  5.515450,
> 5.816480,  6.117510,  6.418540,
> 6.719570,  7.020599,  7.321629,  7.622658,  7.923686,  8.224713,
> 8.525735,  8.826751,  9.127752,
> 9.428723,  9.729637, 10.030434, 10.330998, 10.631096, 10.930265,
> 11.227580, 11.521213, 11.807577,
> 12.079787, 12.325217, 12.523074, 12.647915, 12.693594, 12.698904,
> 12.698970, 12.698970, 12.698970)
> X <- 1:45
> plot(Y~X)
> raw_value <- predict(lm(X[1:39]~Y[1:39]), newdata = data.frame(Y=6))
> x <- unname(raw_value[!is.na(raw_value)]) # x= 16.62995
> points(x, 6, pch = 16)
> ```
> Here I used the points 1:39 because afterward there is a bend. But I
> am not clear why I need to use `lm(X~Y),` instead of `lm(Y~X)`.
> Thank you
>
> On Tue, Jan 26, 2021 at 10:20 AM Jeff Newmiller
> <jdnew...@dcn.davis.ca.us> wrote:
> >
> > model2 <- lm( x~y )
> > predict(model2, data.frame(y=26))
> >
> > model2 is however not the inverse of model... if you need that then you 
> > need to handle that some other way than using predict, such as an 
> > invertible monotonic spline (or in this case a little algebra).
> >
> > On January 26, 2021 1:11:39 AM PST, Luigi Marongiu 
> > <marongiu.lu...@gmail.com> wrote:
> > >Hello,
> > >I have a series of x/y and a model. I can interpolate a new value of x
> > >using this model, but I get funny results if I give the y and look for
> > >the correspondent x:
> > >```
> > >> x = 1:10
> > >> y = 2*x+15
> > >> model <- lm(y~x)
> > >> predict(model, data.frame(x=7.5))
> > > 1
> > >30
> > >> predict(model, data.frame(y=26))
> > > 1  2  3  4  5  6  7  8  9 10
> > >17 19 21 23 25 27 29 31 33 35
> > >Warning message:
> > >'newdata' had 1 row but variables found have 10 rows
> > >> data.frame(x=7.5)
> > >    x
> > >1 7.5
> > >> data.frame(y=26)
> > >   y
> > >1 26
> > >```
> > >what is the correct syntax?
> > >Thank you
> > >Luigi
> > >
> > >______________________________________________
> > >R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
> > >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.
> >
> > --
> > Sent from my phone. Please excuse my brevity.
>
>
>
> --
> Best regards,
> Luigi
>
> ______________________________________________
> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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 -- To UNSUBSCRIBE and more, see
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.

Reply via email to