Я пытаюсь найти наиболее подходящую кривую через заданный набор точек. Установленная кривая также должна проходить через эти точки. Я нашел ответ на Cross Validated, в котором предлагалось использовать пакет cobs: Constrained B-Splines (Sparse Matrix Based)
. Тем не менее, я получил ошибку при тестировании с моими примерами данных:
Error in x %*% coefficients: NA/NaN/Inf in foreign function call (arg 2)
Мой вопрос : что вызвало эту ошибку и как ее исправить? Я открыт для других решений, использующих другие методы / пакеты тоже. Спасибо!
library(cobs)
dat <- data.frame(
x = c(1e-06,0.25,0.5,0.75,1,2,3,4,5,6),
y = c(1e-07,1.925,2.9625,3.469375,
3.875,4.5315,4.89,5.09375,5.216,5.46))
dat
#> x y
#> 1 1.0e-06 0.0000001
#> 2 2.5e-01 1.9250000
#> 3 5.0e-01 2.9625000
#> 4 7.5e-01 3.4693750
#> 5 1.0e+00 3.8750000
#> 6 2.0e+00 4.5315000
#> 7 3.0e+00 4.8900000
#> 8 4.0e+00 5.0937500
#> 9 5.0e+00 5.2160000
#> 10 6.0e+00 5.4600000
# visual inspection
plot(dat); lines(dat)
# define constrained points
con <- matrix(
cbind(c(0,0,0,0,0,0,0,0,0,0),
c(1e-06,0.25,0.5,0.75,1,2,3, 4,5,6),
c(1e-07,1.925,2.9625,3.469375,
3.875,4.5315,4.89,5.09375,5.216, 5.46)),
ncol = 3, nrow = 10)
# curve fitting
fit_result <- cobs(dat$x, dat$y, pointwise = con)
#> qbsks2():
#> Performing general knot selection ...
#> Error in x %*% coefficients: NA/NaN/Inf in foreign function call (arg 2)
Создано в 2020-01-21 пакетом Представить (v0.3.0)