[R] Error with constrained curve fitting through specific points

PIKAL Petr petr@p|k@| @end|ng |rom prechez@@cz
Wed Jan 22 16:32:44 CET 2020


Hi

You probably has to use less points in con.

With just three points
> con1 <- con[c(1, 5, 10),]
> fit_result <- cobs(dat$x, dat$y, pointwise = con1)
qbsks2():
 Performing general knot selection ...

 Deleting unnecessary knots ...

function seems to work without error.

Cheers
Petr


> -----Original Message-----
> From: R-help <r-help-bounces using r-project.org> On Behalf Of Tung Nguyen
> Sent: Wednesday, January 22, 2020 4:01 PM
> To: r-help using r-project.org
> Subject: [R] Error with constrained curve fitting through specific points
> 
> Hello R-Help,
> 
> I'm trying to find the best fitting curve through a given set of points.
> The fitted curve must also pass through these points. I found an answer on
> Cross Validated which suggested to use the `cobs: Constrained B-Splines
> (Sparse Matrix Based)` package. However, I got an error while testing it
> with my sample data:
> 
> Error in x %*% coefficients: NA/NaN/Inf in foreign function call (arg 2)
> 
> *My question*: what caused this error and how can I fix it? Any suggestion
> is greatly appreciated. Thanks!
> 
> 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)*
> 
> 
> Best regards,
> 
> -- Tung
> 
> 	[[alternative HTML version deleted]]
> 
> ______________________________________________
> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-
> guide.html
> and provide commented, minimal, self-contained, reproducible code.


More information about the R-help mailing list