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

Add Nelson-Siegel and Smoothing Spline Yield Curve fitting #70

Open
2 of 3 tasks
alecloudenback opened this issue Dec 3, 2021 · 10 comments
Open
2 of 3 tasks

Add Nelson-Siegel and Smoothing Spline Yield Curve fitting #70

alecloudenback opened this issue Dec 3, 2021 · 10 comments
Labels
enhancement New feature or request good first issue Good for newcomers
Milestone

Comments

@alecloudenback
Copy link
Member

alecloudenback commented Dec 3, 2021

Seems like a good reference:

Three related variants:

  • Nelson-Siegel
  • Nelson-Seigel-Svensson
  • Smoothing Splines

This could be good first issue for someone familiar with the above methods already.

@alecloudenback alecloudenback added enhancement New feature or request good first issue Good for newcomers labels Dec 3, 2021
@alecloudenback alecloudenback added this to the after v1 milestone Feb 6, 2022
@alecloudenback
Copy link
Member Author

@leeyuntien
Copy link
Contributor

Would like to contribute to this issue. Please advise next steps. Thanks!

@kasperrisager
Copy link
Contributor

A good first step would be to make a struct that holds the data for the Nelson-Siegel parametrisation and methods for computing discount and zero rate correctly. Add in some tests. You can get inspired by the Smith-Wilson implementation. The open a draft pr.

@leeyuntien
Copy link
Contributor

Tried to implement and added NelsonSiegelSvensson.jl and SmoothingSplines.jl whose approach might be debatable but please advise how these can be uploaded/pulled for a review.

@alecloudenback
Copy link
Member Author

Awesome! Check out this article about creating a pull request: https://www.digitalocean.com/community/tutorials/how-to-create-a-pull-request-on-github

A PR will allow the automated tests/checks to occur and makes it easy to review the changes.

@alecloudenback
Copy link
Member Author

Two of three will be completed in #116

@leeyuntien
Copy link
Contributor

I have seen there are two spline methods in bootstrapping, do we still need smoothing splines? In this reference https://www.bis.org/publ/bppdf/bispap25.pdf it seems to talk about cubic splines, so smoothing splines here would mean cubic splines, or splines with even higher degrees? Thanks.

Seems like a good reference:

Three related variants:

  • Nelson-Siegel
  • Nelson-Seigel-Svensson
  • Smoothing Splines

This could be good first issue for someone familiar with the above methods already.

@alecloudenback
Copy link
Member Author

My understanding is that "smoothing splines" refers to fitting (minimizing error) of a starting spline model, whereas the existing methods fit simple splines through bootstrapped points (for the given points, the model error is zero).

@alecloudenback
Copy link
Member Author

I was looking at DataInterpolations.jl and think that maybe it has smoothing spline fitting built in?

@leeyuntien
Copy link
Contributor

I think you are right, and there are examples showing how to call the BSpline functions. https://htmlpreview.github.io/?https://github.com/PumasAI/DataInterpolations.jl/blob/v2.0.0/example/DataInterpolations.html.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request good first issue Good for newcomers
Projects
None yet
Development

No branches or pull requests

3 participants