Имея следующие данные (взятые из: https://www.r -bloggers.com / first-steps-with-non-linear-regression-in-r / ):
#simulate some data
set.seed(20160227)
x<-seq(0,50,1)
y<-((runif(1,10,20)*x)/(runif(1,0,10)+x))+rnorm(51,0,1)
#for simple models nls find good starting values for the parameters even if it throw a warning
m<-nls(y~a*x/(b+x))
#get some estimation of goodness of fit
cor(y,predict(m))
[1] 0.9496598
#plot
plot(x,y)
lines(x,predict(m),lty=2,col="red",lwd=3)
Как удалить значения, представляющие верхний 10% квантиль отношения y ~ x?
С помощью следующего кода можно нарисовать линию, представляющую квантиль 90%. Чего мне не хватает, так это как удалить все данные (у ~ х), которые находятся над квантилем 90% (зеленая линия)
# prepare data
xy <- as.data.table(cbind(x,y))
xy <- xy[-1, ]
# fit line
fit.nlrq.09 <- nlrq(y ~ SSmicmen(x, Vm, K), data = xy, tau = 0.90)
lines(fitted(fit.nlrq.09) ~ x, xy, col=3)