Descargar las librerías
library("stats")
library("psych")
library("MASS")
library("ISLR")
library("fRegression")
library("vcd")
## Loading required package: grid
##
## Attaching package: 'vcd'
## The following object is masked from 'package:ISLR':
##
## Hitters
library("dplyr")
##
## Attaching package: 'dplyr'
## The following object is masked from 'package:MASS':
##
## select
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library("openxlsx")
library("mlbench")
library("magrittr")
library("neuralnet")
##
## Attaching package: 'neuralnet'
## The following object is masked from 'package:dplyr':
##
## compute
library("keras")
library("caret")
## Loading required package: ggplot2
##
## Attaching package: 'ggplot2'
## The following objects are masked from 'package:psych':
##
## %+%, alpha
## Loading required package: lattice
library("readxl")
Primero se debe de leer la base de datos, en este caso tiene el nombre “BasedeDatos2”
data <- read_xlsx("BasedeDatos2.xlsx")
str(data)
## tibble [1,492 × 6] (S3: tbl_df/tbl/data.frame)
## $ ID : num [1:1492] 1 1 1 1 1 1 2 2 2 2 ...
## $ Year : num [1:1492] 1999 2000 2001 2002 2003 ...
## $ Default: num [1:1492] 0 0 0 0 0 0 0 0 0 0 ...
## $ WC : num [1:1492] 0.501 0.548 0.451 0.307 0.447 ...
## $ RE : num [1:1492] 0.307 0.322 0.225 0.192 0.217 ...
## $ EBIT : num [1:1492] 0.0434 0.0518 0.0268 0.0301 0.0325 ...
Asimismo es importante ver que no haya NAs en la base de datos, ya que en caso de que haya el modelo de Redes Neuronales no podrá ser ajustado
colSums(is.na(data))
## ID Year Default WC RE EBIT
## 0 0 0 0 0 0
Al momento de crear una red neuronal es importante mencionar las ‘capas ocultas’ de la red, en este caso crearemos una Red Neuronal dónde la primera capa oculta constará de 12 neuronas y la segunda capa consistirá de 7 neuronas.
set.seed(13)
train = createDataPartition(y = data$Default, p=0.8, list=FALSE, times = 1)
data_train = data[train,]
data_test = data[-train,]
RN <- neuralnet(Default ~ WC + RE + EBIT,
data = data_train,
hidden = c(12,7),
linear.output = T,
lifesign = 'full',
threshold = 0.05,
rep=1)
## hidden: 12, 7 thresh: 0.05 rep: 1/1 steps: 1000 min thresh: 0.0515430915049259
## 1085 error: 1.62441 time: 1.81 secs
?neuralnet
Para poder realizar predicciones es importante estandarizar las variables, para esto debemos de guardar la información como matrices y separar la variable que deseamos predecir, que en este caso se encuenta en la columna 3.
#train/test split en matrices y separando variable a predecir
training <- as.matrix(data_train[,1:6])
trainingtarget <- as.matrix(data_train[,3])
test <- as.matrix(data_test[,1:6])
testtarget <- as.matrix(data_test[,3])
#Estandarización de variables
m <- colMeans(training) #Obtener medias por columna
s <- apply(training, 2, sd) #Calcular StandDev por columna (por ello el apply lleva el 2, si pusieran 1 sería por renglón)
training <- scale(training, center = m, scale = s)
test <- scale(test, center = m, scale = s)
Es importante notar que tanto el data_train como el data_test se deben de estandarizar considerando las medias y desviaciones estándar obtenidas únicamente con los datos de entrenamiento.
A continuación se hace un reajuste del modelo con variables estanderizadas.
data_train_S <- as.data.frame(cbind(training,(trainingtarget - mean(trainingtarget))/sd(trainingtarget)))
colnames(data_train_S) <- colnames(data_train)
RNS <- neuralnet(Default ~ WC + RE + EBIT,
data = data_train_S,
hidden = c(12,7),
linear.output = T,
#linear.output se debe poner como T en modelos de regresion y como F en modelos de clasificación
lifesign = 'full',
rep=1,
# threshold=0.02,
stepmax=250000)
## hidden: 12, 7 thresh: 0.01 rep: 1/1 steps: 1000 min thresh: 2.35350078657483
## 2000 min thresh: 2.35350078657483
## 3000 min thresh: 2.35350078657483
## 4000 min thresh: 1.47956124843642
## 5000 min thresh: 0.986060753686461
## 6000 min thresh: 0.695350260370848
## 7000 min thresh: 0.627030769336324
## 8000 min thresh: 0.627030769336324
## 9000 min thresh: 0.456074448511186
## 10000 min thresh: 0.403148092775502
## 11000 min thresh: 0.327704492813451
## 12000 min thresh: 0.204507165190992
## 13000 min thresh: 0.174165542518758
## 14000 min thresh: 0.130844229082232
## 15000 min thresh: 0.130844229082232
## 16000 min thresh: 0.12235378047947
## 17000 min thresh: 0.11833844424873
## 18000 min thresh: 0.102275785957315
## 19000 min thresh: 0.0839898222611937
## 20000 min thresh: 0.0839898222611937
## 21000 min thresh: 0.0839898222611937
## 22000 min thresh: 0.0734209759073296
## 23000 min thresh: 0.0655077605382321
## 24000 min thresh: 0.0627242848807178
## 25000 min thresh: 0.0608871787565538
## 26000 min thresh: 0.0575554229131829
## 27000 min thresh: 0.0538472665527144
## 28000 min thresh: 0.0489647359495737
## 29000 min thresh: 0.0478770970018755
## 30000 min thresh: 0.0478770970018755
## 31000 min thresh: 0.0478770970018755
## 32000 min thresh: 0.0478770970018755
## 33000 min thresh: 0.0478770970018755
## 34000 min thresh: 0.0478770970018755
## 35000 min thresh: 0.0478770970018755
## 36000 min thresh: 0.0478770970018755
## 37000 min thresh: 0.0478770970018755
## 38000 min thresh: 0.0478770970018755
## 39000 min thresh: 0.0478770970018755
## 40000 min thresh: 0.0478770970018755
## 41000 min thresh: 0.0478770970018755
## 42000 min thresh: 0.0478770970018755
## 43000 min thresh: 0.0478770970018755
## 44000 min thresh: 0.0458880184015274
## 45000 min thresh: 0.0458880184015274
## 46000 min thresh: 0.0384016052130875
## 47000 min thresh: 0.0336750427223512
## 48000 min thresh: 0.0336750427223512
## 49000 min thresh: 0.0336750427223512
## 50000 min thresh: 0.0336750427223512
## 51000 min thresh: 0.0326503140354387
## 52000 min thresh: 0.0326503140354387
## 53000 min thresh: 0.0320969358161425
## 54000 min thresh: 0.030740868118323
## 55000 min thresh: 0.0294981551233054
## 56000 min thresh: 0.0294981551233054
## 57000 min thresh: 0.0294981551233054
## 58000 min thresh: 0.0287330726948095
## 59000 min thresh: 0.0278273766906158
## 60000 min thresh: 0.0249604968495271
## 61000 min thresh: 0.0249604968495271
## 62000 min thresh: 0.0249064573659374
## 63000 min thresh: 0.0245403924060244
## 64000 min thresh: 0.0245403924060244
## 65000 min thresh: 0.0238251728236197
## 66000 min thresh: 0.0238251728236197
## 67000 min thresh: 0.0238251728236197
## 68000 min thresh: 0.0238251728236197
## 69000 min thresh: 0.0235831256025326
## 70000 min thresh: 0.0235831256025326
## 71000 min thresh: 0.0235831256025326
## 72000 min thresh: 0.0235831256025326
## 73000 min thresh: 0.0204433243836221
## 74000 min thresh: 0.0204433243836221
## 75000 min thresh: 0.0204433243836221
## 76000 min thresh: 0.0204433243836221
## 77000 min thresh: 0.0204433243836221
## 78000 min thresh: 0.0204433243836221
## 79000 min thresh: 0.0204433243836221
## 80000 min thresh: 0.0190118394009979
## 81000 min thresh: 0.0190118394009979
## 82000 min thresh: 0.0190118394009979
## 83000 min thresh: 0.0190118394009979
## 84000 min thresh: 0.0190118394009979
## 85000 min thresh: 0.0189077138885954
## 86000 min thresh: 0.0187378116963939
## 87000 min thresh: 0.0187378116963939
## 88000 min thresh: 0.0186225415478224
## 89000 min thresh: 0.0186225415478224
## 90000 min thresh: 0.0186225415478224
## 91000 min thresh: 0.0178980939315201
## 92000 min thresh: 0.0178980939315201
## 93000 min thresh: 0.017682842425676
## 94000 min thresh: 0.0176358143068378
## 95000 min thresh: 0.0176358143068378
## 96000 min thresh: 0.0168836364955361
## 97000 min thresh: 0.0168836364955361
## 98000 min thresh: 0.0159007551494033
## 99000 min thresh: 0.0159007551494033
## 1e+05 min thresh: 0.0159007551494033
## 101000 min thresh: 0.0155446986768746
## 102000 min thresh: 0.0154267313295337
## 103000 min thresh: 0.0154267313295337
## 104000 min thresh: 0.0154067058741009
## 105000 min thresh: 0.0151315411962028
## 106000 min thresh: 0.0151315411962028
## 107000 min thresh: 0.0149962735654919
## 108000 min thresh: 0.0149962735654919
## 109000 min thresh: 0.014526780889452
## 110000 min thresh: 0.0143936470792787
## 111000 min thresh: 0.0143936470792787
## 112000 min thresh: 0.0143936470792787
## 113000 min thresh: 0.0143936470792787
## 114000 min thresh: 0.0143936470792787
## 115000 min thresh: 0.0143936470792787
## 116000 min thresh: 0.0143936470792787
## 117000 min thresh: 0.0143936470792787
## 118000 min thresh: 0.0141106893321205
## 119000 min thresh: 0.0141106893321205
## 120000 min thresh: 0.0141106893321205
## 121000 min thresh: 0.0141106893321205
## 122000 min thresh: 0.0141106893321205
## 123000 min thresh: 0.0141106893321205
## 124000 min thresh: 0.0138020359636436
## 125000 min thresh: 0.0136677672117083
## 126000 min thresh: 0.0136677672117083
## 127000 min thresh: 0.0133016800163788
## 128000 min thresh: 0.0133016800163788
## 129000 min thresh: 0.0133016800163788
## 130000 min thresh: 0.0132333417954097
## 131000 min thresh: 0.0128701004654011
## 132000 min thresh: 0.0128701004654011
## 133000 min thresh: 0.0128701004654011
## 134000 min thresh: 0.0128701004654011
## 135000 min thresh: 0.0128701004654011
## 136000 min thresh: 0.0128701004654011
## 137000 min thresh: 0.0128701004654011
## 138000 min thresh: 0.0128701004654011
## 139000 min thresh: 0.0125194701773989
## 140000 min thresh: 0.0125194701773989
## 141000 min thresh: 0.0125194701773989
## 142000 min thresh: 0.0125194701773989
## 143000 min thresh: 0.0125194701773989
## 144000 min thresh: 0.0125194701773989
## 145000 min thresh: 0.0125194701773989
## 146000 min thresh: 0.0125194701773989
## 147000 min thresh: 0.0125194701773989
## 148000 min thresh: 0.0117685440451644
## 149000 min thresh: 0.0117685440451644
## 150000 min thresh: 0.0117685440451644
## 151000 min thresh: 0.0117685440451644
## 152000 min thresh: 0.0117685440451644
## 153000 min thresh: 0.0117685440451644
## 154000 min thresh: 0.0117685440451644
## 155000 min thresh: 0.0117685440451644
## 156000 min thresh: 0.0117685440451644
## 157000 min thresh: 0.0117685440451644
## 158000 min thresh: 0.0115551732659466
## 159000 min thresh: 0.0115551732659466
## 160000 min thresh: 0.0115551732659466
## 161000 min thresh: 0.0115551732659466
## 162000 min thresh: 0.0115551732659466
## 163000 min thresh: 0.0115551732659466
## 164000 min thresh: 0.0115551732659466
## 165000 min thresh: 0.0115551732659466
## 166000 min thresh: 0.0115551732659466
## 167000 min thresh: 0.0115551732659466
## 168000 min thresh: 0.0115551732659466
## 169000 min thresh: 0.0115551732659466
## 170000 min thresh: 0.0115551732659466
## 170942 error: 0.03931 time: 4.1 mins
plot(RNS,col.hidden = 'darkgreen',
col.hidden.synapse = 'darkgreen',
show.weights = T,
information = F,
fill = 'lightblue')
Se realizan las predicciones
data_test_S <- as.data.frame(test)
colnames(data_test_S) <- colnames(data_test)[1:6]
RNSPredictions <- predict(RNS,data_test_S)
cor(RNSPredictions,(testtarget-mean(trainingtarget))/sd(trainingtarget))
## Default
## [1,] 0.05575387
Para calcular métricas de regresión es importante ‘desestandarizar’ las predicciones y eso es lo que se comparará contra los valores de testtarget
RNSPred <- RNSPredictions*sd(trainingtarget) + mean(trainingtarget)
plot(RNSPred,testtarget)
abline(a=0, b=1)
RSSnn <- (RNSPred - testtarget)^2
sum(RSSnn)/nrow(testtarget)
## [1] 0.01406571
1 - sum(RSSnn)/sum((testtarget - mean(trainingtarget))^2)
## [1] -0.05652631
Este es un segundo intento con una Red Neuronal pero con una menor cantidad de neuronas.
data_train_S <- as.data.frame(cbind(training,(trainingtarget - mean(trainingtarget))/sd(trainingtarget)))
colnames(data_train_S) <- colnames(data_train)
RNS2 <- neuralnet(Default ~ WC + RE + EBIT,
data = data_train_S,
hidden = c(5,3),
linear.output = T,
lifesign = 'full',
rep=1,
# threshold=0.02,
stepmax=700000)
## hidden: 5, 3 thresh: 0.01 rep: 1/1 steps: 1000 min thresh: 0.359444195307591
## 2000 min thresh: 0.359444195307591
## 3000 min thresh: 0.359444195307591
## 4000 min thresh: 0.359444195307591
## 5000 min thresh: 0.359444195307591
## 6000 min thresh: 0.359444195307591
## 7000 min thresh: 0.359444195307591
## 8000 min thresh: 0.359444195307591
## 9000 min thresh: 0.359444195307591
## 10000 min thresh: 0.359444195307591
## 11000 min thresh: 0.333689365981326
## 12000 min thresh: 0.333689365981326
## 13000 min thresh: 0.156305955946757
## 14000 min thresh: 0.101432931879946
## 15000 min thresh: 0.0655698899925627
## 16000 min thresh: 0.0642149695786127
## 17000 min thresh: 0.0517016342992195
## 18000 min thresh: 0.0388026084972058
## 19000 min thresh: 0.0385200514442264
## 20000 min thresh: 0.0342191806634239
## 21000 min thresh: 0.0339381371034097
## 22000 min thresh: 0.0323575793506294
## 23000 min thresh: 0.0323575793506294
## 24000 min thresh: 0.0317326683696498
## 25000 min thresh: 0.0299694296531639
## 26000 min thresh: 0.0279954461055298
## 27000 min thresh: 0.027683216239339
## 28000 min thresh: 0.0276076097326709
## 29000 min thresh: 0.0267936026318221
## 30000 min thresh: 0.026281997772147
## 31000 min thresh: 0.0248729906848235
## 32000 min thresh: 0.0248729906848235
## 33000 min thresh: 0.0248729906848235
## 34000 min thresh: 0.0248729906848235
## 35000 min thresh: 0.0248729906848235
## 36000 min thresh: 0.0246934741871166
## 37000 min thresh: 0.0246647521909552
## 38000 min thresh: 0.0240115867757761
## 39000 min thresh: 0.0239517515924209
## 40000 min thresh: 0.0234342185160456
## 41000 min thresh: 0.0226893127978197
## 42000 min thresh: 0.0225809951562794
## 43000 min thresh: 0.022466356845437
## 44000 min thresh: 0.0218324810838088
## 45000 min thresh: 0.0214677706806258
## 46000 min thresh: 0.0210984146416637
## 47000 min thresh: 0.0204295585957759
## 48000 min thresh: 0.0201343305513942
## 49000 min thresh: 0.0200476581172789
## 50000 min thresh: 0.0200476581172789
## 51000 min thresh: 0.0200476581172789
## 52000 min thresh: 0.0200476581172789
## 53000 min thresh: 0.0200476581172789
## 54000 min thresh: 0.0200476581172789
## 55000 min thresh: 0.0200476581172789
## 56000 min thresh: 0.0200476581172789
## 57000 min thresh: 0.0200476581172789
## 58000 min thresh: 0.0200476581172789
## 59000 min thresh: 0.0200476581172789
## 60000 min thresh: 0.0200476581172789
## 61000 min thresh: 0.0200476581172789
## 62000 min thresh: 0.0200476581172789
## 63000 min thresh: 0.0200476581172789
## 64000 min thresh: 0.0200476581172789
## 65000 min thresh: 0.0200476581172789
## 66000 min thresh: 0.0200476581172789
## 67000 min thresh: 0.0200476581172789
## 68000 min thresh: 0.0200476581172789
## 69000 min thresh: 0.0200476581172789
## 70000 min thresh: 0.0200476581172789
## 71000 min thresh: 0.0200476581172789
## 72000 min thresh: 0.0200476581172789
## 73000 min thresh: 0.0200476581172789
## 74000 min thresh: 0.0200476581172789
## 75000 min thresh: 0.0200476581172789
## 76000 min thresh: 0.0200476581172789
## 77000 min thresh: 0.0200476581172789
## 78000 min thresh: 0.0200476581172789
## 79000 min thresh: 0.0200476581172789
## 80000 min thresh: 0.0200476581172789
## 81000 min thresh: 0.0200476581172789
## 82000 min thresh: 0.0200476581172789
## 83000 min thresh: 0.0200476581172789
## 84000 min thresh: 0.0200476581172789
## 85000 min thresh: 0.0200476581172789
## 86000 min thresh: 0.0200476581172789
## 87000 min thresh: 0.0200476581172789
## 88000 min thresh: 0.0200476581172789
## 89000 min thresh: 0.0200476581172789
## 90000 min thresh: 0.0200476581172789
## 91000 min thresh: 0.0200476581172789
## 92000 min thresh: 0.0200476581172789
## 93000 min thresh: 0.0200476581172789
## 94000 min thresh: 0.0200476581172789
## 95000 min thresh: 0.0200476581172789
## 96000 min thresh: 0.0200476581172789
## 97000 min thresh: 0.0200476581172789
## 98000 min thresh: 0.0200476581172789
## 99000 min thresh: 0.0200476581172789
## 1e+05 min thresh: 0.0200476581172789
## 101000 min thresh: 0.0200476581172789
## 102000 min thresh: 0.0200476581172789
## 103000 min thresh: 0.0200476581172789
## 104000 min thresh: 0.0200476581172789
## 105000 min thresh: 0.0200476581172789
## 106000 min thresh: 0.0200476581172789
## 107000 min thresh: 0.0200476581172789
## 108000 min thresh: 0.0200476581172789
## 109000 min thresh: 0.0200476581172789
## 110000 min thresh: 0.0200476581172789
## 111000 min thresh: 0.0200476581172789
## 112000 min thresh: 0.0200476581172789
## 113000 min thresh: 0.0200476581172789
## 114000 min thresh: 0.0200476581172789
## 115000 min thresh: 0.0200476581172789
## 116000 min thresh: 0.0200476581172789
## 117000 min thresh: 0.0200476581172789
## 118000 min thresh: 0.0200476581172789
## 119000 min thresh: 0.0200476581172789
## 120000 min thresh: 0.0200476581172789
## 121000 min thresh: 0.0200476581172789
## 122000 min thresh: 0.0200476581172789
## 123000 min thresh: 0.0200476581172789
## 124000 min thresh: 0.0200476581172789
## 125000 min thresh: 0.0200476581172789
## 126000 min thresh: 0.0200476581172789
## 127000 min thresh: 0.0200476581172789
## 128000 min thresh: 0.0200476581172789
## 129000 min thresh: 0.0200476581172789
## 130000 min thresh: 0.0200476581172789
## 131000 min thresh: 0.0200476581172789
## 132000 min thresh: 0.0200476581172789
## 133000 min thresh: 0.0200476581172789
## 134000 min thresh: 0.0200476581172789
## 135000 min thresh: 0.0200476581172789
## 136000 min thresh: 0.0200476581172789
## 137000 min thresh: 0.0200476581172789
## 138000 min thresh: 0.0200476581172789
## 139000 min thresh: 0.0200476581172789
## 140000 min thresh: 0.0200476581172789
## 141000 min thresh: 0.0200476581172789
## 142000 min thresh: 0.0200476581172789
## 143000 min thresh: 0.0200476581172789
## 144000 min thresh: 0.0200476581172789
## 145000 min thresh: 0.0200476581172789
## 146000 min thresh: 0.0200476581172789
## 147000 min thresh: 0.0200476581172789
## 148000 min thresh: 0.0200476581172789
## 149000 min thresh: 0.0200476581172789
## 150000 min thresh: 0.0200476581172789
## 151000 min thresh: 0.0200476581172789
## 152000 min thresh: 0.0200476581172789
## 153000 min thresh: 0.0200476581172789
## 154000 min thresh: 0.0200476581172789
## 155000 min thresh: 0.0200476581172789
## 156000 min thresh: 0.0200476581172789
## 157000 min thresh: 0.0200476581172789
## 158000 min thresh: 0.0200476581172789
## 159000 min thresh: 0.0200476581172789
## 160000 min thresh: 0.0200476581172789
## 161000 min thresh: 0.0200476581172789
## 162000 min thresh: 0.0200476581172789
## 163000 min thresh: 0.0200476581172789
## 164000 min thresh: 0.0200476581172789
## 165000 min thresh: 0.0200476581172789
## 166000 min thresh: 0.0200476581172789
## 167000 min thresh: 0.0200476581172789
## 168000 min thresh: 0.0200476581172789
## 169000 min thresh: 0.0200476581172789
## 170000 min thresh: 0.0200476581172789
## 171000 min thresh: 0.0200476581172789
## 172000 min thresh: 0.0200476581172789
## 173000 min thresh: 0.0200476581172789
## 174000 min thresh: 0.0200476581172789
## 175000 min thresh: 0.0200476581172789
## 176000 min thresh: 0.0200476581172789
## 177000 min thresh: 0.0200476581172789
## 178000 min thresh: 0.0200476581172789
## 179000 min thresh: 0.0200476581172789
## 180000 min thresh: 0.0200476581172789
## 181000 min thresh: 0.0200476581172789
## 182000 min thresh: 0.0200476581172789
## 183000 min thresh: 0.0200476581172789
## 184000 min thresh: 0.0200476581172789
## 185000 min thresh: 0.0200476581172789
## 186000 min thresh: 0.0200476581172789
## 187000 min thresh: 0.0200476581172789
## 188000 min thresh: 0.0200476581172789
## 189000 min thresh: 0.0200476581172789
## 190000 min thresh: 0.0200476581172789
## 191000 min thresh: 0.0200476581172789
## 192000 min thresh: 0.0200476581172789
## 193000 min thresh: 0.0200476581172789
## 194000 min thresh: 0.0200476581172789
## 195000 min thresh: 0.0200476581172789
## 196000 min thresh: 0.0200476581172789
## 197000 min thresh: 0.0200476581172789
## 198000 min thresh: 0.0200476581172789
## 199000 min thresh: 0.0200476581172789
## 2e+05 min thresh: 0.0200476581172789
## 201000 min thresh: 0.0200476581172789
## 202000 min thresh: 0.0200476581172789
## 203000 min thresh: 0.0200476581172789
## 204000 min thresh: 0.0200476581172789
## 205000 min thresh: 0.0200476581172789
## 206000 min thresh: 0.0200476581172789
## 207000 min thresh: 0.0200476581172789
## 208000 min thresh: 0.0200476581172789
## 209000 min thresh: 0.0200476581172789
## 210000 min thresh: 0.0200476581172789
## 211000 min thresh: 0.0200476581172789
## 212000 min thresh: 0.0200476581172789
## 213000 min thresh: 0.0200476581172789
## 214000 min thresh: 0.0200476581172789
## 215000 min thresh: 0.0200476581172789
## 216000 min thresh: 0.0200476581172789
## 217000 min thresh: 0.0200476581172789
## 218000 min thresh: 0.0200476581172789
## 219000 min thresh: 0.0200476581172789
## 220000 min thresh: 0.0200476581172789
## 221000 min thresh: 0.0200476581172789
## 222000 min thresh: 0.0200476581172789
## 223000 min thresh: 0.0200476581172789
## 224000 min thresh: 0.0200476581172789
## 225000 min thresh: 0.0200476581172789
## 226000 min thresh: 0.0200476581172789
## 227000 min thresh: 0.0200476581172789
## 228000 min thresh: 0.0200476581172789
## 229000 min thresh: 0.0200476581172789
## 230000 min thresh: 0.0200476581172789
## 231000 min thresh: 0.0200476581172789
## 232000 min thresh: 0.0200476581172789
## 233000 min thresh: 0.0200476581172789
## 234000 min thresh: 0.0200476581172789
## 235000 min thresh: 0.0200476581172789
## 236000 min thresh: 0.0200476581172789
## 237000 min thresh: 0.0200476581172789
## 238000 min thresh: 0.0200476581172789
## 239000 min thresh: 0.0200476581172789
## 240000 min thresh: 0.0200476581172789
## 241000 min thresh: 0.0200476581172789
## 242000 min thresh: 0.0200476581172789
## 243000 min thresh: 0.0200476581172789
## 244000 min thresh: 0.0200476581172789
## 245000 min thresh: 0.0200476581172789
## 246000 min thresh: 0.0200476581172789
## 247000 min thresh: 0.0200476581172789
## 248000 min thresh: 0.0200476581172789
## 249000 min thresh: 0.0200476581172789
## 250000 min thresh: 0.0200476581172789
## 251000 min thresh: 0.0200476581172789
## 252000 min thresh: 0.0200476581172789
## 253000 min thresh: 0.0200476581172789
## 254000 min thresh: 0.0200476581172789
## 255000 min thresh: 0.0200476581172789
## 256000 min thresh: 0.0200476581172789
## 257000 min thresh: 0.0200476581172789
## 258000 min thresh: 0.0200476581172789
## 259000 min thresh: 0.0200476581172789
## 260000 min thresh: 0.0200476581172789
## 261000 min thresh: 0.0200476581172789
## 262000 min thresh: 0.0200476581172789
## 263000 min thresh: 0.0200476581172789
## 264000 min thresh: 0.0200476581172789
## 265000 min thresh: 0.0200476581172789
## 266000 min thresh: 0.0200476581172789
## 267000 min thresh: 0.0200476581172789
## 268000 min thresh: 0.0200476581172789
## 269000 min thresh: 0.0200476581172789
## 270000 min thresh: 0.0200476581172789
## 271000 min thresh: 0.0200476581172789
## 272000 min thresh: 0.0200476581172789
## 273000 min thresh: 0.0200476581172789
## 274000 min thresh: 0.0200476581172789
## 275000 min thresh: 0.0200476581172789
## 276000 min thresh: 0.0200476581172789
## 277000 min thresh: 0.0200476581172789
## 278000 min thresh: 0.0200476581172789
## 279000 min thresh: 0.0200476581172789
## 280000 min thresh: 0.0200476581172789
## 281000 min thresh: 0.0200476581172789
## 282000 min thresh: 0.0200476581172789
## 283000 min thresh: 0.0200476581172789
## 284000 min thresh: 0.0200476581172789
## 285000 min thresh: 0.0200476581172789
## 286000 min thresh: 0.0200476581172789
## 287000 min thresh: 0.0200476581172789
## 288000 min thresh: 0.0200476581172789
## 289000 min thresh: 0.0200476581172789
## 290000 min thresh: 0.0200476581172789
## 291000 min thresh: 0.0200476581172789
## 292000 min thresh: 0.0200476581172789
## 293000 min thresh: 0.0195822963987866
## 294000 min thresh: 0.0195822963987866
## 295000 min thresh: 0.0195822963987866
## 296000 min thresh: 0.0195822963987866
## 297000 min thresh: 0.0195822963987866
## 298000 min thresh: 0.0195822963987866
## 299000 min thresh: 0.0195822963987866
## 3e+05 min thresh: 0.0195822963987866
## 301000 min thresh: 0.0195822963987866
## 302000 min thresh: 0.0195822963987866
## 303000 min thresh: 0.0195822963987866
## 304000 min thresh: 0.0195822963987866
## 305000 min thresh: 0.0195822963987866
## 306000 min thresh: 0.0195822963987866
## 307000 min thresh: 0.0195822963987866
## 308000 min thresh: 0.0195822963987866
## 309000 min thresh: 0.0195822963987866
## 310000 min thresh: 0.0195822963987866
## 311000 min thresh: 0.0195822963987866
## 312000 min thresh: 0.0195822963987866
## 313000 min thresh: 0.0195822963987866
## 314000 min thresh: 0.0188989372385484
## 315000 min thresh: 0.0188989372385484
## 316000 min thresh: 0.0188989372385484
## 317000 min thresh: 0.0188989372385484
## 318000 min thresh: 0.0188989372385484
## 319000 min thresh: 0.0188989372385484
## 320000 min thresh: 0.0188989372385484
## 321000 min thresh: 0.0188989372385484
## 322000 min thresh: 0.0188989372385484
## 323000 min thresh: 0.0188989372385484
## 324000 min thresh: 0.0188989372385484
## 325000 min thresh: 0.0188989372385484
## 326000 min thresh: 0.0188989372385484
## 327000 min thresh: 0.0188989372385484
## 328000 min thresh: 0.0188989372385484
## 329000 min thresh: 0.0188989372385484
## 330000 min thresh: 0.0188989372385484
## 331000 min thresh: 0.0188989372385484
## 332000 min thresh: 0.0188989372385484
## 333000 min thresh: 0.0188989372385484
## 334000 min thresh: 0.0188989372385484
## 335000 min thresh: 0.0188989372385484
## 336000 min thresh: 0.0188989372385484
## 337000 min thresh: 0.0188989372385484
## 338000 min thresh: 0.0188989372385484
## 339000 min thresh: 0.0188989372385484
## 340000 min thresh: 0.0188989372385484
## 341000 min thresh: 0.0188989372385484
## 342000 min thresh: 0.0188989372385484
## 343000 min thresh: 0.0188989372385484
## 344000 min thresh: 0.0188478991197229
## 345000 min thresh: 0.0188478991197229
## 346000 min thresh: 0.0188478991197229
## 347000 min thresh: 0.017987423961282
## 348000 min thresh: 0.017987423961282
## 349000 min thresh: 0.0178613791364932
## 350000 min thresh: 0.0178613791364932
## 351000 min thresh: 0.0178613791364932
## 352000 min thresh: 0.0178613791364932
## 353000 min thresh: 0.0174114036013302
## 354000 min thresh: 0.0174114036013302
## 355000 min thresh: 0.0174114036013302
## 356000 min thresh: 0.0174114036013302
## 357000 min thresh: 0.0174114036013302
## 358000 min thresh: 0.0174114036013302
## 359000 min thresh: 0.0174114036013302
## 360000 min thresh: 0.0174114036013302
## 361000 min thresh: 0.0174114036013302
## 362000 min thresh: 0.0172870198663945
## 363000 min thresh: 0.0172870198663945
## 364000 min thresh: 0.0172870198663945
## 365000 min thresh: 0.0172870198663945
## 366000 min thresh: 0.01697351900726
## 367000 min thresh: 0.01697351900726
## 368000 min thresh: 0.01697351900726
## 369000 min thresh: 0.01613177408133
## 370000 min thresh: 0.01613177408133
## 371000 min thresh: 0.01613177408133
## 372000 min thresh: 0.01613177408133
## 373000 min thresh: 0.01613177408133
## 374000 min thresh: 0.01613177408133
## 375000 min thresh: 0.01613177408133
## 376000 min thresh: 0.01613177408133
## 377000 min thresh: 0.0148217547578398
## 378000 min thresh: 0.0148217547578398
## 379000 min thresh: 0.0148217547578398
## 380000 min thresh: 0.0148217547578398
## 381000 min thresh: 0.0148217547578398
## 382000 min thresh: 0.0148217547578398
## 383000 min thresh: 0.0148217547578398
## 384000 min thresh: 0.0148217547578398
## 385000 min thresh: 0.0148217547578398
## 386000 min thresh: 0.0148217547578398
## 387000 min thresh: 0.0148217547578398
## 388000 min thresh: 0.0148217547578398
## 389000 min thresh: 0.0148217547578398
## 390000 min thresh: 0.0148217547578398
## 391000 min thresh: 0.0148217547578398
## 392000 min thresh: 0.0144048809718934
## 393000 min thresh: 0.0144048809718934
## 394000 min thresh: 0.0144048809718934
## 395000 min thresh: 0.0144048809718934
## 396000 min thresh: 0.0144048809718934
## 397000 min thresh: 0.0144048809718934
## 398000 min thresh: 0.0137798737305812
## 399000 min thresh: 0.0137798737305812
## 4e+05 min thresh: 0.0137798737305812
## 401000 min thresh: 0.0137798737305812
## 402000 min thresh: 0.0137798737305812
## 403000 min thresh: 0.0125086878467876
## 404000 min thresh: 0.0125086878467876
## 405000 min thresh: 0.0125086878467876
## 406000 min thresh: 0.0125086878467876
## 407000 min thresh: 0.0125086878467876
## 408000 min thresh: 0.0125086878467876
## 409000 min thresh: 0.0125086878467876
## 410000 min thresh: 0.0125086878467876
## 411000 min thresh: 0.0125086878467876
## 412000 min thresh: 0.0125086878467876
## 413000 min thresh: 0.0125086878467876
## 414000 min thresh: 0.0125086878467876
## 415000 min thresh: 0.0125086878467876
## 416000 min thresh: 0.0125086878467876
## 417000 min thresh: 0.0125086878467876
## 418000 min thresh: 0.0125086878467876
## 419000 min thresh: 0.0125086878467876
## 420000 min thresh: 0.0125086878467876
## 421000 min thresh: 0.0123891055176483
## 422000 min thresh: 0.0123891055176483
## 423000 min thresh: 0.0122816623099729
## 424000 min thresh: 0.0122816623099729
## 425000 min thresh: 0.0122816623099729
## 426000 min thresh: 0.0122816623099729
## 427000 min thresh: 0.0120709140706029
## 428000 min thresh: 0.0120324662488636
## 429000 min thresh: 0.0118423161326998
## 430000 min thresh: 0.0118423161326998
## 431000 min thresh: 0.0118423161326998
## 432000 min thresh: 0.0118423161326998
## 433000 min thresh: 0.0117828858024763
## 434000 min thresh: 0.0116897341014906
## 435000 min thresh: 0.0116897341014906
## 436000 min thresh: 0.011331535967634
## 437000 min thresh: 0.0112928377687601
## 438000 min thresh: 0.0112031900167676
## 439000 min thresh: 0.01079486181789
## 440000 min thresh: 0.01079486181789
## 441000 min thresh: 0.01079486181789
## 442000 min thresh: 0.0104587969239889
## 443000 min thresh: 0.0104587969239889
## 444000 min thresh: 0.0104587969239889
## 445000 min thresh: 0.0104587969239889
## 446000 min thresh: 0.0104587969239889
## 447000 min thresh: 0.0104587969239889
## 447279 error: 82.29639 time: 4.31 mins
Por medio de este código se puede visualizar la Red Neuronal Ajustada.
dev.set(dev.next())
## pdf
## 3
print(plot(RNS2,col.hidden = 'darkgreen',
col.hidden.synapse = 'darkgreen',
show.weights = T,
information = F,
fill = 'lightblue'))
## NULL
Aquí se realiza la predicción.
data_test_S <- as.data.frame(test)
colnames(data_test_S) <- colnames(data_test)[1:6]
RNS2Predictions <- predict(RNS2,data_test_S)
cor(RNS2Predictions,(testtarget-mean(trainingtarget))/sd(trainingtarget))
## Default
## [1,] -0.01186769
Para calcular métricas de regresión es importante ‘desestandarizar’ las predicciones y eso es lo que se comparará contra los valores de testtarget.
RNS2Pred <- RNS2Predictions*sd(trainingtarget) + mean(trainingtarget)
plot(RNS2Pred,testtarget)
abline(a=0, b=1)
RSS2nn <- (RNS2Pred - testtarget)^2
sum(RSS2nn)/nrow(testtarget)
## [1] 0.01670349
1 - sum(RSS2nn)/sum((testtarget - mean(trainingtarget))^2)
## [1] -0.2546595
A continuación hay 2 formas de comparar los moedlos de forma gráfica.
Primera forma, esta es mediante 2 gráficas diferentes.
par(mfrow=c(1,2))
plot(data_test$Default,RNS2Pred,col='red',main='Real vs predicted NN',pch=19,cex=1)
abline(0,1,lwd=2)
legend('bottomright',legend='NN',pch=18,col='red', bty='n')
plot(data_test$Default,RNSPred,col='blue',main='Real vs predicted LM',pch=15, cex=1)
abline(0,1,lwd=2)
legend('bottomright',legend='LM',pch=18,col='blue', bty='n', cex=.95)
En esta segunda forma se puede ver en una misma gráfica.
dev.set(dev.next())
## pdf
## 3
plot(data_test$Default,RNS2Pred,col='red',main='Real vs predicted NN',pch=19,cex=1)
points(data_test$Default,RNSPred,col='blue',pch=15,cex=1)
abline(0,1,lwd=2)
legend('bottomright',legend=c('NN','LM'),pch=c(19,15),col=c('red','blue'))
#Conclusión
Una red neuronal, es un algoritmo que consiste en simular el comportamiento de un cerebro biológico mediante capas compuestas por nodos o neuronas que tienen una capa de entrada, una o más capas ocultas y una de salida y ada nodo se conecta a otro y tiene un peso asociado, así es como se forman miles de conexiones.
Estas redes sirven para problemas de clasificación como obtener alguna probabilidad o problemas de regresión, como predecir el número de algún dato, como lo es en esta evidencia en donde hacemos predicciones de la variable “Default”. Para lograr hacer predicciones utilizamos las variables WC,RE y EBIT.
En el área financiera las redes neuronales son muy importantes y cuentan con diversas aplicaciones. Entre ellas se pueden encontrar, en la administración de los portafolios de inversión, la evaluación de acciones y bonos, las estrategias de cobertura y arbitraje, el análisis de la volatilidad y correlación y la predicción de los precios de acciones, bonos, tasas de interés y de cambio, evolución de precios, valoración de créditos, identificación de falsificaciones entre otras.