RAFF.jl

RAFF.jl: Robust Algebraic Fitting Function in Julia - Published in JOSS (2019)

https://github.com/fsobral/raff.jl

Science Score: 93.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 8 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: springer.com, joss.theoj.org, zenodo.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords

julia-package lower-order-value-optimization model-adjustment optimization-algorithms

Keywords from Contributors

bilevel-optimization bilevel-problem complementarity-constraints julialang jump mathematical-programming

Scientific Fields

Earth and Environmental Sciences Physical Sciences - 40% confidence
Last synced: 4 months ago · JSON representation

Repository

Robust Algebraic Fitting Function project

Basic Info
  • Host: GitHub
  • Owner: fsobral
  • License: mit
  • Language: Julia
  • Default Branch: master
  • Homepage:
  • Size: 11.1 MB
Statistics
  • Stars: 18
  • Watchers: 3
  • Forks: 2
  • Open Issues: 9
  • Releases: 5
Topics
julia-package lower-order-value-optimization model-adjustment optimization-algorithms
Created over 7 years ago · Last pushed 10 months ago
Metadata Files
Readme License Zenodo

README.MD

RAFF - Robust Algebraic Fitting Function

Build Status codecov

DOI DOI

This package implements a robust method to fit a given function (described by its parameters) to input data. The method is based on the LOVO algorithm [1] and also in a suitable voting strategy in order automatically eliminate outliers.

Potential use of this package is in statistical problems which depend on fitting functions or in more specific fields like computer vision for problems related shape detection.

For a brief description of the potential of this program and the difference between related strategies in the literature, like least square, consider the following dataset

A=[-2.0 5.0; -1.5 3.25; -1.0 2.0 ; -0.5 1.25; 0.0 1.0 ; 0.5 2.55; 1.0 2.0 ; 1.5 3.25; 2.0 5.0 ;]

Let us assume that we wish to find a fitting function given by parameters x[1], x[2] and the model

f(t)=x[1]*t^2+x[2]

where f(t[i])≈A[i,2] in the least square sense. When we apply a least square strategy we obtain

and when we apply RAFF strategy we get

Note that RAFF detects (automatically) the model f(t)=1.0*t^2 +1.0 that is, RAFF detects the point (0.5,2.55) like an outlier and excludes the influence of this point for determine f(t). Consequently, RAFF detects the number of possible outliers and in the same time, which their are. This fact distinguishes RAFF from other techniques like [1] or classical least square.

Other useful examples are found in the documentation and also in directory examples/.

Installation

RAFF is a package registered in the General repository. Consequently, in order to install RAFF, just type in REPL:

julia julia> ] add RAFF

Advanced

Several files with test problems are provided inside directory test/test_problems. We also provide some scripts to create new random test problems, visualize and solve them using RAFF. Those files can be found in test/scripts. For a detailed explanation of each script file, please refer to the documentation.

Contributing

Any suggestions or contributions to RAFF are very welcome. RAFF is a open-source software available through the MIT license, so users are free to create their own versions of the software. Users are specially encouraged to participate on the project in the following ways:

  • Modifications to the code can be submitter as pull requests to the branch master.
  • Bugs, suggestions and questions can be raised as issues in the project's Github page.
  • General doubts can also be sent directly to fncsobral at uem dot br.

Performance

The following table outlines the results found by the current version of RAFF in the test set.

| Name | Dim. | N Points | N Outl. | Found | Correct | Time (s) | Status | Solution | | ---- | ---- | -------- | ------- | ----- | ------- | -------- | ------ | -------- | | C1 | 4 | 10 | 2 | 2 | 2 | 0.0006 | 1 | [ 1.999e+00, 1.142e-02, -4.023e+00, -1.053e+01] | | C2 | 4 | 10 | 2 | 1 | 1 | 0.0005 | 1 | [ 1.575e+00, 2.635e+00, 3.434e+01, -7.821e+00] | | C3 | 4 | 10 | 2 | 2 | 1 | 0.0005 | 1 | [ 4.221e-01, -1.596e+01, 2.388e+01, 2.146e+02] | | C4 | 4 | 10 | 1 | 1 | 1 | 0.0005 | 1 | [ 2.701e+00, 2.556e+00, -5.914e+01, -1.021e+02] | | C5 | 4 | 100 | 1 | 9 | 1 | 0.0210 | 1 | [ 2.114e+00, 1.160e+00, -6.590e+00, -1.971e+01] | | CI1 | 3 | 25 | 2 | 2 | 2 | 0.0020 | 1 | [ 9.741e-01, 9.769e-01, 5.020e+00] | | E1 | 3 | 20 | 1 | 1 | 0 | 0.0263 | 1 | [ 3.271e+03, -9.884e+01, 5.507e+01] | | E2 | 3 | 10 | 1 | 2 | 0 | 0.0110 | 1 | [ 2.137e+03, 2.760e+03, 2.369e+02] | | E3 | 3 | 100 | 1 | 1 | 1 | 0.2297 | 1 | [ 9.590e+02, 9.632e+03, 3.940e-01] | | E4 | 3 | 100 | 10 | 1 | 1 | 0.2308 | 1 | [ 1.139e+03, 9.370e+03, 4.206e-01] | | LOG1 | 4 | 10 | 1 | 0 | 0 | 0.0042 | 1 | [ 1.479e+03, 2.201e+03, 6.611e+01, -2.075e+02] |

