Title: | Sign-Simplicity-Regression-Solver |
Version: | 1.2.1 |
Description: | Implementation of the SSR-Algorithm. The Sign-Simplicity-Regression model is a nonparametric statistical model which is based on residual signs and simplicity assumptions on the regression function. Goal is to calculate the most parsimonious regression function satisfying the statistical adequacy requirements. Theory and functions are specified in Metzner (2020, ISBN: 979-8-68239-420-3, "Trendbasierte Prognostik") and Metzner (2021, ISBN: 979-8-59347-027-0, "Adäquates Maschinelles Lernen"). |
License: | GPL-2 | GPL-3 [expanded from: GPL (≥ 2)] |
Encoding: | UTF-8 |
Imports: | zoo, reticulate |
RoxygenNote: | 7.1.1 |
NeedsCompilation: | yes |
Packaged: | 2025-07-09 08:50:16 UTC; lme |
Author: | Lars Metzner [aut, cre] |
Maintainer: | Lars Metzner <lars.metzner@ppi.de> |
Repository: | CRAN |
Date/Publication: | 2025-07-09 09:30:02 UTC |
Data model for the AxE-Model (Axiomatic Econometric Modeling Paradigm)
Description
Calculation of the relevant data for the AxE-model from a financial time series: trend, volatiliy, change in quotes and risk level.
Usage
axe(quotes)
Arguments
quotes |
financial time series |
Value
data frame
quotes |
the given time series |
trend5 |
5-day trend |
trend10 |
10-day trend |
trend20 |
20-day trend |
vola5 |
5-day volatility |
vola10 |
10-day volatility |
vola20 |
20-day volatility |
chng5 |
5-day price change |
chng10 |
10-day price change |
chng20 |
20-day price change |
risk5 |
5-day risk level |
risk10 |
10-day risk level |
risk20 |
20-day risk level |
Author(s)
Dr. Lars Metzner
References
Dr. Lars Metzner (2020) Trendbasierte Prognostik. Independently Published.
Examples
set.seed(1234)
s <- 13000 + cumsum(rnorm(100))
df_axe <- axe(s)
op <- par(mfrow=c(3,1))
plot(s, type = "l")
plot(df_axe$trend5, type = "l")
abline(a = 0, b = 0)
plot(df_axe$vola5, type = "l")
par(op)
implementation of the AxE model based on the ssr-MLP
Description
Trains a 2-layer MLP with a given time series of quotes with price changes or volatility as target value. The coordinates (or independent factors) are given through the AxE model)
Usage
axe_narch_model(quotes, T, tgt)
Arguments
quotes |
array with observations. |
T |
period: T = 5, 10 or 20. |
tgt |
target variable: tgt = 'trend' or 'vola'. |
Value
model |
the trained model for prediction. |
Author(s)
Dr. Lars Metzner
References
Dr. Lars Metzner (2021) Adäquates Maschinelles Lernen. Independently Published.
Examples
set.seed(1234)
n <- 250
s <- 13000 + cumsum(rnorm(n))
T = 20
# create model for 5-day trend
model <- axe_narch_model(s, T, 'trend')
# calculate prognosis for trend
s_ <- s[n] + cumsum(rnorm(20))
s_T <- axe_narch_predict(model, s_, 'trend')
# plot the results
plot(seq(1:20), s_, type = "l",
xlim = c(0,21+T), ylim = c(min(s_, s_T)-5, max(s_, s_T)+5))
points(20+T, s_T, col='red', pch = 16)
# create model for 5-day vola
model <- axe_narch_model(s, T, 'vola')
r_T <- axe_narch_predict(model, s_, 'vola')
lines(c(20+T,20+T), c(s_T-r_T, s_T+r_T), col='orange')
Prediction function for the AxE-NARCH model
Description
Calculates the prediction for a given model
Usage
axe_narch_predict(model, quotes, tgt)
Arguments
model |
previously calculated model. |
quotes |
20 days of history. |
tgt |
target variable: tgt = 'trend' or 'vola'. |
Value
prediction |
prediction based in the model and the given coordinates. |
Author(s)
Dr. Lars Metzner
References
Dr. Lars Metzner (2021) Adäquates Maschinelles Lernen. Independently Published.
Examples
set.seed(1234)
n <- 250
s <- 13000 + cumsum(rnorm(n))
T = 20
# create model for 5-day trend
model <- axe_narch_model(s, T, 'trend')
# calculate prognosis for trend
s_ <- s[n] + cumsum(rnorm(20))
s_T <- axe_narch_predict(model, s_, 'trend')
# plot the results
plot(seq(1:20), s_, type = "l",
xlim = c(0,21+T), ylim = c(min(s_, s_T)-5, max(s_, s_T)+5))
points(20+T, s_T, col='red', pch = 16)
# create model for 5-day vola
model <- axe_narch_model(s, T, 'vola')
r_T <- axe_narch_predict(model, s_, 'vola')
lines(c(20+T,20+T), c(s_T-r_T, s_T+r_T), col='orange')
Factor-wise Influence Indicator (Model-fii) for a given ssrmlp model
Description
The Model-fii depicts the overall influence of the input factors on the resulting trained ssrmlp model. For computation a unit matrix is used to accumulate the weights for each factor separately.
Usage
fii_model(W)
Arguments
W |
a trained ssrmlp model |
Value
fii |
array of influence indicators |
Author(s)
Dr. Lars Metzner
Examples
# generate data
set.seed(42)
x <- rnorm(300)
y <- rnorm(300)
z <- rnorm(300) + atan2(x, y)
# coordinates
X <- matrix(cbind(x,y), ncol = 2)
Y <- as.double(z)
# Training
W <- ssrmlp_train(X, Y)
fii_model(W)
Factor-wise Influence Indicator (Prediction-fii) for a given ssrmlp model regarding a given input vector
Description
The Prediction-fii depicts the overall influence of the given input factors on the resulting prediction from a trained ssrmlp model. For computation the components of the input vectors a taken separately as input for the model.
Usage
fii_prediction(W, x)
Arguments
W |
a trained ssrmlp model |
x |
a matrix of input vectors |
Value
fii |
array of influence indicators |
Author(s)
Dr. Lars Metzner
Examples
# generate data
set.seed(42)
x <- rnorm(300)
y <- rnorm(300)
z <- rnorm(300) + atan2(x, y)
# coordinates
X <- matrix(cbind(x,y), ncol = 2)
Y <- as.double(z)
# Training
W <- ssrmlp_train(X, Y)
fii_prediction(W, X)
Loading a ssrmlp model from ONNX file
Description
Loading a ssrmlp model from ONNX file (also see onnx.ai). This function uses the onnx python implementation, hence a python environment including modules onnx and numpy is required.
Usage
onnx_load(filename)
Arguments
filename |
fully qualified file name |
Value
W |
parameters of ssrmlp model |
Author(s)
Dr. Lars Metzner
Examples
# generate data
set.seed(42)
x <- rnorm(300)
y <- rnorm(300)
z <- rnorm(300) + atan2(x, y)
# coordinates
X <- matrix(cbind(x,y), ncol = 2)
Y <- as.double(z)
# Training
ssrmlp_model <- ssrmlp_train(X, Y)
# only if python is available
if (reticulate::py_module_available('onnx')) {
tryCatch(
{
# save in ONNX format
onnx_save(ssrmlp_model, 'file.onnx')
# loading the file in ONNX format
W <- onnx_load('file.onnx')
# prediction with original implementation
p <- t(c(0.25, 0.25))
pred <- ssrmlp_predict(p, W)
# and now test with onnxruntime.ai
},
error = function(cond) {
message(conditionMessage(cond))
},
finally = {
# cleanup
file.remove('file.onnx')
# to avoid NOTE in R CHECK
tempfile <- reticulate::import("tempfile")
tmp <- tempfile$gettempdir()
if (dir.exists(file.path(tmp, "__pycache__"))) {
unlink(file.path(tmp, "__pycache__"), recursive = TRUE, force = TRUE)
}
tmp_py_files <- list.files(tmp,
pattern = "^__autograph_generated_file.*py$", full.names = TRUE)
file.remove(tmp_py_files)
print("done")
}
)
}
Saving a ssrmlp model in onnx format to file
Description
Saving a ssrmlp model in onnx format to file (also see onnx.ai). This function uses the onnx python implementation, hence a python environment including modules onnx and numpy is required.
Usage
onnx_save(ssrmlp_model, filename)
Arguments
ssrmlp_model |
a trained ssrmlp model |
filename |
fully qualified file name |
Author(s)
Dr. Lars Metzner
Examples
# generate data
set.seed(42)
x <- rnorm(300)
y <- rnorm(300)
z <- rnorm(300) + atan2(x, y)
# coordinates
X <- matrix(cbind(x,y), ncol = 2)
Y <- as.double(z)
# Training
ssrmlp_model <- ssrmlp_train(X, Y)
# prediction
p <- t(c(0.25, 0.25))
pred <- ssrmlp_predict(p, ssrmlp_model)
# only if python is available
if (reticulate::py_module_available('onnx')) {
tryCatch(
{
# save in ONNX format
onnx_save(ssrmlp_model, 'file.onnx')
# and now test with onnxruntime.ai
},
error = function(cond) {
message(conditionMessage(cond))
},
finally = {
# cleanup
file.remove('file.onnx')
# to avoid NOTE in R CHECK
tempfile <- reticulate::import("tempfile")
tmp <- tempfile$gettempdir()
if (dir.exists(file.path(tmp, "__pycache__"))) {
unlink(file.path(tmp, "__pycache__"), recursive = TRUE, force = TRUE)
}
tmp_py_files <- list.files(tmp,
pattern = "^__autograph_generated_file.*py$", full.names = TRUE)
file.remove(tmp_py_files)
print("done")
}
)
}
Partial Sum Plot
Description
Plots the Partial Sums with their quantiles for a given set of observations und the corresponding regression function.
Usage
psplot(dat, mu, text = 'Sample')
Arguments
dat |
observations. |
mu |
regression function. |
text |
title of the chart. |
Value
No explicit return value: a plot is generated
Author(s)
Dr. Lars Metzner
References
Dr. Lars Metzner (2021) Adäquates Maschinelles Lernen. Independently Published.
Examples
psplot(sin(seq(-pi, pi, length.out = 200))+rnorm(200),
sin(seq(-pi, pi, length.out = 200)), text='Test')
Partial Sum Plot for 2-dimensional coordinates
Description
Plots the partial sum statistic for the 3-dimensional SSR model
Usage
psplot3d(koord, z, mu, text = "Sample")
Arguments
koord |
data frame with coordinates. |
z |
vector of observations. |
mu |
vector of discrete regression function. |
text |
optional: title for the plot. |
Value
No explicit return value: a plot is generated
Author(s)
Dr. Lars Metzner
References
Dr. Lars Metzner (2021) Adäquates Maschinelles Lernen. Independently Published.
Examples
# generate data
set.seed(1234)
x <- rnorm(900)
y <- rnorm(900)
xy <- data.frame(x=x, y=y)
z <- rnorm(900) + atan2(x, y)
# Training
df_model <- ssr3d(xy, z, k = 4, fn = 8)
# plot partial sum statistic
psplot3d(xy, z, df_model$mu, 'ssr3d')
Partial Sum Plot for the multidimensional coordinates
Description
plots the partial sum statistic for the general n-dimensional SSR-model
Usage
psplotnd(koord, dat, mu, text = "Sample")
Arguments
koord |
data frame with coordinates. |
dat |
data frame of observations. |
mu |
list of discrete regression function. |
text |
optional: title for the plot. |
Value
No explicit return value: a plot is generated
Author(s)
Dr. Lars Metzner
References
Dr. Lars Metzner (2021) Adäquates Maschinelles Lernen. Independently Published.
Examples
# generate data
set.seed(1234)
x <- rnorm(900)
y <- rnorm(900)
xy <- data.frame(x=x, y=y)
z <-data.frame(z=rnorm(900) + atan2(x, y))
# Training
df_model <- ssrnd(xy, z, k = 4, fn = 8)
# plot partial sum statistic
psplotnd(xy, z, df_model$mu, 'ssr3d')
Partial Sum Plot for the multidimensional coordinates - reworked
Description
plots the partial sum statistic for the general n-dimensional SSR-model
Usage
psplotnd2(koord, dat, mu, text = "Sample", maxint = NULL, resultplot = TRUE, accept = 10)
Arguments
koord |
data frame with coordinates. |
dat |
data frame of observations. |
mu |
list of discrete regression function. |
text |
optional: title for the plot. |
maxint |
optional: upper limit for evaluated subset size. |
resultplot |
optional: switch for creating a plot, default is TRUE. |
accept |
optional: percentage of allowed deviations in number and signs in partial sums statistics to accept a result. |
Value
TRUE if Partial Sum criterion is passed or result is accepted, FALSE otherwise
Author(s)
Dr. Lars Metzner
References
Dr. Lars Metzner (2021) Adäquates Maschinelles Lernen. Independently Published.
Examples
# generate data
set.seed(42)
x_ <- y_ <- seq(-3, 3, length=20)
xy <- expand.grid(x=x_,y=y_)
x <- xy$x
y <- xy$y
z <- rnorm(400) + atan2(x, y)
# coordinates
X <- matrix(cbind(x, y), ncol = 2)
Y <- as.double(z)
# Training
W <- ssrmlp2_train(X, Y, accept=0) # passed: ps=39.04, secs 24.8, 250 Iterationen
Yp <- ssrmlp_predict(X, W)
psplotnd2(W$X, W$Y, W$Yp, 'ssrMLP2', resultplot = TRUE)
Partial Sum Validity Check
Description
Checks, if a given regression function is adequate with respect to the partial sum criterium.
Usage
psvalid(dat,mu)
Arguments
dat |
obervations. |
mu |
discrete regression function. |
Value
valid |
function is valid? |
Author(s)
Dr. Lars Metzner
References
Dr. Lars Metzner (2021) Adäquates Maschinelles Lernen. Independently Published.
Examples
psvalid(sin(seq(-pi, pi, length.out = 200))+rnorm(200),
sin(seq(-pi, pi, length.out = 200)))
Maximum Run Validity Check
Description
Checks, if a given regression function is adequate with respect to the maximum run criterium.
Usage
runvalid(dat,mu,k=NULL)
Arguments
dat |
obervations. |
mu |
discrete regression function. |
k |
optional: maximum run length. |
Value
valid |
function is valid? |
Author(s)
Dr. Lars Metzner
References
Dr. Lars Metzner (2021) Adäquates Maschinelles Lernen. Independently Published.
Examples
runvalid(sin(seq(-pi, pi, length.out = 200))+rnorm(200)/2,
sin(seq(-pi, pi, length.out = 200)))
S-NARCH Model
Description
Calculates the long-, middle- and short-term trends and vola for a financial time series.
Usage
snarch(dat)
Arguments
dat |
financial time series. |
Value
data frame
tr20 |
long-term trend |
vl20 |
long-term vola |
tr10 |
middle-term trend |
vl10 |
middle-term vola |
tr5 |
short-term trend |
vl5 |
short-term vola |
Author(s)
Dr. Lars Metzner
References
Dr. Lars Metzner (2019) Finanzmathematische Zeitreihenanalyse. Independently Published.
Examples
# generate test data
set.seed(1234)
x <- seq(1:250)
dat <- 13000 + cumsum(rnorm(250))
# calculate the S-NARCH model
df <- snarch(dat)
# plot the results
op <- par(mfrow=c(1,3))
plot(x,dat)
lines(x,df$tr20)
lines(x,df$tr20 - df$vl20, lty = 'dotted')
lines(x,df$tr20 + df$vl20, lty = 'dotted')
plot(x,dat)
lines(x,df$tr10)
lines(x,df$tr10 - df$vl10, lty = 'dotted')
lines(x,df$tr10 + df$vl10, lty = 'dotted')
plot(x,dat)
lines(x,df$tr5)
lines(x,df$tr5 - df$vl5, lty = 'dotted')
lines(x,df$tr5 + df$vl5, lty = 'dotted')
par(op)
Onedimensional SSR-model calculation
Description
Calculates L1- and L2-functions satisfiying the partial sum criterium.
Usage
ssr(df, y1=NULL, yn=NULL, fn=0, iter=10000,
minStat=FALSE, ne=TRUE, l1=TRUE, ps=TRUE)
Arguments
df |
data frame with two-dimensional data. |
y1 |
optional: fixed value left. |
yn |
optional: fixed value right. |
fn |
optional: partial-sum-quantile (standard: generic calculation from data). |
iter |
optional: maximum number of iterations. |
minStat |
optional: boolean value for the minimum statistic. |
ne |
optional: boolean value for non-equidistant observations. |
l1 |
optional: boolean value for function type. |
ps |
optional: sign criterium (partial sum or run). |
Value
mu |
SSR-function as array. |
Author(s)
Dr. Lars Metzner
References
Dr. Lars Metzner (2021) Adäquates Maschinelles Lernen. Independently Published.
Examples
# generate equidistant data
set.seed(1234)
x <- seq(0, 2*pi, length.out = 200)
y <- 4*sin(x) + rnorm(200)
df <- data.frame(x=x, y=y)
# calculate regression functions
l1 <- ssr(df, ne=FALSE, ps=FALSE)
l2 <- ssr(df, ne=FALSE, l1=FALSE)
lmin <- ssr(df, ne=FALSE, minStat=TRUE, ps=FALSE)
# plot results
plot(x, y, main = 'Sign-Simplicity-Regression',
xlab = 't', ylab = 'sin(t)+noise')
lines(x, l1, col = 'blue')
lines(x, l2, col = 'red')
lines(x, lmin, col = 'purple')
legend("topleft", inset=c(0.01,0.01),
legend=c("L1 run-crit.", "L2 ps-crit.", "L1 min-stat."),
col=c("blue", "red", "purple"), lty=1:1)
# generate nonequidistant data
df <- data.frame(x=runif(500, min=-1, max=1)*pi)
df$y <- sin(df$x)*20 + rnorm(nrow(df), mean=0, sd=10)
# calculate regression function
dfl1 <- ssr(df, fn = 5)
# plot results
plot(df)
lines(dfl1, col = 'red')
3-dimensional SSR model
Description
Calculates the regression function for the 3-dimensional SSR-model.
Usage
ssr3d(koord, dat, k = NULL, fn = NULL, iter = 1000)
Arguments
koord |
data frame with 2-dimensional coordinates. |
dat |
vector with observations. |
k |
optional: maxumum run length for the model. |
fn |
optional: quantile for partial sums. |
iter |
optional: number of iterations for the numeric solver. |
Value
df |
data frame with the relevant model data. |
Author(s)
Dr. Lars Metzner
References
Dr. Lars Metzner (2021) Adäquates Maschinelles Lernen. Independently Published.
Examples
# generate data
set.seed(1234)
x <- rnorm(900)
y <- rnorm(900)
xy <- data.frame(x=x, y=y)
z <- rnorm(900) + atan2(x, y)
# Training
df_model <- ssr3d(xy, z)
3-dimensional SSR model prediction
Description
Calculates the prediction for a given 3-dimensional SSR model.
Usage
ssr3d_predict(df_model, xy, ms = FALSE)
Arguments
df_model |
data frame with model coordinates. |
xy |
data frame with coordinates for prediction. |
ms |
optional: boolean value to use the minimal surface algorithm. |
Value
z |
array with predictions. |
Author(s)
Dr. Lars Metzner
References
Dr. Lars Metzner (2021) Adäquates Maschinelles Lernen. Independently Published.
Examples
# generate data
set.seed(1234)
x <- rnorm(900)
y <- rnorm(900)
xy <- data.frame(x=x, y=y)
z <- rnorm(900) + atan2(x, y)
# Training
df_model <- ssr3d(xy, z)
# Prediction
xx <- c(c(0,1), c(-1,1), c(1,-1))
xx <- matrix(xx, ncol = 2)
yy <- ssr3d_predict(df_model, xx)
SSR model Prediction
Description
Calculates the prediction for a given SSR model.
Usage
ssr_predict(df, xx)
Arguments
df |
dataframe containing two series with x- und y-values. |
xx |
array containung locations for predictions. |
Value
yy |
array containung the predicted values. |
Author(s)
Dr. Lars Metzner
References
Dr. Lars Metzner (2021) Adäquates Maschinelles Lernen. Independently Published.
Examples
set.seed(1234)
df <- data.frame(x=runif(500, min=-1, max=1)*pi)
df$y <- sin(df$x)*20 + rnorm(nrow(df), mean=0, sd=10)
plot(df, xlim=c(-4, 4))
dfl1 <- ssr(df)
lines(dfl1)
xx <- c(-4, -1, 0, 1, 4)
yy <- ssr_predict(dfl1, xx)
points(xx,yy, pch='+', col='red', cex=2)
2-layer MLP with partial sum optimization - reworked
Description
Calculates the weights of a 2-layer MLP with respect to the partial sums critereon
Usage
ssrmlp2_train(X, Y, std=TRUE, opt='ps', hl=NULL, W=NULL,
k=NULL, fn=NULL, eta=0.5, accept = 10, maxIter=1000, alpha=NULL, beta=NULL)
Arguments
X |
matrix with n-dimensional coordinates. |
Y |
array with observations. |
std |
optional: standardizing values if TRUE. |
opt |
optional: optimizing function ('simple', 'ps', 'lse'). |
hl |
optional: array tupel with number of perceptrons in each layer. |
W |
optional: previously calculates weights for refining the model. |
k |
optional: number of neighbors per quadrant. |
fn |
optional: quantile for partial sums. |
eta |
optional: constant step width of the gradient algorithm (eta=0.0 for Armijo). |
accept |
optional: percentage of acceptable deviations from Partial Sum critereon regarding number and quantile. |
maxIter |
optional: number of iterations for the numeric solver (maxIter=1000). |
alpha |
optional: weight parameter for function to be minimized. |
beta |
optional: weight parameter for side condition. |
Value
W |
List with weight matrices. |
Author(s)
Dr. Lars Metzner
References
Dr. Lars Metzner (2021) Adäquates Maschinelles Lernen. Independently Published.
Examples
# generate data
set.seed(42)
x <- rnorm(300)
y <- rnorm(300)
z <- rnorm(300) + atan2(x, y)
# coordinates
X <- matrix(cbind(x,y), ncol = 2)
Y <- as.double(z)
# Training
W <- ssrmlp2_train(X, Y)
Prediction function for the ssrMLP
Description
Calculates the prediction for a given ssrMLP
Usage
ssrmlp_predict(X, W)
Arguments
X |
matrix of coordinates. |
W |
the weight matrices from ssrmlp_train method. |
Value
Yp |
array with predictions. |
Author(s)
Dr. Lars Metzner
References
Dr. Lars Metzner (2021) Adäquates Maschinelles Lernen. Independently Published.
Examples
# generate data
set.seed(42)
x <- rnorm(300)
y <- rnorm(300)
z <- rnorm(300) + atan2(x, y)
# coordinates
X <- matrix(cbind(x,y), ncol = 2)
Y <- as.double(z)
# Training
W <- ssrmlp_train(X, Y)
Yp <- ssrmlp_predict(X, W)
2-layer MLP with partial sum optimization
Description
Calculates the weights of a 2-layer MLP with respect to the partial sums critereon
Usage
ssrmlp_train(X, Y, std=TRUE, opt='ps', hl = NULL, W = NULL,
k=10, fn=4, eta=0.75, maxIter=1000,
facfct_ex = NULL, errfct_ex = NULL, alpha = NULL)
Arguments
X |
matrix with n-dimensional coordinates. |
Y |
array with observations. |
std |
optional: standardizing values if TRUE. |
opt |
optional: optimizing function ('ps', 'lse', 'ps_l1', 'ps_lse', 'ext'). |
hl |
optional: array tupel with number of perceptrons in each layer. |
W |
optional: previously calculates weights for refining the model. |
k |
optional: number of neighbors per quadrant. |
fn |
optional: quantile for partial sums. |
eta |
optional: constant factor of the gradient algorithm. |
maxIter |
optional: number of iterations for the numeric solver. |
facfct_ex |
optional: first derivative of external error function, for opt='ext' only. |
errfct_ex |
optional: external error function, for opt='ext' only. |
alpha |
optional: weight parameter for error function. |
Value
W |
List with weight matrices. |
Author(s)
Dr. Lars Metzner
References
Dr. Lars Metzner (2021) Adäquates Maschinelles Lernen. Independently Published.
Examples
# generate data
set.seed(42)
x <- rnorm(300)
y <- rnorm(300)
z <- rnorm(300) + atan2(x, y)
# coordinates
X <- matrix(cbind(x,y), ncol = 2)
Y <- as.double(z)
# Training
W <- ssrmlp_train(X, Y)
Multi-dimensional SSR model
Description
Calculates the multi-dimensional SSR model
Usage
ssrnd(koord, dat, k = NULL, fn = NULL, iter = 1000)
Arguments
koord |
data frame with n-dimensional coordinates. |
dat |
data frame with observations. |
k |
optional: maxumum run length for the model. |
fn |
optional: quantile for partial sums. |
iter |
optional: number of iterations for the numeric solver. |
Value
df |
data frame with the relevant model data. |
Author(s)
Dr. Lars Metzner
References
Dr. Lars Metzner (2021) Adäquates Maschinelles Lernen. Independently Published.
Examples
# generate data
set.seed(1234)
x <- rnorm(300)
y <- rnorm(300)
xy <- data.frame(x=x, y=y)
z <-data.frame(z=rnorm(300) + atan2(x, y))
# Training
df_model <- ssrnd(xy, z)
Multi-dimensional SSR model - reworked
Description
Calculates the multi-dimensional SSR model
Usage
ssrnd2(X, Y, mdl=NULL, k=NULL, fn=NULL, n_l1=NULL, iter=1000, eps=0.0001)
Arguments
X |
matrix with n-dimensional coordinates. |
Y |
array with observations. |
mdl |
optional: model from previous training. |
k |
optional: maxumum run length for the model. |
fn |
optional: quantile for partial sums. |
n_l1 |
optional: subset size for L1 curvature calculation. |
iter |
optional: number of iterations for the numeric solver. |
eps |
optional: delta for ending calculation iteration. |
Value
mdl |
data list with the relevant model data. |
Author(s)
Dr. Lars Metzner
References
Dr. Lars Metzner (2021) Adäquates Maschinelles Lernen. Independently Published.
Examples
# generate data
set.seed(1234)
x <- rnorm(400)
y <- rnorm(400)
z <- rnorm(400) + atan2(x, y)
X <- matrix(cbind(x, y), ncol = 2)
Y <- as.double(z)
# Training
mdl <- ssrnd2(X, Y)
Near Neighborhood Estimator for Multi-dimensional SSR model
Description
Calculates the Near Neighborhood Estimator in a multi-dimensional SSR model
Usage
ssrnd2NN(X, Y, k, weighted=FALSE)
Arguments
X |
matrix with n-dimensional coordinates. |
Y |
array with observations. |
k |
optional: maxumum run length for the model. |
weighted |
optional: flag if a weighted mean should be used. |
Value
mdl |
data list with the relevant model data. |
Author(s)
Dr. Lars Metzner
References
Dr. Lars Metzner (2021) Adäquates Maschinelles Lernen. Independently Published.
Examples
# generate data
set.seed(1234)
x <- rnorm(400)
y <- rnorm(400)
z <- rnorm(400) + atan2(x, y)
X <- matrix(cbind(x, y), ncol = 2)
Y <- as.double(z)
# Training
mdl <- ssrnd2NN(X, Y, 10)
Prediction function for the multi-dimensional SSR model - reworked
Description
Calculates the prediction for a given multi-dimensional SSR model
Usage
ssrnd2_predict(mdl, xx)
Arguments
mdl |
data list with previously calculated model. |
xx |
matrix with coordinates for prediction. |
Value
z |
array with predictions. |
Author(s)
Dr. Lars Metzner
References
Dr. Lars Metzner (2021) Adäquates Maschinelles Lernen. Independently Published.
Examples
# generate data
set.seed(1234)
x <- rnorm(400)
y <- rnorm(400)
z <- rnorm(400) + atan2(x, y)
X <- matrix(cbind(x, y), ncol = 2)
Y <- as.double(z)
# Training
mdl <- ssrnd2(X, Y)
yy <- ssrnd2_predict(mdl, X)
Prediction function for the multi-dimensional SSR model
Description
Calculates the prediction for a given multi-dimensional SSR model
Usage
ssrnd_predict(df_model, xx)
Arguments
df_model |
data frame with model coordinates. |
xx |
data frame with coordinates for prediction. |
Value
z |
list with predictions. |
Author(s)
Dr. Lars Metzner
References
Dr. Lars Metzner (2021) Adäquates Maschinelles Lernen. Independently Published.
Examples
# generate data
set.seed(1234)
x <- rnorm(300)
y <- rnorm(300)
xy <- data.frame(x=x, y=y)
z <-data.frame(z=rnorm(300) + atan2(x, y))
# Training
df_model <- ssrnd(xy, z)
# Prediction
xx <- c(c(0,1), c(-1,1), c(1,-1))
xx <- matrix(xx, ncol = 2)
yy <- ssrnd_predict(df_model, xx)
Trend-based Correlation
Description
Calculates the trend-based correlation of two time series based on the trend function (Metzner's Tau)
Usage
tauM(x, y)
Arguments
x |
time series. |
y |
time series. |
Value
trend-based correlation.
Author(s)
Dr. Lars Metzner
References
Dr. Lars Metzner (2020) Trendbasierte Prognostik. Independently Published.
Examples
set.seed(1234)
s <- seq(-pi, pi, length.out = 200)
x <- s + rnorm(200)
y <- exp(s) + 5*rnorm(length(s))
op <- par(mfrow=c(1,2))
plot(x)
plot(y)
par(op)
p <- cor(x,y) # 0.5037
t <- cor(x,y, method = 'kendall') # 0.2959
tm <- tauM(x, y) # 0.0867