 zef:antononcube

# Quantile Regression Workflows

## In brief

This Raku Perl 6 package has grammar classes and action classes for the parsing and interpretation of spoken commands that specify Quantile Regression (QR) workflows.

It is envisioned that the interpreters (actions) are going to target different programming languages: R, Mathematica, Python, etc.

The generated pipelines are for the software monads `QRMon-R` and `QRMon-WL`, [AA1, AA2].

## Installation

2. Make sure you have Zef Module Installer.

3. Open a command line program. (E.g. Terminal on Mac OS X.)

4. Run the commands:

``````zef install https://github.com/antononcube/Raku-DSL-Shared.git
zef install https://github.com/antononcube/Raku-DSL-English-QuantileRegressionWorkflows.git
``````

## Examples

Open a Raku IDE or type `raku` in the command line program. Try this Raku code:

```use DSL::English::QuantileRegressionWorkflows;

say ToQuantileRegressionWorkflowCode(
"compute quantile regression with 16 knots and probabilities 0.25, 0.5 and 0.75",
"R-QRMon");
# QRMonQuantileRegression(df = 16, probabilities = c(0.25, 0.5, 0.75))
```

Here is a more complicated pipeline specification:

```say ToQuantileRegressionWorkflowCode(
"create from dfTemperatureData;
compute quantile regression with 16 knots and probability 0.5;
show date list plot with date origin 1900-01-01;
show absolute errors plot;
echo text anomalies finding follows;
find anomalies by the threshold 5;
take pipeline value;", "R-QRMon")
```

The command above should print out R code for the R package `QRMon-R`, [AA1]:

```QRMonUnit( data = dfTemperatureData) %>%
QRMonQuantileRegression(df = 16, probabilities = c(0.5)) %>%
QRMonPlot( datePlotQ = TRUE, dateOrigin = '1900-01-01') %>%
QRMonErrorsPlot( relativeErrorsQ = FALSE) %>%
QRMonEcho( "anomalies finding follows" ) %>%
QRMonFindAnomaliesByResiduals( threshold = 5) %>%
QRMonTakeValue
```

## Versions

The original version of this Raku package was developed/hosted at [ AA3 ].

A dedicated GitHub repository was made in order to make the installation with Raku's `zef` more direct. (As shown above.)

## References

[AA1] Anton Antonov, Quantile Regression Monad in R, (2019), QRMon-R at GitHub.

[AA2] Anton Antonov, Monadic Quantile Regression Mathematica package, (2018), MathematicaForPrediction at GitHub.

[AA3] Anton Antonov, Quantile Regression Workflows, (2019), ConversationalAgents at GitHub.