Credits

  • Francisco Sobral (Leader)
  • Emerson Vitor Castelani
  • Ronaldo Lopes
  • Wesley Shirabayashi

The authors of this package were sponsored by Fundação Araucária, project number 002/17 - 47223. If you would like to cite this package, please use

Castelani, E. V., Lopes, R., Shirabayashi, W., & Sobral, F. N. C. (2019). RAFF.jl: Robust Algebraic Fitting Function in Julia. Journal of Open Source Software, 4(39), 1385. https://doi.org/10.21105/joss.01385

The following paper describes the theory and several comparison tests

@article{Castelani2021, author = {Castelani, Emerson V. and Lopes, Ronaldo and Shirabayashi, Wesley V. I. and Sobral, Francisco N. C.}, doi = {10.1007/s10898-020-00970-4}, journal = {Journal of Global Optimization}, title = {{A robust method based on LOVO functions for solving least squares problems}}, url = {http://link.springer.com/10.1007/s10898-020-00970-4}, year = {2021} }

References

[1] Andreani, R., Martínez, J. M., Martínez, L., & Yano, F. S. (2009). Low order-value optimization and applications. Journal of Global Optimization, 43(1), 1-22.

Owner

  • Name: F. N. C. Sobral
  • Login: fsobral
  • Kind: user
  • Location: Maringá, Paraná, Brazil
  • Company: State University of Maringá

JOSS Publication

RAFF.jl: Robust Algebraic Fitting Function in Julia
Published
July 02, 2019
Volume 4, Issue 39, Page 1385
Authors
Emerson V. Castelani ORCID
Department of Mathematics, State University of Maringá, Paraná, Brazil
Ronaldo Lopes
Department of Mathematics, State University of Maringá, Paraná, Brazil
Wesley V. Shirabayashi ORCID
Department of Mathematics, State University of Maringá, Paraná, Brazil
Francisco N. c. Sobral ORCID
Department of Mathematics, State University of Maringá, Paraná, Brazil
Editor
Jack Poulson ORCID
Tags
Statistics Lower Order-Value Optimization Outlier detection Nonlinear optimization

GitHub Events

Total
Last Year

Committers

Last synced: 5 months ago

All Time
  • Total Commits: 414
  • Total Committers: 8
  • Avg Commits per committer: 51.75
  • Development Distribution Score (DDS): 0.275
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Francisco c****l@g****m 300
fsobral f****l@u****r 60
evcastelani e****r@g****m 48
Kyle Niemeyer k****r@g****m 2
Mathieu Besançon m****n@g****m 1
Julia TagBot 5****t 1
F. N. C. Sobral c****b@g****m 1
evcastelani e****i@u****r 1
Committer Domains (Top 20 + Academic)
uem.br: 2

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 30
  • Total pull requests: 4
  • Average time to close issues: 21 days
  • Average time to close pull requests: about 1 month
  • Total issue authors: 5
  • Total pull request authors: 3
  • Average comments per issue: 1.93
  • Average comments per pull request: 0.0
  • Merged pull requests: 4
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • fsobral (16)
  • matbesancon (8)
  • evcastelani (3)
  • abelsiqueira (2)
  • KronosTheLate (1)
Pull Request Authors
  • kyleniemeyer (2)
  • matbesancon (1)
  • JuliaTagBot (1)
Top Labels
Issue Labels
enhancement (11) bug (3) question (1)
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads: unknown
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 7
juliahub.com: RAFF

Robust Algebraic Fitting Function project

  • Versions: 7
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 9.9%
Average: 28.0%
Stargazers count: 29.9%
Forks count: 33.3%
Dependent packages count: 38.9%
Last synced: 4 months ago

Dependencies

.github/workflows/TagBot.yml actions
  • JuliaRegistries/TagBot v1 composite