# mrf 0.1.9 (CRAN)

Multiresolution Forecasting

[Record of 0.1.9](/cran/mrf/v/0.1.9.md) | Compare: [With 0.1.6](/cran/mrf/compare/0.1.6...0.1.9.md), [With another package](/compare/mrf.md#add), [Downloads](/downloads/compare/mrf.md#add) | [Licences](/cran/mrf/licences.md) | [SBOM](/cran/mrf/sbom.md)

Install from CRAN: `install.packages("mrf")`

Also from:

- r2u (Ubuntu binaries): `sudo apt install r-cran-mrf` _Listed from recorded download activity on this channel, not from a live index, so read it as last known. Bioconductor packages are named r-bioc-<name> there._
- Fedora COPR (iucar/cran): `sudo dnf install R-CRAN-mrf` _A rebuild of what CRAN lists, so it can lag CRAN by a rebuild._
- autoCRAN (openSUSE): `sudo zypper install R-mrf` _Listed from recorded download activity on this channel, not from a live index, so read it as last known._

- CRAN checks: All OK (13 platforms)
- CRAN 30-day downloads: 334 (down 13.3% on the 30 days before, the worse direction)
- Dependent packages: 0 (none suggest it)
- Test coverage: No tests (nothing to run)
- Advisories: None known

## About

[Method](/about/licenses.md)

Forecasting of univariate time series using feature extraction with variable prediction methods is provided. Feature extraction is done with a redundant Haar wavelet transform with filter h = (0.5, 0.5).

**Full description**

Forecasting of univariate time series using feature extraction with variable prediction methods is provided. Feature extraction is done with a redundant Haar wavelet transform with filter h = (0.5, 0.5). The advantage of the approach compared to typical Fourier based methods is an dynamic adaptation to varying seasonalities. Currently implemented prediction methods based on the selected wavelets levels and scales are a regression and a multi-layer perceptron. Forecasts can be computed for horizon 1 or higher. Model selection is performed with an evolutionary optimization. Selection criteria are currently the AIC criterion, the Mean Absolute Error or the Mean Root Error. The data is split into three parts for model selection: Training, test, and evaluation dataset. The training data is for computing the weights of a parameter set. The test data is for choosing the best parameter set. The evaluation data is for assessing the forecast performance of the best parameter set on new data unknown to the model. This work is published in Stier, Q.; Gehlert, T.; Thrun, M.C. Multiresolution Forecasting for Industrial Applications. Processes 2021, 9, 1697. <doi:10.3390/pr9101697>.

- Maintainer: Quirin Stier
- Licence: [GPL-3](/licences/GPL-3.md)
- Latest release: 16 Apr 2026
- First release: 22 Sep 2021

- [Website](https://www.deepbionics.org)
- [CRAN page](https://cran.r-project.org/package=mrf)
- [Source repository](https://github.com/quirinms/mrfr)
- [Issues](https://github.com/Quirinms/MRFR/issues)
- [Source of every release](https://github.com/cran/mrf)

[Compare with another package](/compare/mrf.md#add)

**More details**

- Releases: 3
- Needs compilation: No
- Needs R: >= 3.5.0
- Date: 2026-04-11
- LazyData: true

**Task views (0)**

Earlier: Time Series Analysis (until 21 Aug 2025).

**Subjects (1) [Method](/about/subjects.md#found)**

- [Time series analysis](/topics/subjects/time-series-forecasting.md)

**Cite**

#### Package

Run in R for the authors' preferred citation:

`citation("mrf")`

APA: Stier, Q., & Thrun, M. (2026). mrf: Multiresolution Forecasting (Version 0.1.9) [Computer software]. https://doi.org/10.32614/CRAN.package.mrf

BibTeX:

```
@Manual{mrf,
  title  = {mrf: Multiresolution Forecasting},
  author = {Stier, Quirin and Thrun, Michael},
  year   = {2026},
  note   = {R package version 0.1.9},
  doi    = {10.32614/CRAN.package.mrf},
  url    = {https://CRAN.R-project.org/package=mrf}
}
```

This package has no citation file, so `citation()` returns this entry built from `DESCRIPTION`.

#### R Observatory

For a number measured here: a download total, a coverage figure, an archival date.

APA: Balamuta, J. J. (2026). R Observatory: Metrics for mrf version 0.1.9 [Data set]. HJJB, LLC. Data release v2026-10-28. https://doi.org/10.5281/zenodo.21843040

BibTeX:

```
@misc{robservatorymrf,
  author    = {Balamuta, James Joseph},
  title     = {{R} {Observatory}: Metrics for {mrf} version 0.1.9},
  year      = {2026},
  publisher = {HJJB, LLC},
  doi       = {10.5281/zenodo.21843040},
  url       = {https://r-observatory.thecoatlessprofessor.com/packages/mrf},
  note      = {Data set. Data release v2026-10-28}
}
```

From data release v2026-10-28, which the citation names so these numbers can be found later.

## Health

[Method](/about/checks-health.md)

All 13 check platforms pass.

13 CRAN platforms: 13 OK.

Platforms now:

- r-devel-linux-x86_64-debian-clang: OK
- r-devel-linux-x86_64-debian-gcc: OK
- r-devel-linux-x86_64-fedora-clang: OK
- r-devel-linux-x86_64-fedora-gcc: OK
- r-devel-windows-x86_64: OK
- r-oldrel-macos-arm64: OK
- r-oldrel-macos-x86_64: OK
- r-oldrel-windows-x86_64: OK
- r-patched-linux-x86_64: OK
- r-release-linux-x86_64: OK
- r-release-macos-arm64: OK
- r-release-macos-x86_64: OK
- r-release-windows-x86_64: OK

#### Over time

No change since 5 Aug 2026

**As a list (5)**

| Changed | Worst status | OK | Notes | Warnings | Errors |
| --- | --- | ---: | ---: | ---: | ---: |
| 5 Aug 2026 | OK | 13 | 0 | 0 | 0 |
| 1 Aug 2026 | Note | 12 | 1 | 0 | 0 |
| 9 Jun 2026 | OK | 13 | 0 | 0 | 0 |
| 8 Jun 2026 | Error | 12 | 0 | 0 | 1 |
| 17 Apr 2026 | OK | 7 | 0 | 0 | 0 |

Since March 2026

[Check results on CRAN](https://cran.r-project.org/web/checks/check_results_mrf.html)

## Downloads

[Method](/about/downloads.md)

- Downloads in the last 30 days: 349 (down 14.7% on the 30 days before, the worse direction. It is the sum of 4 channels: CRAN, r2u, autoCRAN and c2d4u.)

CRAN alone: rank among CRAN packages, last 30 days: 11,436 of 26,530.

| Channel | Downloads in the last 30 days | In the total | Rank in that channel | Change |
| --- | ---: | --- | --- | --- |
| CRAN | 334 | yes | 11,436 of 26,530 | down 13.3% on the 30 days before, the worse direction |
| r2u | 2 | yes | 14,902 of 30,526 | down 60% on the 30 days before, the worse direction |
| autoCRAN | 6 | yes | 8,234 of 29,212 | down 60% on the 30 days before, the worse direction |
| c2d4u | 7 | yes | 2,397 of 7,575 | up 75% on the 30 days before, the better direction |

Other windows: [Last 90 days](/cran/mrf.md?win=90d#downloads), [Last 365 days](/cran/mrf.md?win=365d#downloads), [All time](/cran/mrf.md?win=all#downloads).

To leave channels out of the total, name them in the address, joined by dots: `?off=autocran.c2d4u`.

#### Over time

Downloads over time, the last 12 whole months:

| Month | CRAN | r2u | autoCRAN | c2d4u | Sum |
| --- | ---: | ---: | ---: | ---: | ---: |
| Oct 2025 | no figure | 5 | no figure | 6 | 11 |
| Nov 2025 | 7 | 2 | no figure | no figure | 9 |
| Dec 2025 | no figure | 6 | no figure | 12 | 18 |
| Jan 2026 | 5 | 3 | no figure | 6 | 14 |
| Feb 2026 | no figure | 6 | no figure | 3 | 9 |
| Mar 2026 | no figure | no figure | no figure | 20 | 20 |
| Apr 2026 | 333 | 19 | no figure | 26 | 378 |
| May 2026 | 543 | 10 | no figure | no figure | 553 |
| Jun 2026 | 514 | no figure | no figure | no figure | 514 |
| Jul 2026 | 265 | 11 | 17 | 4 | 297 |
| Aug 2026 | 272 | 6 | 23 | 4 | 305 |
| Sep 2026 | 375 | no figure | 13 | no figure | 388 |

First day on record: CRAN 22 Sep 2021, r2u 22 May 2022, autoCRAN 30 Jun 2026, c2d4u 21 Oct 2021 (no longer updated).

Every channel here counts downloads, so the channels can be stacked and summed for one period. Each channel counts in its own way and covers a different span of years, so read a sum as a rough total, and read a rise where a channel begins as that channel starting, not as growth.

Weeks start on Monday. A first or last week or month that the channel does not cover in full is left out, so every point is a whole period.

Days with no record add nothing to their week or month. For a little-used package that is usually a day with no downloads, but it can also be a gap in collection.

[Compare downloads](/downloads/compare/mrf.md#add)

## Dependencies

[Method](/about/reverse-dependencies.md)

- Needs: 7
- Dependent packages: 0
- Suggested by: 0

**Needs (7)**

- [DEoptim](/cran/DEoptim.md)
- [forecast](/cran/forecast.md)
- methods
- [monmlp](/cran/monmlp.md)
- [nnfor](/cran/nnfor.md)
- stats
- [wavelets](/cran/wavelets.md)

- Installing it adds: 59 packages, 43.6 MB of source
- Of those, need compilation: 31

**Optional extras (2)**

- [knitr](/cran/knitr.md)
- [rmarkdown](/cran/rmarkdown.md)

## Code

[Method](/about/code-metrics.md)

Selected function: `wavelet_decomposition`

- Kind: Public R function
- File: R/wavelet_decomposition.R, line 1
- Lines: 57
- Complexity: 7

Called by 4: [`mrf_regression_one_step_forecast`](/cran/mrf.md?fn=mrf_regression_one_step_forecast&view=focus#code), [`mrf_neuralnet_one_step_forecast`](/cran/mrf.md?fn=mrf_neuralnet_one_step_forecast&view=focus#code), [`mrf_nnetar_forecast`](/cran/mrf.md?fn=mrf_nnetar_forecast&view=focus#code), [`mrf_elm_forecast`](/cran/mrf.md?fn=mrf_elm_forecast&view=focus#code)

Calls 4: [`dynamic_aggregation`](/cran/mrf.md?fn=dynamic_aggregation&view=focus#code), [`compute_wavelet_matrix`](/cran/mrf.md?fn=compute_wavelet_matrix&view=focus#code), [`hard_thresholding`](/cran/mrf.md?fn=hard_thresholding&view=focus#code), [`soft_thresholding`](/cran/mrf.md?fn=soft_thresholding&view=focus#code)

Paths: 2 steps each way.

Called by 4:

- [`mrf_regression_one_step_forecast`](/cran/mrf.md?fn=mrf_regression_one_step_forecast&view=focus#code), called by 1
  - [`mrf_one_step_forecast`](/cran/mrf.md?fn=mrf_one_step_forecast&view=focus#code), called by 1
- [`mrf_neuralnet_one_step_forecast`](/cran/mrf.md?fn=mrf_neuralnet_one_step_forecast&view=focus#code), called by 1
  - [`mrf_one_step_forecast`](/cran/mrf.md?fn=mrf_one_step_forecast&view=focus#code), called by 1
- [`mrf_nnetar_forecast`](/cran/mrf.md?fn=mrf_nnetar_forecast&view=focus#code), called by 2
  - [`mrf_multi_step_forecast`](/cran/mrf.md?fn=mrf_multi_step_forecast&view=focus#code), called by 3
  - [`mrf_one_step_forecast`](/cran/mrf.md?fn=mrf_one_step_forecast&view=focus#code), called by 1
- [`mrf_elm_forecast`](/cran/mrf.md?fn=mrf_elm_forecast&view=focus#code), called by 2
  - [`mrf_multi_step_forecast`](/cran/mrf.md?fn=mrf_multi_step_forecast&view=focus#code), called by 3
  - [`mrf_one_step_forecast`](/cran/mrf.md?fn=mrf_one_step_forecast&view=focus#code), called by 1

Calls 4:

- [`dynamic_aggregation`](/cran/mrf.md?fn=dynamic_aggregation&view=focus#code), calls 1
  - [`first_level_aggregation`](/cran/mrf.md?fn=first_level_aggregation&view=focus#code)
- [`compute_wavelet_matrix`](/cran/mrf.md?fn=compute_wavelet_matrix&view=focus#code)
- [`hard_thresholding`](/cran/mrf.md?fn=hard_thresholding&view=focus#code)
- [`soft_thresholding`](/cran/mrf.md?fn=soft_thresholding&view=focus#code)

The open file in the files map is `R/wavelet_decomposition.R`.

- Functions: 6
- Lines: 127
- Calls that stay inside it: 5
- Calls to other files: 0
- Calls from other files: 4, from 4

Called from: `R/mrf_elm_forecast.R` (1 call), `R/mrf_neuralnet_one_step_forecast.R` (1 call), `R/mrf_nnetar_forecast.R` (1 call), `R/mrf_regression_one_step_forecast.R` (1 call)

| Function in wavelet_decomposition.R | Calls in other files |
| --- | --- |
| [`wavelet_decomposition`](/cran/mrf.md?fn=wavelet_decomposition&view=focus#code) selected | nothing outside this file |
| [`compute_wavelet_matrix`](/cran/mrf.md?fn=compute_wavelet_matrix&view=focus#code) | nothing outside this file |
| [`dynamic_aggregation`](/cran/mrf.md?fn=dynamic_aggregation&view=focus#code) | nothing outside this file |
| [`first_level_aggregation`](/cran/mrf.md?fn=first_level_aggregation&view=focus#code) | nothing outside this file |
| [`hard_thresholding`](/cran/mrf.md?fn=hard_thresholding&view=focus#code) | nothing outside this file |

**More functions (1)**

| Function in wavelet_decomposition.R | Calls in other files |
| --- | --- |
| [`soft_thresholding`](/cran/mrf.md?fn=soft_thresholding&view=focus#code) | nothing outside this file |


1 file with no calls to or from another: `R/wavelet_tansformation.R`.

The whole package has 26 function names in 17 files and 33 calls between them. Most calls between files: `R/mrf_evaluation.R` and `R/mrf_rolling_forecasting_origin.R` (3 calls), `R/mrf_multi_step_forecast.R` and `R/mrf_rolling_forecasting_origin.R` (2 calls), `R/mrf_elm_forecast.R` and `R/wavelet_decomposition.R` (1 call), `R/mrf_forecast.R` and `R/mrf_multi_step_forecast.R` (1 call), `R/mrf_elm_forecast.R` and `R/mrf_multi_step_forecast.R` (1 call).

Graph: the whole call graph has 25 function names that take part in a call and 33 calls between them, set out in 9 layers with callers before what they call. 1 function name has no calls and is left out. Called by the most functions: `mrf_rolling_forecasting_origin` (4), `wavelet_decomposition` (4), `mrf_multi_step_forecast` (3), `mrf_elm_forecast` (2), `mrf_nnetar_forecast` (2). Calling the most functions: `wavelet_decomposition` (4), `mrf_one_step_forecast` (4), `mrf_regression_one_step_forecast` (4), `mrf_multi_step_forecast` (3), `mrf_neuralnet_one_step_forecast` (3).

Most connected functions: [`wavelet_decomposition`](/cran/mrf.md?fn=wavelet_decomposition&view=focus#code) 8, [`mrf_multi_step_forecast`](/cran/mrf.md?fn=mrf_multi_step_forecast&view=focus#code) 6, [`mrf_one_step_forecast`](/cran/mrf.md?fn=mrf_one_step_forecast&view=focus#code) 5, [`mrf_regression_one_step_forecast`](/cran/mrf.md?fn=mrf_regression_one_step_forecast&view=focus#code) 5, [`mrf_rolling_forecasting_origin`](/cran/mrf.md?fn=mrf_rolling_forecasting_origin&view=focus#code) 5, [`mrf_neuralnet_one_step_forecast`](/cran/mrf.md?fn=mrf_neuralnet_one_step_forecast&view=focus#code) 4

To select another function, add ?fn=NAME to this address.

The call graph also has an address of its own: /cran/mrf/graph.md?fn=wavelet_decomposition&view=focus

- Functions: 27
- Public exports: 15
- Lines of R code: 1,963
- Median complexity: 6

**Functions (27)**

| Function (sorted, low to high) | Kind | File | Lines | Complexity |
| --- | --- | --- | ---: | ---: |
| [`mrf_elm_forecast`](/cran/mrf.md?fn=mrf_elm_forecast#code) | Public | R/mrf_elm_forecast.R | 66 | 6 |
| [`mrf_forecast`](/cran/mrf.md?fn=mrf_forecast#code) | Public | R/mrf_forecast.R | 63 | 10 |
| [`mrf_model_selection`](/cran/mrf.md?fn=mrf_model_selection#code) | Public | R/mrf_model_selection.R | 120 | 12 |
| [`mrf_multi_step_forecast`](/cran/mrf.md?fn=mrf_multi_step_forecast#code) | Public | R/mrf_multi_step_forecast.R | 123 | 17 |
| [`mrf_neuralnet_one_step_forecast`](/cran/mrf.md?fn=mrf_neuralnet_one_step_forecast#code) | Public | R/mrf_neuralnet_one_step_forecast.R | 97 | 6 |
| [`mrf_nnetar_forecast`](/cran/mrf.md?fn=mrf_nnetar_forecast#code) | Public | R/mrf_nnetar_forecast.R | 71 | 6 |
| [`mrf_one_step_forecast`](/cran/mrf.md?fn=mrf_one_step_forecast#code) | Public | R/mrf_one_step_forecast.R | 79 | 11 |
| [`mrf_regression_lsm_optimization`](/cran/mrf.md?fn=mrf_regression_lsm_optimization#code) | Public | R/mrf_regression_lsm_optimization.R | 45 | 1 |
| [`mrf_regression_one_step_forecast`](/cran/mrf.md?fn=mrf_regression_one_step_forecast#code) | Public | R/mrf_regression_one_step_forecast.R | 73 | 6 |
| [`mrf_requirement`](/cran/mrf.md?fn=mrf_requirement#code) | Public | R/mrf_requirement.R | 55 | 5 |
| [`mrf_rolling_forecasting_origin`](/cran/mrf.md?fn=mrf_rolling_forecasting_origin#code) | Public | R/mrf_rolling_forecasting_origin.R | 177 | 16 |
| [`mrf_train`](/cran/mrf.md?fn=mrf_train#code) | Public | R/mrf_train.R | 195 | 15 |

This page lists 1 to 12 of 27 functions. [Next](/cran/mrf.md?sort=name&order=asc&fpage=2#functions)

**Size and composition**

#### Lines by kind (3,207)

| Kind | Lines | Share |
| --- | ---: | ---: |
| R code | 1,963 | 61% |
| Documentation | 1,135 | 35% |
| Guides | 109 | 3% |

#### Lines by language

| Language | Lines | Share |
| --- | ---: | ---: |
| R | 1,963 | 61% |
| Rd | 1,135 | 35% |
| Vignettes | 109 | 3% |

Languages are counted from file extensions.

- Files: 44
- R functions: 27

**Complexity**

- Median: 6
- Mean: 7.3
- Highest: 17
- Median lines per function: 63

_About complexity: Cyclomatic complexity counts the independent paths through a function: 1 is a straight line, higher is harder to test. R functions only._

**Call graph figures**

- R functions: 27
- Calls: 34
- Unconnected: 1
- Groups: 1

**Growth (3 releases)**

Total lines by release: from 3,122 (on 22 Sep 2021) to 3,207 (on 16 Apr 2026). The lowest is 3,122 and the highest is 3,207.

**Release changes**

[Both releases side by side](/cran/mrf/compare/0.1.6...0.1.9.md)

**0.1.6 to 0.1.9**, 23 Feb 2022 to 16 Apr 2026

- Files changed: 14
- Lines added: 518
- Lines deleted: 192
- Exports: No change

**Changed measures (10)**

| Measure | Subject | Before | After |
| --- | --- | ---: | ---: |
| Internal functions | Structure | 10 | 11 |
| Total lines | Structure | 3,122 | 3,207 |
| Lines of R code | Structure | 1,878 | 1,963 |
| R functions | Languages | 26 | 27 |
| Mean complexity | Complexity | 7.39 | 7.3 |
| Lines per function (mean) | Complexity | 68.39 | 68.93 |
| Functions (nodes) | Call graph | 26 | 27 |
| Mean connections | Call graph | 2.62 | 2.52 |
| Functions with no connections | Call graph | 0 | 1 |
| Direct dependencies | Dependencies | 6 | 7 |

**Most changed files (12 of 14)**

| File | Lines added | Lines deleted |
| --- | ---: | ---: |
| `inst/doc/mrf.html` | 343 | 109 |
| `inst/doc/mrf.R` | 35 | 35 |
| `R/wavelet_tansformation.R` | 66 | 0 |
| `R/mrf_regression_lsm_optimization.R` | 23 | 11 |
| `MD5` | 13 | 12 |
| `DESCRIPTION` | 11 | 10 |
| `R/mrf_rolling_forecasting_origin.R` | 7 | 4 |
| `NAMESPACE` | 7 | 3 |
| `R/mrf_regression_one_step_forecast.R` | 7 | 3 |
| `R/wavelet_decomposition.R` | 4 | 3 |
| `R/mrf_evaluation.R` | 1 | 1 |
| `R/wavelet_prediction_equation.R` | 1 | 1 |

## Tests

[Method](/about/coverage.md)

The package was built and has no tests to run.

- Lines of tests: 0
- Exports named in tests: 0%

**Test suite**

- Has tests: No
- Test frameworks: No tests in this release
- Test lines per line of code: 0

## Documentation

[Method](/about/code-metrics.md)

- Exports documented: 100%
- Arguments documented: 100%
- Return value documented: 100%
- Help pages with examples: 94.1%
- Examples run in checks: 87.5%

**Guides (1)**

- [The mrf package](https://cran.r-project.org/web/packages/mrf/vignettes/mrf.html)

**Other documentation**

- README: No
- Release notes file: No
- Help pages: 17
- Lines of documentation: 1,135

## Datasets

[Method](/about/objects.md)

| Dataset | Size | Columns |
| --- | --- | --- |
| [entsoe](/cran/mrf/data/entsoe.md), Entsoe DataFrame containing Time Series | 3,652 × 2 | time, value |

## People

[Method](/about/author-identity.md)

- [Quirin Stier](/people/Quirin+Stier.md): Maintainer since 0.1.5 (2021), author, contributor. ORCID https://orcid.org/0000-0002-7896-4737
- [Michael Thrun](/people/Michael+Thrun.md): Thesis advisor, copyright holder, reviewer, contributor. ORCID https://orcid.org/0000-0001-9542-5543

Funded by Michael Thrun

## Repository

[Method](/about/repo-signals.md#figures)

[Quirinms](/repos/Quirinms.md) / [mrfr](https://github.com/quirinms/mrfr) on github.com

- Stars: 2
- Forks: 0
- Open issues: 0
- Last commit: 23 Sep 2021

**Activity**

- Commits: 24
- Open pull requests: 0
- Tagged releases: 0
- Latest tagged release: –
- In development: The default branch showed an older version (0.1.6) than CRAN on 2026-10-25
- Issues closed in: –
- Pull requests closed in: –
- Pull requests merged: –
- Created: 24 Jun 2020
- Licence file reads as: –

**Development practices (1)**

| Kind | Found |
| --- | --- |
| Lint, format, editor | RStudio project |

[Across Quirinms](/repos/Quirinms.md#practices)

## History

[Method](/about/archive.md)

The line runs from the first release of mrf on 22 Sep 2021 to 28 Oct 2026 and marks all 3 of its releases. CRAN archived it once, and it came back once.

#### Archived and back

| Archived | Back | CRAN's reason | Kind |
| --- | --- | --- | --- |
| 2 Jun 2025 | 16 Apr 2026 | "requires archived package 'limSolve'" | Needs an archived package |

| Version | Released | R | Events |
| --- | --- | ---: | --- |
| [0.1.9](/cran/mrf/v/0.1.9.md) current | 16 Apr 2026 | 4.5.3 | Back on CRAN 16 Apr 2026. |
| [0.1.6](/cran/mrf/v/0.1.6.md) | 23 Feb 2022 | 4.1.2 | Archived 2 Jun 2025. “requires archived package 'limSolve'” |
| [0.1.5](/cran/mrf/v/0.1.5.md) | 22 Sep 2021 | 4.1.1 |  |

---

R Observatory is independent of the R Project, CRAN and Bioconductor. The same page for people is at /cran/mrf, and every address is listed at /llms.txt.
