Как удалить значения верхнего 10% квантиля - PullRequest
0 голосов
/ 05 сентября 2018

Имея следующие данные (взятые из: 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)

enter image description here

Как удалить значения, представляющие верхний 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)

enter image description here

...