Este documento presenta un análisis de regresión lineal múltiple para entender cómo el contexto macroeconómico y el comportamiento de contacto bancario se relacionan con la tasa Euribor a 3 meses (euribor3m - Variable Dependiente).
Los bancos promueven los depósitos a plazo mediante campañas de mercadeo directo, especialmente llamadas telefónicas, donde agentes contactan a clientes para ofrecer la suscripción; sin embargo, estas campañas implican altos costos operacionales y de personal, por lo que es importante mejorar su efectividad identificando qué perfiles de clientes tienen mayor probabilidad de suscribir y cómo influyen las diferentes variables operativas.
El conjunto de datos contiene registros relacionados con una campaña de marketing directo de una institución bancaria portuguesa. La campaña de marketing se ejecutó mediante llamadas telefónicas. A menudo, es necesario realizar más de una llamada a un solo cliente antes de que acepte o rechace una suscripción a un depósito a plazo.
El banco desea construir un modelo predictivo que explique la variación de la tasa Euribor utilizando:
# Cargar el dataset
data1 <- read.csv("datos-banco.csv")
# Visualizar estructura de los datos
str(data1)## 'data.frame': 41188 obs. of 9 variables:
## $ age : int 56 57 37 40 56 45 59 41 24 25 ...
## $ campaign : int 1 1 1 1 1 1 1 1 1 1 ...
## $ pdays : int 999 999 999 999 999 999 999 999 999 999 ...
## $ previous : int 0 0 0 0 0 0 0 0 0 0 ...
## $ emp.var.rate : num 1.1 1.1 1.1 1.1 1.1 1.1 1.1 1.1 1.1 1.1 ...
## $ cons.price.idx: num 94 94 94 94 94 ...
## $ cons.conf.idx : num -36.4 -36.4 -36.4 -36.4 -36.4 -36.4 -36.4 -36.4 -36.4 -36.4 ...
## $ euribor3m : num 4.86 4.86 4.86 4.86 4.86 ...
## $ nr.employed : num 5191 5191 5191 5191 5191 ...
## age campaign pdays previous emp.var.rate cons.price.idx cons.conf.idx
## 1 56 1 999 0 1.1 93.994 -36.4
## 2 57 1 999 0 1.1 93.994 -36.4
## 3 37 1 999 0 1.1 93.994 -36.4
## 4 40 1 999 0 1.1 93.994 -36.4
## 5 56 1 999 0 1.1 93.994 -36.4
## 6 45 1 999 0 1.1 93.994 -36.4
## euribor3m nr.employed
## 1 4.857 5191
## 2 4.857 5191
## 3 4.857 5191
## 4 4.857 5191
## 5 4.857 5191
## 6 4.857 5191
Observaciones iniciales:
age, campaign,
pdays, previous, emp.var.rate,
cons.price.idx, cons.conf.idx,
nr.employed, euribor3mAntes de construir el modelo, es fundamental explorar las relaciones entre variables.
# Matriz de correlación
cor_matrix <- cor(data1, use = "complete.obs")
# Visualización con pairs (R base)
pairs(data1,
main = "Matriz de Dispersión entre Variables",
pch = 19,
col = rgb(0, 0, 1, 0.3),
cex = 0.5)##
## Matriz de Correlaciones con euribor3m:
## age campaign pdays previous emp.var.rate
## 0.01 0.14 0.30 -0.45 0.97
## cons.price.idx cons.conf.idx euribor3m nr.employed
## 0.69 0.28 1.00 0.95
Figura: Matriz de dispersión detallada de las variables del modelo
Interpretación:
euribor3memp.var.rate, cons.price.idx y
nr.employed parecen ser predictores fuertesIncluimos todas las variables explicativas disponibles:
# Modelo con todas las variables
m_full1 <- lm(euribor3m ~ age + campaign + pdays + previous +
emp.var.rate + cons.price.idx + cons.conf.idx + nr.employed,
data = data1)
summary(m_full1)##
## Call:
## lm(formula = euribor3m ~ age + campaign + pdays + previous +
## emp.var.rate + cons.price.idx + cons.conf.idx + nr.employed,
## data = data1)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.57922 -0.17533 0.00282 0.13957 1.04191
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -9.220e+01 6.275e-01 -146.932 < 2e-16 ***
## age 2.914e-04 1.032e-04 2.824 0.00475 **
## campaign -6.659e-03 3.897e-04 -17.087 < 2e-16 ***
## pdays 1.858e-05 7.239e-06 2.567 0.01027 *
## previous 3.567e-03 2.885e-03 1.236 0.21636
## emp.var.rate 4.118e-01 3.331e-03 123.610 < 2e-16 ***
## cons.price.idx 3.378e-01 4.325e-03 78.112 < 2e-16 ***
## cons.conf.idx 5.397e-02 2.639e-04 204.479 < 2e-16 ***
## nr.employed 1.284e-02 5.369e-05 239.162 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.2162 on 41179 degrees of freedom
## Multiple R-squared: 0.9845, Adjusted R-squared: 0.9845
## F-statistic: 3.26e+05 on 8 and 41179 DF, p-value: < 2.2e-16
Este modelo sirve como punto de partida para la selección forward:
##
## Call:
## lm(formula = euribor3m ~ 1, data = data1)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.987 -2.277 1.236 1.340 1.424
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 3.621291 0.008546 423.7 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.734 on 41187 degrees of freedom
Aplicaremos tres métodos de selección para identificar el mejor conjunto de variables:
Comienza con todas las variables y elimina las menos significativas:
## Start: AIC=-126135.6
## euribor3m ~ age + campaign + pdays + previous + emp.var.rate +
## cons.price.idx + cons.conf.idx + nr.employed
##
## Df Sum of Sq RSS AIC
## - previous 1 0.07 1925.7 -126136
## <none> 1925.7 -126136
## - pdays 1 0.31 1926.0 -126131
## - age 1 0.37 1926.0 -126130
## - campaign 1 13.65 1939.3 -125847
## - cons.price.idx 1 285.33 2211.0 -120447
## - emp.var.rate 1 714.52 2640.2 -113140
## - cons.conf.idx 1 1955.26 3880.9 -97273
## - nr.employed 1 2674.80 4600.5 -90268
##
## Step: AIC=-126136.1
## euribor3m ~ age + campaign + pdays + emp.var.rate + cons.price.idx +
## cons.conf.idx + nr.employed
##
## Df Sum of Sq RSS AIC
## <none> 1925.7 -126136
## - pdays 1 0.24 1926.0 -126133
## - age 1 0.38 1926.1 -126130
## - campaign 1 13.68 1939.4 -125846
## - cons.price.idx 1 285.39 2211.1 -120446
## - emp.var.rate 1 716.85 2642.6 -113104
## - cons.conf.idx 1 1971.09 3896.8 -97107
## - nr.employed 1 2742.35 4668.1 -89669
##
## Call:
## lm(formula = euribor3m ~ age + campaign + pdays + emp.var.rate +
## cons.price.idx + cons.conf.idx + nr.employed, data = data1)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.57374 -0.17530 0.00285 0.13938 1.04186
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -9.212e+01 6.243e-01 -147.555 < 2e-16 ***
## age 2.933e-04 1.032e-04 2.842 0.00448 **
## campaign -6.665e-03 3.897e-04 -17.104 < 2e-16 ***
## pdays 1.412e-05 6.275e-06 2.250 0.02446 *
## emp.var.rate 4.120e-01 3.327e-03 123.811 < 2e-16 ***
## cons.price.idx 3.376e-01 4.322e-03 78.121 < 2e-16 ***
## cons.conf.idx 5.394e-02 2.627e-04 205.304 < 2e-16 ***
## nr.employed 1.283e-02 5.298e-05 242.162 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.2162 on 41180 degrees of freedom
## Multiple R-squared: 0.9845, Adjusted R-squared: 0.9845
## F-statistic: 3.726e+05 on 7 and 41180 DF, p-value: < 2.2e-16
Variables eliminadas: previous
Variables que permanecen: age,
campaign, pdays, emp.var.rate,
cons.price.idx, cons.conf.idx,
nr.employed
Comienza sin variables y agrega las más significativas:
# Forward selection
m_forw1 <- step(m_null1,
scope = list(lower = m_null1, upper = m_full1),
direction = "forward", trace = 1)## Start: AIC=45364.55
## euribor3m ~ 1
##
## Df Sum of Sq RSS AIC
## + emp.var.rate 1 117121 6782 -74291
## + nr.employed 1 110685 13218 -46808
## + cons.price.idx 1 58688 65215 18932
## + previous 1 25594 98309 35836
## + pdays 1 10922 112981 41566
## + cons.conf.idx 1 9554 114349 42061
## + campaign 1 2263 121641 44607
## + age 1 14 123889 45362
## <none> 123903 45365
##
## Step: AIC=-74290.98
## euribor3m ~ emp.var.rate
##
## Df Sum of Sq RSS AIC
## + nr.employed 1 2803.58 3978.9 -96256
## + cons.price.idx 1 1336.18 5446.3 -83326
## + cons.conf.idx 1 977.24 5805.3 -80697
## + previous 1 314.01 6468.5 -76241
## + pdays 1 149.33 6633.2 -75206
## + campaign 1 16.58 6765.9 -74390
## + age 1 15.34 6767.2 -74382
## <none> 6782.5 -74291
##
## Step: AIC=-96256.03
## euribor3m ~ emp.var.rate + nr.employed
##
## Df Sum of Sq RSS AIC
## + cons.conf.idx 1 1756.42 2222.5 -120241
## + age 1 37.31 3941.6 -96642
## + campaign 1 25.10 3953.8 -96515
## + pdays 1 20.89 3958.0 -96471
## + previous 1 1.34 3977.6 -96268
## + cons.price.idx 1 0.45 3978.5 -96259
## <none> 3978.9 -96256
##
## Step: AIC=-120241
## euribor3m ~ emp.var.rate + nr.employed + cons.conf.idx
##
## Df Sum of Sq RSS AIC
## + cons.price.idx 1 282.525 1940.0 -125839
## + campaign 1 10.553 2211.9 -120435
## + age 1 0.653 2221.8 -120251
## <none> 2222.5 -120241
## + pdays 1 0.107 2222.4 -120241
## + previous 1 0.012 2222.5 -120239
##
## Step: AIC=-125838.9
## euribor3m ~ emp.var.rate + nr.employed + cons.conf.idx + cons.price.idx
##
## Df Sum of Sq RSS AIC
## + campaign 1 13.6204 1926.3 -126127
## + age 1 0.3257 1939.6 -125844
## + pdays 1 0.2160 1939.8 -125841
## <none> 1940.0 -125839
## + previous 1 0.0025 1940.0 -125837
##
## Step: AIC=-126127.1
## euribor3m ~ emp.var.rate + nr.employed + cons.conf.idx + cons.price.idx +
## campaign
##
## Df Sum of Sq RSS AIC
## + age 1 0.37149 1926.0 -126133
## + pdays 1 0.23045 1926.1 -126130
## <none> 1926.3 -126127
## + previous 1 0.00000 1926.3 -126125
##
## Step: AIC=-126133
## euribor3m ~ emp.var.rate + nr.employed + cons.conf.idx + cons.price.idx +
## campaign + age
##
## Df Sum of Sq RSS AIC
## + pdays 1 0.236737 1925.7 -126136
## <none> 1926.0 -126133
## + previous 1 0.000118 1926.0 -126131
##
## Step: AIC=-126136.1
## euribor3m ~ emp.var.rate + nr.employed + cons.conf.idx + cons.price.idx +
## campaign + age + pdays
##
## Df Sum of Sq RSS AIC
## <none> 1925.7 -126136
## + previous 1 0.071472 1925.7 -126136
##
## Call:
## lm(formula = euribor3m ~ emp.var.rate + nr.employed + cons.conf.idx +
## cons.price.idx + campaign + age + pdays, data = data1)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.57374 -0.17530 0.00285 0.13938 1.04186
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -9.212e+01 6.243e-01 -147.555 < 2e-16 ***
## emp.var.rate 4.120e-01 3.327e-03 123.811 < 2e-16 ***
## nr.employed 1.283e-02 5.298e-05 242.162 < 2e-16 ***
## cons.conf.idx 5.394e-02 2.627e-04 205.304 < 2e-16 ***
## cons.price.idx 3.376e-01 4.322e-03 78.121 < 2e-16 ***
## campaign -6.665e-03 3.897e-04 -17.104 < 2e-16 ***
## age 2.933e-04 1.032e-04 2.842 0.00448 **
## pdays 1.412e-05 6.275e-06 2.250 0.02446 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.2162 on 41180 degrees of freedom
## Multiple R-squared: 0.9845, Adjusted R-squared: 0.9845
## F-statistic: 3.726e+05 on 7 and 41180 DF, p-value: < 2.2e-16
Combina forward y backward en cada paso:
# Método híbrido (stepwise)
m_hyb1 <- step(m_null1,
scope = list(lower = m_null1, upper = m_full1),
direction = "both", trace = 1)## Start: AIC=45364.55
## euribor3m ~ 1
##
## Df Sum of Sq RSS AIC
## + emp.var.rate 1 117121 6782 -74291
## + nr.employed 1 110685 13218 -46808
## + cons.price.idx 1 58688 65215 18932
## + previous 1 25594 98309 35836
## + pdays 1 10922 112981 41566
## + cons.conf.idx 1 9554 114349 42061
## + campaign 1 2263 121641 44607
## + age 1 14 123889 45362
## <none> 123903 45365
##
## Step: AIC=-74290.98
## euribor3m ~ emp.var.rate
##
## Df Sum of Sq RSS AIC
## + nr.employed 1 2804 3979 -96256
## + cons.price.idx 1 1336 5446 -83326
## + cons.conf.idx 1 977 5805 -80697
## + previous 1 314 6468 -76241
## + pdays 1 149 6633 -75206
## + campaign 1 17 6766 -74390
## + age 1 15 6767 -74382
## <none> 6782 -74291
## - emp.var.rate 1 117121 123903 45365
##
## Step: AIC=-96256.03
## euribor3m ~ emp.var.rate + nr.employed
##
## Df Sum of Sq RSS AIC
## + cons.conf.idx 1 1756.4 2222.5 -120241
## + age 1 37.3 3941.6 -96642
## + campaign 1 25.1 3953.8 -96515
## + pdays 1 20.9 3958.0 -96471
## + previous 1 1.3 3977.6 -96268
## + cons.price.idx 1 0.5 3978.5 -96259
## <none> 3978.9 -96256
## - nr.employed 1 2803.6 6782.5 -74291
## - emp.var.rate 1 9239.5 13218.4 -46808
##
## Step: AIC=-120241
## euribor3m ~ emp.var.rate + nr.employed + cons.conf.idx
##
## Df Sum of Sq RSS AIC
## + cons.price.idx 1 282.5 1940.0 -125839
## + campaign 1 10.6 2211.9 -120435
## + age 1 0.7 2221.8 -120251
## <none> 2222.5 -120241
## + pdays 1 0.1 2222.4 -120241
## + previous 1 0.0 2222.5 -120239
## - cons.conf.idx 1 1756.4 3978.9 -96256
## - nr.employed 1 3582.8 5805.3 -80697
## - emp.var.rate 1 6818.5 9041.0 -62450
##
## Step: AIC=-125838.9
## euribor3m ~ emp.var.rate + nr.employed + cons.conf.idx + cons.price.idx
##
## Df Sum of Sq RSS AIC
## + campaign 1 13.62 1926.3 -126127
## + age 1 0.33 1939.6 -125844
## + pdays 1 0.22 1939.8 -125841
## <none> 1940.0 -125839
## + previous 1 0.00 1940.0 -125837
## - cons.price.idx 1 282.53 2222.5 -120241
## - emp.var.rate 1 715.34 2655.3 -112912
## - cons.conf.idx 1 2038.49 3978.5 -96259
## - nr.employed 1 2826.88 4766.8 -88812
##
## Step: AIC=-126127.1
## euribor3m ~ emp.var.rate + nr.employed + cons.conf.idx + cons.price.idx +
## campaign
##
## Df Sum of Sq RSS AIC
## + age 1 0.37 1926.0 -126133
## + pdays 1 0.23 1926.1 -126130
## <none> 1926.3 -126127
## + previous 1 0.00 1926.3 -126125
## - campaign 1 13.62 1940.0 -125839
## - cons.price.idx 1 285.59 2211.9 -120435
## - emp.var.rate 1 716.48 2642.8 -113104
## - cons.conf.idx 1 2027.25 3953.6 -96515
## - nr.employed 1 2835.09 4761.4 -88857
##
## Step: AIC=-126133
## euribor3m ~ emp.var.rate + nr.employed + cons.conf.idx + cons.price.idx +
## campaign + age
##
## Df Sum of Sq RSS AIC
## + pdays 1 0.24 1925.7 -126136
## <none> 1926.0 -126133
## + previous 1 0.00 1926.0 -126131
## - age 1 0.37 1926.3 -126127
## - campaign 1 13.67 1939.6 -125844
## - cons.price.idx 1 285.25 2211.2 -120446
## - emp.var.rate 1 716.74 2642.7 -113104
## - cons.conf.idx 1 1990.13 3916.1 -96905
## - nr.employed 1 2835.19 4761.2 -88857
##
## Step: AIC=-126136.1
## euribor3m ~ emp.var.rate + nr.employed + cons.conf.idx + cons.price.idx +
## campaign + age + pdays
##
## Df Sum of Sq RSS AIC
## <none> 1925.7 -126136
## + previous 1 0.07 1925.7 -126136
## - pdays 1 0.24 1926.0 -126133
## - age 1 0.38 1926.1 -126130
## - campaign 1 13.68 1939.4 -125846
## - cons.price.idx 1 285.39 2211.1 -120446
## - emp.var.rate 1 716.85 2642.6 -113104
## - cons.conf.idx 1 1971.09 3896.8 -97107
## - nr.employed 1 2742.35 4668.1 -89669
##
## Call:
## lm(formula = euribor3m ~ emp.var.rate + nr.employed + cons.conf.idx +
## cons.price.idx + campaign + age + pdays, data = data1)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.57374 -0.17530 0.00285 0.13938 1.04186
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -9.212e+01 6.243e-01 -147.555 < 2e-16 ***
## emp.var.rate 4.120e-01 3.327e-03 123.811 < 2e-16 ***
## nr.employed 1.283e-02 5.298e-05 242.162 < 2e-16 ***
## cons.conf.idx 5.394e-02 2.627e-04 205.304 < 2e-16 ***
## cons.price.idx 3.376e-01 4.322e-03 78.121 < 2e-16 ***
## campaign -6.665e-03 3.897e-04 -17.104 < 2e-16 ***
## age 2.933e-04 1.032e-04 2.842 0.00448 **
## pdays 1.412e-05 6.275e-06 2.250 0.02446 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.2162 on 41180 degrees of freedom
## Multiple R-squared: 0.9845, Adjusted R-squared: 0.9845
## F-statistic: 3.726e+05 on 7 and 41180 DF, p-value: < 2.2e-16
El AIC (Akaike Information Criterion) permite comparar modelos: valores más bajos indican mejor ajuste.
# Extraer AIC de cada método
AIC_back1 <- AIC(m_back1)
AIC_forw1 <- AIC(m_forw1)
AIC_hyb1 <- AIC(m_hyb1)
# Tabla comparativa
AIC_comp1 <- data.frame(
Metodo = c("Backward", "Forward", "Híbrido"),
AIC = c(AIC_back1, AIC_forw1, AIC_hyb1)
)
# Mostrar tabla
knitr::kable(AIC_comp1,
caption = "Comparación de AIC entre métodos de selección",
align = 'c')| Metodo | AIC |
|---|---|
| Backward | -9247.597 |
| Forward | -9247.597 |
| Híbrido | -9247.597 |
Conclusión: Los tres métodos convergen al mismo modelo con AIC ≈ -9249.60
# Seleccionamos el modelo backward como modelo final
m_final1 <- m_back1
# Resumen detallado
summary(m_final1)##
## Call:
## lm(formula = euribor3m ~ age + campaign + pdays + emp.var.rate +
## cons.price.idx + cons.conf.idx + nr.employed, data = data1)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.57374 -0.17530 0.00285 0.13938 1.04186
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -9.212e+01 6.243e-01 -147.555 < 2e-16 ***
## age 2.933e-04 1.032e-04 2.842 0.00448 **
## campaign -6.665e-03 3.897e-04 -17.104 < 2e-16 ***
## pdays 1.412e-05 6.275e-06 2.250 0.02446 *
## emp.var.rate 4.120e-01 3.327e-03 123.811 < 2e-16 ***
## cons.price.idx 3.376e-01 4.322e-03 78.121 < 2e-16 ***
## cons.conf.idx 5.394e-02 2.627e-04 205.304 < 2e-16 ***
## nr.employed 1.283e-02 5.298e-05 242.162 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.2162 on 41180 degrees of freedom
## Multiple R-squared: 0.9845, Adjusted R-squared: 0.9845
## F-statistic: 3.726e+05 on 7 and 41180 DF, p-value: < 2.2e-16
\[ \text{euribor3m} = \beta_0 + \beta_1 \cdot \text{age} + \beta_2 \cdot \text{campaign} + \beta_3 \cdot \text{pdays} + \] \[ \beta_4 \cdot \text{emp.var.rate} + \beta_5 \cdot \text{cons.price.idx} + \beta_6 \cdot \text{cons.conf.idx} + \beta_7 \cdot \text{nr.employed} \]
# Extraer coeficientes
coef_tabla <- summary(m_final1)$coefficients
# Mostrar tabla formateada
knitr::kable(coef_tabla,
caption = "Coeficientes del Modelo Final",
digits = 6)| Estimate | Std. Error | t value | Pr(>|t|) | |
|---|---|---|---|---|
| (Intercept) | -92.121302 | 0.624316 | -147.555489 | 0.000000 |
| age | 0.000293 | 0.000103 | 2.842248 | 0.004482 |
| campaign | -0.006665 | 0.000390 | -17.104396 | 0.000000 |
| pdays | 0.000014 | 0.000006 | 2.249974 | 0.024456 |
| emp.var.rate | 0.411966 | 0.003327 | 123.810883 | 0.000000 |
| cons.price.idx | 0.337633 | 0.004322 | 78.120888 | 0.000000 |
| cons.conf.idx | 0.053941 | 0.000263 | 205.304002 | 0.000000 |
| nr.employed | 0.012830 | 0.000053 | 242.161682 | 0.000000 |
# R-cuadrado
r2 <- summary(m_final1)$r.squared
r2_adj <- summary(m_final1)$adj.r.squared
# Error estándar residual
rse <- summary(m_final1)$sigma
# Crear tabla de métricas
metricas <- data.frame(
Metrica = c("R²", "R² Ajustado", "Error Estándar Residual", "AIC"),
Valor = c(r2, r2_adj, rse, AIC(m_final1))
)
knitr::kable(metricas,
caption = "Métricas de Calidad del Modelo",
digits = 4,
align = 'lr')| Metrica | Valor |
|---|---|
| R² | 0.9845 |
| R² Ajustado | 0.9845 |
| Error Estándar Residual | 0.2162 |
| AIC | -9247.5973 |
Observaciones:
Modelo robusto: El R² de 98.45% indica un ajuste excelente
Variables clave: Las variables
macroeconómicas (emp.var.rate,
cons.price.idx) son los predictores más importantes del
euribor3m
Selección consistente: Los tres métodos (backward, forward, híbrido) convergieron al mismo modelo, confirmando su solidez
Variable eliminada: previous
(contactos previos) no aporta valor significativo al modelo
Aplicabilidad: Este modelo puede usarse para:
datos-banco.csv