Выберите места с высокой плотностью в векторе - PullRequest
2 голосов
/ 23 марта 2020

Я хочу найти ожидаемое значение y с учетом x, основываясь на некоторых данных. Мне нужны действительно хорошие оценки среднего значения y для нескольких конкретных значений x, но я не хочу / не нужно подгонять что-либо по параметру c или делать регрессию.

Вместо этого я хочу взять свои наблюдения, собрать их несколько, где у меня много значений x в небольшом диапазоне X, и вычислить среднее значение y.

Есть ли умный способ выбрать, скажем, 6 непересекающихся областей высокой плотности из моего вектора x наблюдений?

Если это так, я возьму центр каждой области, возьму несколько ближайших x (возможно, 100 в моих реальных данных) и вычислю соответствующее среднее (y).

Вот некоторые примеры данных:

# pick points for high density regions

#xobs<-runif(900)

clustery_obs<-function(x){rnorm(40,x,0.2)}
under_x<-runif(11)
xobs<-sapply(under_x, clustery_obs)
xobs<-xobs[0<xobs&xobs<1]

yfun<-function(x){rnorm(1, mean=(10*x)^2-(30*x)+3, sd=6)}

yobs<-sapply(xobs, yfun)

plot(xobs, yobs)
...