Как подогнать гладкую кривую к моим данным в R, используя полиномы Бернштейна? - PullRequest
0 голосов
/ 05 февраля 2020

Я знаю, что есть много подобных вопросов, но мне нужно решить проблему , в частности, с помощью полиномов Бернштейна

Я пробовал что-то вроде этого:

library(pracma)

train <- rnorm(100)
test <- rnorm(50)

eCDF <- ecdf(train)

# squeeze eCDF support between 0 and 1
Fy <- function(y){
  b <- max(train)
  a <- min(train)
  eCDF((b-a)*y+a)
}

m <- min(test)
M <- max(test)
# squeeze points between 0 and 1
x_to_y <- function(x) return ((x-m)/(M-m))

# polynomial order
k = 10

x <- x_to_y(test)

# bernstein Args: function to be approximated, order, points to estimates
y <- bernstein(Fy,k, x)

plot(x, y)

В этот балл я получаю только баллов . Мне не очень понятно ... Я думал, что метод Бернштейна должен выполнять сглаживание некоторых функций, но как?

Я пытался

lo <- loess(y~x)
plot(x,y)
lines(predict(lo), col='red', lwd=2)

, но: 1. Это не работает 2. Это вид ерунды

Спасибо за любую помощь

...