Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Interpolations to implement #2

Closed
13 tasks done
ChrisRackauckas opened this issue Aug 14, 2018 · 14 comments
Closed
13 tasks done

Interpolations to implement #2

ChrisRackauckas opened this issue Aug 14, 2018 · 14 comments
Assignees

Comments

@ChrisRackauckas
Copy link
Member

ChrisRackauckas commented Aug 14, 2018

It satisfies y(t)=y(t_{i}) at every data point, and this is something that the traditional interpolating polynomials all do, like:

  • Constant Interpolation (Piecewise constant)
  • Linear interpolation
  • Quadratic interpolation
  • Lagrange interpolation
  • Quadratic spline
  • B-splines
  • cubic splines

and that also serves as a good list of interpolants to implement. In addition, there are other methods which do not satisfy y(t)=y(t_{i}) and instead smooth the data. This can be useful on noisy data. Methods include:

  • LOESS
  • Gaussian processes (with given kernels)
  • Regression splines

Those are the fancy ways to do it correctly, but the older packages have some methods which are lower parameterizations using simple functions. These can be better when you have less data points. The functions include:

  • Hill-type functions
  • Weibull-type functions
  • Sigmoids

In these cases, a simple curve fitting / parameter estimation is done to find the best parameters for the curve through the data, and that is taken as the form of the interpolation.

@ChrisRackauckas
Copy link
Member Author

Some are from here: https://www.ncbi.nlm.nih.gov/pubmed/12803771

@sipah00 we should start by gathering sources.

@vjd
Copy link
Contributor

vjd commented Aug 14, 2018

I have the pdfs in the zotero library. Will give acess to all for the ivivc or diffeq lib

@ChrisRackauckas
Copy link
Member Author

we need to find a good source for things like B-splines and regression splines which I don't think are in those.

@sipah00
Copy link
Contributor

sipah00 commented Sep 10, 2018

http://www.cad.zju.edu.cn/home/zhx/GM/009/00-bsia.pdf
This resource describes following methods for Parameter Selection and Knot Vector Generation and everyone has its pros and cons.
• The Uniformly Spaced Method
• The Chord Length Method
• The Centripetal Method
• The Universal Method

Do we need to implement every variant of B spline (above methods)?

@ChrisRackauckas
Copy link
Member Author

Nah, pick one. Not uniformly spaced method though. We should do them all but to start chord is probably good enough.

@sipah00
Copy link
Contributor

sipah00 commented Sep 12, 2018

@ChrisRackauckas @vjd Okay, My mid-semester exams are from 18 to 26 sep, So I will start working after 26 sep.

@sipah00
Copy link
Contributor

sipah00 commented Sep 28, 2018

I'm back 😁 , working on spline. Any important update which I missed due to not being active?

@vjd
Copy link
Contributor

vjd commented Sep 28, 2018

update is that we all missed you ;)
Let us know what @eeshan9815 and you are working on to deliver next so that we can plan on some other stuff.

@ChrisRackauckas
Copy link
Member Author

One set of methods which would be quick to work on @eeshan9815 would be the curve fits. The types are mentioned in https://www.ncbi.nlm.nih.gov/pubmed/12803771 . You can implement them by defining the functional form and using Optim.jl or LsqFit.jl to optimize the fitted curve from the data. These should be the

  • Hill-type functions
  • Weibull-type functions
  • Sigmoids

@eeshan9815
Copy link
Contributor

Okay, I am currently working on cubic spline and order testing (#7), for both of which, I will have a PR in by tonight or tomorrow morning. I will get to the next set of methods after them.

@ChrisRackauckas
Copy link
Member Author

That sounds perfect. I was just making sure you had something in mind since I thought @sipah00 was doing splines (sounds like you two are working together?). LOESS, GPs, and regression splines can go last since they will be more difficult, and those will be the true unique parts of the library. (@vjd, if we're looking for another publication, we can think about doing one on regression splines for time varying covariate estimation from data)

@ChrisRackauckas
Copy link
Member Author

I realized that the B-splines you did are regression splines, so I knocked those off.

@vjd
Copy link
Contributor

vjd commented Nov 8, 2018

@ChrisRackauckas still thinking of the publications you mentioned in the earlier comment here. Totally worth it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants