Title: | Regression using GMDH Algorithms |
---|---|
Description: | Regression using GMDH algorithms from Prof. Alexey G. Ivakhnenko. Group Method of Data Handling (GMDH), or polynomial neural networks, is a family of inductive algorithms that performs gradually complicated polynomial models and selecting the best solution by an external criterion. In other words, inductive GMDH algorithms give possibility finding automatically interrelations in data, and selecting an optimal structure of model or network. The package includes GMDH Combinatorial, GMDH MIA (Multilayered Iterative Algorithm), GMDH GIA (Generalized Iterative Algorithm) and GMDH Combinatorial with Active Neurons. |
Authors: | Manuel Villacorta Tilve |
Maintainer: | Manuel Villacorta Tilve <[email protected]> |
License: | GPL-3 |
Version: | 0.2.3 |
Built: | 2024-10-31 20:28:04 UTC |
Source: | https://github.com/cran/GMDHreg |
Build a regression model performing GMDH Combinatorial.
This is the basic GMDH algorithm. For more information, please read the package's vignette.
gmdh.combi( X, y, G = 2, criteria = c("PRESS", "test", "ICOMP"), x.test = NULL, y.test = NULL )
gmdh.combi( X, y, G = 2, criteria = c("PRESS", "test", "ICOMP"), x.test = NULL, y.test = NULL )
X |
matrix with N>1 columns and M rows, containing independent variables in the model. |
y |
vector or matrix containing dependent variable in the model. |
G |
polynomial degree. |
criteria |
GMDH external criteria. Values:
|
x.test |
matrix with a sample randomly drawn from the initial data. This sample should not be included in X. |
y.test |
vector or matrix with y values correspond with x.test values. |
An object of class 'combi'. This is a list with two elements: results and G.
Results is a list with two elements:
coef: coeficients of final selected GMDH Combinatorial model.
CV: external criteria value for selected model.
G the grade of polynomial used in GMDH Combinatorial model.
Bozdogan, H. and Haughton, D.M.A. (1998): "Information complexity criteria for regression models", Computational Statistics & Data Analysis, 28, pp. 51-76 <doi: 10.1016/S0167-9473(98)00025-5>
Hild, Ch. R. and Bozdogan, H. (1995): "The use of information-based model selection criteria in the GMDH algorithm", Systems Analysis Modelling Simulation, 20(1-2), pp. 29-50
Ivakhnenko, A.G. (1968): "The Group Method of Data Handling - A Rival of the Method of Stochastic Approximation", Soviet Automatic Control, 13(3), pp. 43-55
Müller, J.-A., Ivachnenko, A.G. and Lemke, F. (1998): "GMDH Algorithms for Complex Systems Modelling", Mathematical and Computer Modelling of Dynamical Systems, 4(4), pp. 275-316 <doi: 10.1080/13873959808837083>
set.seed(123) x <- matrix(data = c(rnorm(1050)), ncol = 3, nrow = 350) colnames(x) <- c("a", "b", "c") y <- matrix(data = c(10 + x[, "a"] + x[, "b"]^2 + x[, "c"]^3), ncol = 1) colnames(y) <- "y" x.test <- x[1:10, ] y.test <- y[1:10] x <- x[-c(1:10), ] y <- y[-c(1:10)] mod <- gmdh.combi(X = x, y = y, criteria = "PRESS") pred <- predict(mod, x.test) summary(sqrt((pred - y.test)^2))
set.seed(123) x <- matrix(data = c(rnorm(1050)), ncol = 3, nrow = 350) colnames(x) <- c("a", "b", "c") y <- matrix(data = c(10 + x[, "a"] + x[, "b"]^2 + x[, "c"]^3), ncol = 1) colnames(y) <- "y" x.test <- x[1:10, ] y.test <- y[1:10] x <- x[-c(1:10), ] y <- y[-c(1:10)] mod <- gmdh.combi(X = x, y = y, criteria = "PRESS") pred <- predict(mod, x.test) summary(sqrt((pred - y.test)^2))
Build a regression model performing GMDH Twice-Multilayered Combinatorial (TMC).
For more information, please read the package's vignette.
gmdh.combi.twice( X, y, criteria = c("PRESS", "test", "ICOMP"), G = 2, x.test = NULL, y.test = NULL )
gmdh.combi.twice( X, y, criteria = c("PRESS", "test", "ICOMP"), G = 2, x.test = NULL, y.test = NULL )
X |
matrix with N>1 columns and M rows, containing independent variables in the model. |
y |
vector or matrix containing dependent variable in the model. |
criteria |
GMDH external criteria. Values:
|
G |
polynomial degree. |
x.test |
matrix with a sample randomly drawn from the initial data. This sample should not be included in X. |
y.test |
vector or matrix with y values correspond with x.test values. |
An object of class 'combitwice'. This is a list with two elements: results and G
Results is a list with two elements:
coef: coeficients of final selected GMDH Combinatorial model.
CV: external criteria value for selected model.
G the grade of polynomial used in GMDH Combinatorial model.
Bozdogan, H. and Haughton, D.M.A. (1998): "Information complexity criteria for regression models", Computational Statistics & Data Analysis, 28, pp. 51-76 <doi: 10.1016/S0167-9473(98)00025-5>
Hild, Ch. R. and Bozdogan, H. (1995): "The use of information-based model selection criteria in the GMDH algorithm", Systems Analysis Modelling Simulation, 20(1-2), pp. 29-50
Ivakhnenko, A.G., Ivakhnenko, G.A and Müller, J.-A. (1994): "Self-organization of Neural Networks with Active Neurons", Pattern Recognition and Image Analysis, 4(2), pp. 185-196
Ivakhnenko, A.G. (1968): "The Group Method of Data Handling - A Rival of the Method of Stochastic Approximation", Soviet Automatic Control, 13(3), pp. 43-55
Müller, J.-A., Ivachnenko, A.G. and Lemke, F. (1998): "GMDH Algorithms for Complex Systems Modelling", Mathematical and Computer Modelling of Dynamical Systems, 4(4), pp. 275-316 <doi: 10.1080/13873959808837083>
set.seed(123) x <- matrix(data = c(rnorm(1050)), ncol = 3, nrow = 350) colnames(x) <- c("a", "b", "c") y <- matrix(data = c(10 + x[, "a"] + x[, "b"]^2 + x[, "c"]^3), ncol = 1) colnames(y) <- "y" x.test <- x[1:10, ] y.test <- y[1:10] x <- x[-c(1:10), ] y <- y[-c(1:10)] mod <- gmdh.combi.twice(X = x, y = y, criteria = "PRESS") pred <- predict(mod, x.test) summary(sqrt((pred - y.test)^2))
set.seed(123) x <- matrix(data = c(rnorm(1050)), ncol = 3, nrow = 350) colnames(x) <- c("a", "b", "c") y <- matrix(data = c(10 + x[, "a"] + x[, "b"]^2 + x[, "c"]^3), ncol = 1) colnames(y) <- "y" x.test <- x[1:10, ] y.test <- y[1:10] x <- x[-c(1:10), ] y <- y[-c(1:10)] mod <- gmdh.combi.twice(X = x, y = y, criteria = "PRESS") pred <- predict(mod, x.test) summary(sqrt((pred - y.test)^2))
Build a regression model performing GMDH GIA (Generalized Iterative Algorithm) with Active Neurons (Combinatorial algorithm).
For more information, please read the package's vignette.
gmdh.gia( X, y, prune = ncol(X), criteria = c("PRESS", "test", "ICOMP"), x.test = NULL, y.test = NULL )
gmdh.gia( X, y, prune = ncol(X), criteria = c("PRESS", "test", "ICOMP"), x.test = NULL, y.test = NULL )
X |
matrix with N>3 columns and M rows, containing independent variables in the model. |
y |
vector or matrix containing dependent variable in the model. |
prune |
an integer whose recommended minimum value is the number of initial regressors. |
criteria |
GMDH external criteria. Values:
|
x.test |
matrix with a sample randomly drawn from the initial data. |
y.test |
vector or matrix with y values correspond with x.test values. |
An object of class gia.
Bozdogan, H. and Haughton, D.M.A. (1998): "Information complexity criteria for regression models", Computational Statistics & Data Analysis, 28, pp. 51-76 <doi: 10.1016/S0167-9473(98)00025-5>
Farlow, S.J. (1981): "The GMDH algorithm of Ivakhnenko", The American Statistician, 35(4), pp. 210-215. <doi: 10.2307/2683292>
Hild, Ch. R. and Bozdogan, H. (1995): "The use of information-based model selection criteria in the GMDH algorithm", Systems Analysis Modelling Simulation, 20(1-2), pp. 29-50
Ivakhnenko, A.G. (1968): "The Group Method of Data Handling - A Rival of the Method of Stochastic Approximation", Soviet Automatic Control, 13(3), pp. 43-55
Müller, J.-A., Ivachnenko, A.G. and Lemke, F. (1998): "GMDH Algorithms for Complex Systems Modelling", Mathematical and Computer Modelling of Dynamical Systems, 4(4), pp. 275-316 <doi: 10.1080/13873959808837083>
Stepashko, V. Bulgakova, O. and Zosimov V. (2018): "Construction and Research of the Generalized Iterative GMDH Algorithm with Active Neurons", Advances in Intelligent Systems and Computing II, pp. 492-510 <doi:10.1007/978-3-319-70581-1_35>
set.seed(123) x <- matrix(data = c(rnorm(500)), ncol = 4, nrow = 125) colnames(x) <- c("a", "b", "c", "d") y <- matrix(data = c(10 + x[, "a"] + x[, "d"]^2), ncol = 1) colnames(y) <- "y" x.test <- x[1:5, ] y.test <- y[1:5] x <- x[-c(1:5), ] y <- y[-c(1:5)] mod <- gmdh.gia(X = x, y = y, criteria = "PRESS") pred <- predict(mod, x.test) summary(sqrt((pred - y.test)^2))
set.seed(123) x <- matrix(data = c(rnorm(500)), ncol = 4, nrow = 125) colnames(x) <- c("a", "b", "c", "d") y <- matrix(data = c(10 + x[, "a"] + x[, "d"]^2), ncol = 1) colnames(y) <- "y" x.test <- x[1:5, ] y.test <- y[1:5] x <- x[-c(1:5), ] y <- y[-c(1:5)] mod <- gmdh.gia(X = x, y = y, criteria = "PRESS") pred <- predict(mod, x.test) summary(sqrt((pred - y.test)^2))
Build a regression model performing GMDH MIA (Multilayered Iterative Algorithm).
For more information, please read the package's vignette.
gmdh.mia( X, y, prune = ncol(X), criteria = c("PRESS", "test", "ICOMP"), x.test = NULL, y.test = NULL )
gmdh.mia( X, y, prune = ncol(X), criteria = c("PRESS", "test", "ICOMP"), x.test = NULL, y.test = NULL )
X |
matrix with N>3 columns and M rows, containing independent variables in the model. |
y |
vector or matrix containing dependent variable in the model. |
prune |
an integer whose recommended minimum value is the number of initial regressors. |
criteria |
GMDH external criteria. Values:
|
x.test |
matrix with a sample randomly drawn from the initial data. |
y.test |
vector or matrix with y values correspond with x.test values. |
An object of class mia.
Bozdogan, H. and Haughton, D.M.A. (1998): "Information complexity criteria for regression models", Computational Statistics & Data Analysis, 28, pp. 51-76 <doi: 10.1016/S0167-9473(98)00025-5>
Farlow, S.J. (1981): "The GMDH algorithm of Ivakhnenko", The American Statistician, 35(4), pp. 210-215. <doi: 10.2307/2683292>
Hild, Ch. R. and Bozdogan, H. (1995): "The use of information-based model selection criteria in the GMDH algorithm", Systems Analysis Modelling Simulation, 20(1-2), pp. 29-50
Ivakhnenko, A.G. (1968): "The Group Method of Data Handling - A Rival of the Method of Stochastic Approximation", Soviet Automatic Control, 13(3), pp. 43-55
Müller, J.-A., Ivachnenko, A.G. and Lemke, F. (1998): "GMDH Algorithms for Complex Systems Modelling", Mathematical and Computer Modelling of Dynamical Systems, 4(4), pp. 275-316 <doi: 10.1080/13873959808837083>
set.seed(123) x <- matrix(data = c(rnorm(1000)), ncol = 5, nrow = 200) colnames(x) <- c("a", "b", "c", "d", "e") y <- matrix(data = c(10 + x[, "a"] * x[, "e"]^3), ncol = 1) colnames(y) <- "y" x.test <- x[1:10, ] y.test <- y[1:10] x <- x[-c(1:10), ] y <- y[-c(1:10)] mod <- gmdh.mia(X = x, y = y, criteria = "PRESS") pred <- predict(mod, x.test) summary(sqrt((pred - y.test)^2))
set.seed(123) x <- matrix(data = c(rnorm(1000)), ncol = 5, nrow = 200) colnames(x) <- c("a", "b", "c", "d", "e") y <- matrix(data = c(10 + x[, "a"] * x[, "e"]^3), ncol = 1) colnames(y) <- "y" x.test <- x[1:10, ] y.test <- y[1:10] x <- x[-c(1:10), ] y <- y[-c(1:10)] mod <- gmdh.mia(X = x, y = y, criteria = "PRESS") pred <- predict(mod, x.test) summary(sqrt((pred - y.test)^2))
Calculates GMDH Combinatorial model predictions for new data.
## S3 method for class 'combi' predict(object, newdata, ...)
## S3 method for class 'combi' predict(object, newdata, ...)
object |
an object of class 'combi' |
newdata |
matrix containing dependent variables in the model, wich the predictions are calculated. |
... |
other undocumented arguments |
A matrix with predictions.
set.seed(123) x <- matrix(data = c(rnorm(1050)), ncol = 3, nrow = 350) colnames(x) <- c("a", "b", "c") y <- matrix(data = c(10 + x[, "a"] + x[, "b"]^2 + x[, "c"]^3), ncol = 1) colnames(y) <- "y" x.test <- x[1:10, ] y.test <- y[1:10] x <- x[-c(1:10), ] y <- y[-c(1:10)] mod <- gmdh.combi(X = x, y = y, criteria = "PRESS") pred <- predict(mod, x.test) summary(sqrt((pred - y.test)^2))
set.seed(123) x <- matrix(data = c(rnorm(1050)), ncol = 3, nrow = 350) colnames(x) <- c("a", "b", "c") y <- matrix(data = c(10 + x[, "a"] + x[, "b"]^2 + x[, "c"]^3), ncol = 1) colnames(y) <- "y" x.test <- x[1:10, ] y.test <- y[1:10] x <- x[-c(1:10), ] y <- y[-c(1:10)] mod <- gmdh.combi(X = x, y = y, criteria = "PRESS") pred <- predict(mod, x.test) summary(sqrt((pred - y.test)^2))
Calculates GMDH Twice-Multilayered Combinatorial model predictions for new data.
## S3 method for class 'combitwice' predict(object, newdata, ...)
## S3 method for class 'combitwice' predict(object, newdata, ...)
object |
an object of class 'combitwice' |
newdata |
matrix containing dependent variables in the model, wich the predictions are calculated. |
... |
other undocumented arguments |
A matrix with predictions.
set.seed(123) x <- matrix(data = c(rnorm(1050)), ncol = 3, nrow = 350) colnames(x) <- c("a", "b", "c") y <- matrix(data = c(10 + x[, "a"] + x[, "b"]^2 + x[, "c"]^3), ncol = 1) colnames(y) <- "y" x.test <- x[1:10, ] y.test <- y[1:10] x <- x[-c(1:10), ] y <- y[-c(1:10)] mod <- gmdh.combi.twice(X = x, y = y, criteria = "PRESS") pred <- predict(mod, x.test) summary(sqrt((pred - y.test)^2))
set.seed(123) x <- matrix(data = c(rnorm(1050)), ncol = 3, nrow = 350) colnames(x) <- c("a", "b", "c") y <- matrix(data = c(10 + x[, "a"] + x[, "b"]^2 + x[, "c"]^3), ncol = 1) colnames(y) <- "y" x.test <- x[1:10, ] y.test <- y[1:10] x <- x[-c(1:10), ] y <- y[-c(1:10)] mod <- gmdh.combi.twice(X = x, y = y, criteria = "PRESS") pred <- predict(mod, x.test) summary(sqrt((pred - y.test)^2))
Calculates GMDH GIA Twice model predictions for new data.
## S3 method for class 'gia' predict(object, newdata, ...)
## S3 method for class 'gia' predict(object, newdata, ...)
object |
an object of class 'giatwice' |
newdata |
matrix containing dependent variables in the model, wich the predictions are calculated. |
... |
other undocumented arguments |
A matrix with predictions.
set.seed(123) x <- matrix(data = c(rnorm(500)), ncol = 4, nrow = 125) colnames(x) <- c("a", "b", "c", "d") y <- matrix(data = c(10 + x[, "a"] + x[, "d"]^2), ncol = 1) colnames(y) <- "y" x.test <- x[1:5, ] y.test <- y[1:5] x <- x[-c(1:5), ] y <- y[-c(1:5)] mod <- gmdh.gia(X = x, y = y, criteria = "PRESS") pred <- predict(mod, x.test) summary(sqrt((pred - y.test)^2))
set.seed(123) x <- matrix(data = c(rnorm(500)), ncol = 4, nrow = 125) colnames(x) <- c("a", "b", "c", "d") y <- matrix(data = c(10 + x[, "a"] + x[, "d"]^2), ncol = 1) colnames(y) <- "y" x.test <- x[1:5, ] y.test <- y[1:5] x <- x[-c(1:5), ] y <- y[-c(1:5)] mod <- gmdh.gia(X = x, y = y, criteria = "PRESS") pred <- predict(mod, x.test) summary(sqrt((pred - y.test)^2))
Calculates GMDH MIA model predictions for new data.
## S3 method for class 'mia' predict(object, newdata, ...)
## S3 method for class 'mia' predict(object, newdata, ...)
object |
an object of class 'mia' |
newdata |
matrix containing dependent variables in the model, wich the predictions are calculated. |
... |
other undocumented arguments |
A matrix with predictions.
set.seed(123) x <- matrix(data = c(rnorm(1000)), ncol = 5, nrow = 200) colnames(x) <- c("a", "b", "c", "d", "e") y <- matrix(data = c(10 + x[, "a"] * x[, "e"]^3), ncol = 1) colnames(y) <- "y" x.test <- x[1:10, ] y.test <- y[1:10] x <- x[-c(1:10), ] y <- y[-c(1:10)] mod <- gmdh.mia(X = x, y = y, prune = 5, criteria = "PRESS") pred <- predict(mod, x.test) summary(sqrt((pred - y.test)^2))
set.seed(123) x <- matrix(data = c(rnorm(1000)), ncol = 5, nrow = 200) colnames(x) <- c("a", "b", "c", "d", "e") y <- matrix(data = c(10 + x[, "a"] * x[, "e"]^3), ncol = 1) colnames(y) <- "y" x.test <- x[1:10, ] y.test <- y[1:10] x <- x[-c(1:10), ] y <- y[-c(1:10)] mod <- gmdh.mia(X = x, y = y, prune = 5, criteria = "PRESS") pred <- predict(mod, x.test) summary(sqrt((pred - y.test)^2))