Calibration (inverse prediction) from LOESS object in R

限于喜欢 提交于 2020-01-22 03:32:18

问题


I have fit a LOESS local regression to some data and I want to be able to find the X value associated with a given Y value.

plot(cars, main = "Stopping Distance versus Speed")
car_loess <- loess(cars$dist~cars$speed,span=.5)
lines(1:50, predict(car_loess,data.frame(speed=1:50)))

I was hoping that I could use teh inverse.predict function from the chemCal package, but that does not work for LOESS objects.

Does anyone have any idea how I might be able to do this calibrationa in a better way than predicticting Y values from a long vector of X values and looking through the resulting fitted Y for the Y value of interest and taking its corresponding X value?

Practically speaking in the above example, let's say I wanted to find the speed at which the stopping distance is 15.

Thanks!


回答1:


The predicted line that you added to the plot is not quite right. Use code like this instead:

# plot the loess line
lines(cars$speed, car_loess$fitted, col="red")

You can use the approx() function to get a linear approximation from the loess line at a give y value. It works just fine for the example that you give:

# define a given y value at which you wish to approximate x from the loess line
givenY <- 15
estX <- approx(x=car_loess$fitted, y=car_loess$x, xout=givenY)$y
# add corresponding lines to the plot
abline(h=givenY, lty=2)
abline(v=estX, lty=2)

But, with a loess fit, there may be more than one x for a given y. The approach I am suggesting does not provide you with ALL of the x values for the given y. For example ...

# example with non-monotonic x-y relation
y <- c(1:20, 19:1, 2:20)
x <- seq(y)
plot(x, y)
fit <- loess(y ~ x)
# plot the loess line
lines(x, fit$fitted, col="red")

# define a given y value at which you wish to approximate x from the loess line
givenY <- 15
estX <- approx(x=fit$fitted, y=fit$x, xout=givenY)$y
# add corresponding lines to the plot
abline(h=givenY, lty=2)
abline(v=estX, lty=2)


来源:https://stackoverflow.com/questions/23957486/calibration-inverse-prediction-from-loess-object-in-r

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!