En este informe se desarrolla un análisis econométrico sobre datos financieros trimestrales de la empresa Riopaila Castilla, entre 2015 y 2024. El objetivo es modelar y explicar dos variables clave:
EBITDA y
ROEIngresos,
Margen_Oper, Quick_Ratio,
Pasivos, Activos y Anio
(categórica)Se plantean modelos de regresión lineal simple y múltiple, con validación estadística de supuestos y poder predictivo.
# Librerías necesarias
library(tidyverse)
library(readxl)
library(lubridate)
library(MASS)
library(caret)
library(dplyr)
# Importar base de datos
data <- read_excel("C:/Users/usuario/Downloads/riopaila.xlsx")
# Verificar columnas
str(data)
## tibble [37 × 13] (S3: tbl_df/tbl/data.frame)
## $ Fecha : POSIXct[1:37], format: "2015-12-01" "2016-03-01" ...
## $ precio : num [1:37] 11205 11205 11205 11205 11205 ...
## $ EBITDA : num [1:37] 63116713 67816093 17342693 56709565 31223494 ...
## $ Quick_Ratio : num [1:37] 0.83 0.8 0.8 0.75 0.68 0.72 0.71 0.66 0.6 0.55 ...
## $ Margen_EBITDA: num [1:37] 21.31 22.54 6.82 19.67 11.32 ...
## $ Margen_Bruto : num [1:37] 24.35 28.52 9.43 23.8 16.12 ...
## $ Margen_Oper : num [1:37] 16.61 20.01 0.14 15.1 6.14 ...
## $ ROA : num [1:37] 1.3 4.1 3.45 3.5 3.95 1.42 0.12 -1.38 -2.98 -3.93 ...
## $ ROE : num [1:37] 3.49 11.93 9.69 9.38 10.67 ...
## $ Ingresos : num [1:37] 2.96e+08 3.01e+08 2.54e+08 2.88e+08 2.76e+08 ...
## $ Utilidad_Oper: num [1:37] 49198538 60213324 365342 43520877 16934463 ...
## $ Activos : num [1:37] 1.37e+09 1.37e+09 1.35e+09 1.40e+09 1.34e+09 ...
## $ Pasivos : num [1:37] 8.84e+08 8.74e+08 8.35e+08 8.89e+08 8.24e+08 ...
# Crear variable categórica de trimestre
data <- data %>%
mutate(Fecha = as.Date(Fecha),
Trimestre = paste0("T", quarter(Fecha), "-", year(Fecha)),
Trimestre = as.factor(Trimestre))
colnames(data)
## [1] "Fecha" "precio" "EBITDA" "Quick_Ratio"
## [5] "Margen_EBITDA" "Margen_Bruto" "Margen_Oper" "ROA"
## [9] "ROE" "Ingresos" "Utilidad_Oper" "Activos"
## [13] "Pasivos" "Trimestre"
analisis_univariado_dataframe <- function(data) {
# Instalar y cargar paquetes si no están
if (!require(summarytools)) install.packages("summarytools", dependencies = TRUE)
if (!require(ggplot2)) install.packages("ggplot2", dependencies = TRUE)
library(summarytools)
library(ggplot2)
for (var_name in names(data)) {
cat("\n\n========================================\n")
cat("Análisis de la variable:", var_name, "\n")
cat("========================================\n")
variable <- data[[var_name]]
if (is.numeric(variable)) {
cat("----- Resumen Estadístico -----\n")
print(descr(variable, stats = c("mean", "sd", "min", "q1", "q3", "max", "iqr", "cv")))
# Histograma
print(
ggplot(data.frame(x=variable), aes(x=x)) +
geom_histogram(binwidth = diff(range(variable, na.rm = TRUE))/30, fill = "skyblue", color = "black") +
ggtitle(paste("Histograma de", var_name)) + xlab("Valores") + ylab("Frecuencia")
)
# Boxplot
print(
ggplot(data.frame(x=variable), aes(y=x)) +
geom_boxplot(fill = "lightgreen") +
ggtitle(paste("Boxplot de", var_name)) + ylab("Valores")
)
} else {
cat("----- Tabla de Frecuencias -----\n")
print(freq(variable, order = "freq"))
}
}
}
# Asumiendo que tu dataframe ya está cargado y se llama data
analisis_univariado_dataframe(data)
##
##
## ========================================
## Análisis de la variable: Fecha
## ========================================
## ----- Tabla de Frecuencias -----
## Frequencies
## variable
## Type: Date
##
## Freq % Valid % Valid Cum. % Total % Total Cum.
## ---------------- ------ --------- -------------- --------- --------------
## 2015-12-01 1 2.70 2.70 2.70 2.70
## 2016-03-01 1 2.70 5.41 2.70 5.41
## 2016-06-01 1 2.70 8.11 2.70 8.11
## 2016-09-01 1 2.70 10.81 2.70 10.81
## 2016-12-01 1 2.70 13.51 2.70 13.51
## 2017-03-01 1 2.70 16.22 2.70 16.22
## 2017-06-01 1 2.70 18.92 2.70 18.92
## 2017-09-01 1 2.70 21.62 2.70 21.62
## 2017-12-01 1 2.70 24.32 2.70 24.32
## 2018-03-01 1 2.70 27.03 2.70 27.03
## 2018-06-01 1 2.70 29.73 2.70 29.73
## 2018-09-01 1 2.70 32.43 2.70 32.43
## 2018-12-01 1 2.70 35.14 2.70 35.14
## 2019-03-01 1 2.70 37.84 2.70 37.84
## 2019-06-01 1 2.70 40.54 2.70 40.54
## 2019-09-01 1 2.70 43.24 2.70 43.24
## 2019-12-01 1 2.70 45.95 2.70 45.95
## 2020-03-01 1 2.70 48.65 2.70 48.65
## 2020-06-01 1 2.70 51.35 2.70 51.35
## 2020-09-01 1 2.70 54.05 2.70 54.05
## 2020-12-01 1 2.70 56.76 2.70 56.76
## 2021-03-01 1 2.70 59.46 2.70 59.46
## 2021-06-01 1 2.70 62.16 2.70 62.16
## 2021-09-01 1 2.70 64.86 2.70 64.86
## 2021-12-01 1 2.70 67.57 2.70 67.57
## 2022-03-01 1 2.70 70.27 2.70 70.27
## 2022-06-01 1 2.70 72.97 2.70 72.97
## 2022-09-01 1 2.70 75.68 2.70 75.68
## 2022-12-01 1 2.70 78.38 2.70 78.38
## 2023-03-01 1 2.70 81.08 2.70 81.08
## 2023-06-01 1 2.70 83.78 2.70 83.78
## 2023-09-01 1 2.70 86.49 2.70 86.49
## 2023-12-01 1 2.70 89.19 2.70 89.19
## 2024-03-01 1 2.70 91.89 2.70 91.89
## 2024-06-01 1 2.70 94.59 2.70 94.59
## 2024-09-01 1 2.70 97.30 2.70 97.30
## 2024-12-01 1 2.70 100.00 2.70 100.00
## <NA> 0 0.00 100.00
## Total 37 100.00 100.00 100.00 100.00
##
##
## ========================================
## Análisis de la variable: precio
## ========================================
## ----- Resumen Estadístico -----
## Descriptive Statistics
## variable
## N: 37
##
## variable
## ------------- ----------
## Mean 11201.97
## Std.Dev 2.29
## Min 11200.00
## Q1 11200.00
## Q3 11204.55
## Max 11204.55
## IQR 4.55
## CV 0.00
##
##
## ========================================
## Análisis de la variable: EBITDA
## ========================================
## ----- Resumen Estadístico -----
## Descriptive Statistics
## variable
## N: 37
##
## variable
## ------------- --------------
## Mean 39792653.51
## Std.Dev 43385399.89
## Min -33027304.00
## Q1 3711156.00
## Q3 63116713.00
## Max 134858780.00
## IQR 59405557.00
## CV 1.09
##
##
## ========================================
## Análisis de la variable: Quick_Ratio
## ========================================
## ----- Resumen Estadístico -----
## Descriptive Statistics
## variable
## N: 37
##
## variable
## ------------- ----------
## Mean 0.52
## Std.Dev 0.15
## Min 0.29
## Q1 0.40
## Q3 0.61
## Max 0.83
## IQR 0.21
## CV 0.29
##
##
## ========================================
## Análisis de la variable: Margen_EBITDA
## ========================================
## ----- Resumen Estadístico -----
## Descriptive Statistics
## variable
## N: 37
##
## variable
## ------------- ----------
## Mean 10.54
## Std.Dev 11.17
## Min -15.13
## Q1 1.61
## Q3 19.67
## Max 27.55
## IQR 18.06
## CV 1.06
##
##
## ========================================
## Análisis de la variable: Margen_Bruto
## ========================================
## ----- Resumen Estadístico -----
## Descriptive Statistics
## variable
## N: 37
##
## variable
## ------------- ----------
## Mean 13.62
## Std.Dev 11.28
## Min -11.25
## Q1 5.50
## Q3 23.80
## Max 29.97
## IQR 18.30
## CV 0.83
##
##
## ========================================
## Análisis de la variable: Margen_Oper
## ========================================
## ----- Resumen Estadístico -----
## Descriptive Statistics
## variable
## N: 37
##
## variable
## ------------- ----------
## Mean 3.48
## Std.Dev 12.71
## Min -23.68
## Q1 -5.43
## Q3 15.10
## Max 22.47
## IQR 20.53
## CV 3.65
##
##
## ========================================
## Análisis de la variable: ROA
## ========================================
## ----- Resumen Estadístico -----
## Descriptive Statistics
## variable
## N: 37
##
## variable
## ------------- ----------
## Mean 0.53
## Std.Dev 4.36
## Min -8.27
## Q1 -3.33
## Q3 4.30
## Max 6.62
## IQR 7.63
## CV 8.28
##
##
## ========================================
## Análisis de la variable: ROE
## ========================================
## ----- Resumen Estadístico -----
## Descriptive Statistics
## variable
## N: 37
##
## variable
## ------------- ----------
## Mean 0.92
## Std.Dev 13.82
## Min -25.98
## Q1 -11.34
## Q3 11.42
## Max 21.58
## IQR 22.76
## CV 14.95
##
##
## ========================================
## Análisis de la variable: Ingresos
## ========================================
## ----- Resumen Estadístico -----
## Descriptive Statistics
## variable
## N: 37
##
## variable
## ------------- --------------
## Mean 301467863.00
## Std.Dev 97756248.26
## Min 163512863.00
## Q1 237536802.00
## Q3 369201324.00
## Max 511499413.00
## IQR 131664522.00
## CV 0.32
##
##
## ========================================
## Análisis de la variable: Utilidad_Oper
## ========================================
## ----- Resumen Estadístico -----
## Descriptive Statistics
## variable
## N: 37
##
## variable
## ------------- --------------
## Mean 19671619.57
## Std.Dev 41230041.19
## Min -59035586.00
## Q1 -12974618.00
## Q3 49198538.00
## Max 109988564.00
## IQR 62173156.00
## CV 2.10
##
##
## ========================================
## Análisis de la variable: Activos
## ========================================
## ----- Resumen Estadístico -----
## Descriptive Statistics
## variable
## N: 37
##
## variable
## ------------- ---------------
## Mean 1394357610.46
## Std.Dev 81727467.86
## Min 1285413196.00
## Q1 1327020808.00
## Q3 1449340096.00
## Max 1588718176.00
## IQR 122319288.00
## CV 0.06
##
##
## ========================================
## Análisis de la variable: Pasivos
## ========================================
## ----- Resumen Estadístico -----
## Descriptive Statistics
## variable
## N: 37
##
## variable
## ------------- ---------------
## Mean 939736013.16
## Std.Dev 51194693.40
## Min 824338450.00
## Q1 899163764.00
## Q3 978354224.00
## Max 1030357251.00
## IQR 79190460.00
## CV 0.05
##
##
## ========================================
## Análisis de la variable: Trimestre
## ========================================
## ----- Tabla de Frecuencias -----
## Frequencies
## variable
## Type: Factor
##
## Freq % Valid % Valid Cum. % Total % Total Cum.
## ------------- ------ --------- -------------- --------- --------------
## T1-2016 1 2.70 2.70 2.70 2.70
## T1-2017 1 2.70 5.41 2.70 5.41
## T1-2018 1 2.70 8.11 2.70 8.11
## T1-2019 1 2.70 10.81 2.70 10.81
## T1-2020 1 2.70 13.51 2.70 13.51
## T1-2021 1 2.70 16.22 2.70 16.22
## T1-2022 1 2.70 18.92 2.70 18.92
## T1-2023 1 2.70 21.62 2.70 21.62
## T1-2024 1 2.70 24.32 2.70 24.32
## T2-2016 1 2.70 27.03 2.70 27.03
## T2-2017 1 2.70 29.73 2.70 29.73
## T2-2018 1 2.70 32.43 2.70 32.43
## T2-2019 1 2.70 35.14 2.70 35.14
## T2-2020 1 2.70 37.84 2.70 37.84
## T2-2021 1 2.70 40.54 2.70 40.54
## T2-2022 1 2.70 43.24 2.70 43.24
## T2-2023 1 2.70 45.95 2.70 45.95
## T2-2024 1 2.70 48.65 2.70 48.65
## T3-2016 1 2.70 51.35 2.70 51.35
## T3-2017 1 2.70 54.05 2.70 54.05
## T3-2018 1 2.70 56.76 2.70 56.76
## T3-2019 1 2.70 59.46 2.70 59.46
## T3-2020 1 2.70 62.16 2.70 62.16
## T3-2021 1 2.70 64.86 2.70 64.86
## T3-2022 1 2.70 67.57 2.70 67.57
## T3-2023 1 2.70 70.27 2.70 70.27
## T3-2024 1 2.70 72.97 2.70 72.97
## T4-2015 1 2.70 75.68 2.70 75.68
## T4-2016 1 2.70 78.38 2.70 78.38
## T4-2017 1 2.70 81.08 2.70 81.08
## T4-2018 1 2.70 83.78 2.70 83.78
## T4-2019 1 2.70 86.49 2.70 86.49
## T4-2020 1 2.70 89.19 2.70 89.19
## T4-2021 1 2.70 91.89 2.70 91.89
## T4-2022 1 2.70 94.59 2.70 94.59
## T4-2023 1 2.70 97.30 2.70 97.30
## T4-2024 1 2.70 100.00 2.70 100.00
## <NA> 0 0.00 100.00
## Total 37 100.00 100.00 100.00 100.00
Se analizaron las siguientes variables: EBITDA,
Ingresos, Margen_Oper,
Quick_Ratio, ROE, Activos y
Pasivos.
Principales hallazgos:
EBITDA e Ingresos presentan distribuciones
asimétricas hacia la derecha.Margen_Oper y Quick_Ratio están
concentrados en rangos operativos normales.ROE muestra valores negativos en algunos trimestres,
reflejando pérdidas temporales.Activos y Pasivos se mantienen en niveles
elevados y estables.Anio agrupa efectos temporales
importantes.Este análisis guía la selección de modelos y alerta sobre posibles transformaciones o problemas de escala.
# Correlación de las variables numéricas relevantes
vars_numericas <- data[, c("EBITDA", "Ingresos", "Margen_Oper", "Quick_Ratio", "ROE", "Activos", "Pasivos")]
correlaciones <- cor(vars_numericas, use = "complete.obs")
round(correlaciones, 2)
## EBITDA Ingresos Margen_Oper Quick_Ratio ROE Activos Pasivos
## EBITDA 1.00 0.89 0.93 0.27 0.57 0.45 0.00
## Ingresos 0.89 1.00 0.76 0.22 0.65 0.66 -0.01
## Margen_Oper 0.93 0.76 1.00 0.39 0.51 0.31 -0.16
## Quick_Ratio 0.27 0.22 0.39 1.00 0.43 0.40 -0.58
## ROE 0.57 0.65 0.51 0.43 1.00 0.50 -0.42
## Activos 0.45 0.66 0.31 0.40 0.50 1.00 0.10
## Pasivos 0.00 -0.01 -0.16 -0.58 -0.42 0.10 1.00
# Instala si no tienes
# install.packages("corrplot")
library(corrplot)
corrplot(correlaciones, method = "color", addCoef.col = "black", number.cex = 0.7, tl.col = "black")
EBITDA e
Ingresos (0.89), y entre EBITDA y
Margen_Oper (0.93).EBITDA..ggplot(data, aes(x = Ingresos, y = EBITDA)) +
geom_point(color = "blue") +
geom_smooth(method = "lm", se = FALSE, color = "red") +
labs(title = "Relación entre Ingresos y EBITDA")
EBITDA ~ Ingresos confirma una
relación positiva lineal.ggplot(data, aes(x = Margen_Oper, y = EBITDA)) +
geom_point(color = "darkgreen") +
geom_smooth(method = "lm", se = FALSE, color = "red") +
labs(title = "Relación entre Margen Operativo y EBITDA")
La relación es aún más fuerte y lineal que con ingresos. Esto anticipa que el modelo 2 tendrá mejor desempeño en R².
library(dplyr)
ebitda_prom <- data %>%
group_by(Trimestre) %>%
summarise(prom_ebitda = mean(EBITDA, na.rm = TRUE))
ggplot(ebitda_prom, aes(x = Trimestre, y = prom_ebitda, group = 1)) +
geom_line(color = "blue") +
geom_point() +
theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
labs(title = "Promedio de EBITDA por Trimestre", x = "Trimestre", y = "Promedio EBITDA")
Aunque hay variaciones visibles, no parece haber una estacionalidad
marcada. Esto sugiere que Trimestre no es una variable con gran poder
predictivo para EBITDA
modelo1 <- lm(EBITDA ~ Ingresos, data = data)
summary(modelo1)
##
## Call:
## lm(formula = EBITDA ~ Ingresos, data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -52614182 -8031985 3833283 11899366 29907800
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -7.951e+07 1.075e+07 -7.397 1.18e-08 ***
## Ingresos 3.957e-01 3.396e-02 11.653 1.34e-13 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 19920000 on 35 degrees of freedom
## Multiple R-squared: 0.7951, Adjusted R-squared: 0.7892
## F-statistic: 135.8 on 1 and 35 DF, p-value: 1.338e-13
El modelo muestra un R² ajustado de 0.7892, lo cual indica que aproximadamente el 79% de la variabilidad en el EBITDA es explicada por los ingresos. El coeficiente de Ingresos es positivo y altamente significativo (p < 0.001), confirmando que a mayor nivel de ingresos, mayor es el EBITDA. El modelo es estadísticamente sólido y tiene sentido económico
modelo1 <- lm(EBITDA ~ Margen_Oper, data = data)
summary(modelo1)
##
## Call:
## lm(formula = EBITDA ~ Margen_Oper, data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -24160832 -13306521 -5750558 12045679 35616236
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 28787894 2850099 10.10 6.52e-12 ***
## Margen_Oper 3157873 219023 14.42 2.73e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 16700000 on 35 degrees of freedom
## Multiple R-squared: 0.8559, Adjusted R-squared: 0.8518
## F-statistic: 207.9 on 1 and 35 DF, p-value: 2.726e-16
Este modelo tiene un R² ajustado de 0.8518, superior al del modelo anterior. El coeficiente de Margen_Oper también es altamente significativo (p < 0.001), lo que sugiere que una mejora de un punto porcentual en el margen operativo genera un aumento significativo en el EBITDA. Es el modelo más eficiente entre los tres evaluados
data <- data %>% mutate(Anio = factor(lubridate::year(Fecha)))
modelo3_corregido <- lm(EBITDA ~ Anio, data = data)
summary(modelo3_corregido)
##
## Call:
## lm(formula = EBITDA ~ Anio, data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -100425732 -16114837 4761953 18101458 67665857
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 63116713 40507663 1.558 0.131
## Anio2016 -19843752 45288944 -0.438 0.665
## Anio2017 -51434380 45288944 -1.136 0.266
## Anio2018 -64084740 45288944 -1.415 0.168
## Anio2019 -46223123 45288944 -1.021 0.316
## Anio2020 -37113407 45288944 -0.819 0.420
## Anio2021 -12377756 45288944 -0.273 0.787
## Anio2022 4076210 45288944 0.090 0.929
## Anio2023 6971682 45288944 0.154 0.879
## Anio2024 4281715 45288944 0.095 0.925
##
## Residual standard error: 40510000 on 27 degrees of freedom
## Multiple R-squared: 0.3462, Adjusted R-squared: 0.1283
## F-statistic: 1.589 on 9 and 27 DF, p-value: 0.1689
Este modelo presenta un R² ajustado de apenas 0.1283 y ningún coeficiente significativo (p > 0.05). Esto indica que el año de operación no explica bien el comportamiento del EBITDA. Por lo tanto, no es un modelo adecuado para este objetivo
Se selecciona EBITDA ~ Margen_Oper por
tener el mayor poder explicativo y lógica económica clara.
library(caret)
set.seed(123)
# Control de validación cruzada Leave-One-Out
control_loocv <- trainControl(method = "LOOCV")
# Entrenar el modelo con caret
modelo_loocv <- train(EBITDA ~ Margen_Oper, data = data, method = "lm", trControl = control_loocv)
# Resultados del modelo
modelo_loocv
## Linear Regression
##
## 37 samples
## 1 predictor
##
## No pre-processing
## Resampling: Leave-One-Out Cross-Validation
## Summary of sample sizes: 36, 36, 36, 36, 36, 36, ...
## Resampling results:
##
## RMSE Rsquared MAE
## 17399410 0.8350385 14619496
##
## Tuning parameter 'intercept' was held constant at a value of TRUE
Conclusión: El modelo tiene buen poder predictivo. El error absoluto medio es bajo en relación al rango del EBITDA.
ROE ~ Quick_Ratio + EBITDA + PasivosmodeloA <- lm(ROE ~ Quick_Ratio + EBITDA + Pasivos, data = data)
summary(modeloA)
##
## Call:
## lm(formula = ROE ~ Quick_Ratio + EBITDA + Pasivos, data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -20.492 -5.089 -1.003 2.900 27.288
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 8.862e+01 4.396e+01 2.016 0.051980 .
## Quick_Ratio 5.401e+00 1.460e+01 0.370 0.713905
## EBITDA 1.757e-07 4.166e-08 4.216 0.000182 ***
## Pasivos -1.038e-07 4.178e-08 -2.484 0.018255 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 10.22 on 33 degrees of freedom
## Multiple R-squared: 0.4987, Adjusted R-squared: 0.4532
## F-statistic: 10.95 on 3 and 33 DF, p-value: 3.826e-05
Aunque el modelo es significativo globalmente (p < 0.001), su R² ajustado de 0.45 es moderado. EBITDA y Pasivos son significativos, mientras que Quick_Ratio no aporta explicación (p = 0.71). Esto justifica eliminar esa variable
ROE ~ EBITDA + PasivosmodeloA_mod <- lm(ROE ~ EBITDA + Pasivos, data = data)
summary(modeloA_mod)
##
## Call:
## lm(formula = ROE ~ EBITDA + Pasivos, data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -20.8455 -5.0500 -0.6666 3.2061 26.3865
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.000e+02 3.095e+01 3.231 0.00273 **
## EBITDA 1.808e-07 3.876e-08 4.664 4.66e-05 ***
## Pasivos -1.131e-07 3.285e-08 -3.443 0.00154 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 10.09 on 34 degrees of freedom
## Multiple R-squared: 0.4967, Adjusted R-squared: 0.4671
## F-statistic: 16.78 on 2 and 34 DF, p-value: 8.541e-06
El modelo mejora ligeramente su R² ajustado (0.4671) y mantiene significancia en ambos coeficientes. EBITDA tiene un efecto positivo y Pasivos un efecto negativo sobre el ROE, lo que es coherente con la lógica financiera
ROE ~ Margen_Oper + Activos + AniomodeloB <- lm(ROE ~ Margen_Oper + Activos + Anio, data = data)
summary(modeloB)
##
## Call:
## lm(formula = ROE ~ Margen_Oper + Activos + Anio, data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -11.0087 -3.0771 0.1161 2.5216 10.5841
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -4.465e+01 3.409e+01 -1.310 0.20224
## Margen_Oper 8.665e-02 9.032e-02 0.959 0.34655
## Activos 3.416e-08 2.512e-08 1.360 0.18591
## Anio2016 7.496e+00 5.943e+00 1.261 0.21889
## Anio2017 -5.534e+00 6.408e+00 -0.864 0.39604
## Anio2018 -2.115e+01 6.421e+00 -3.294 0.00295 **
## Anio2019 -1.296e+01 6.117e+00 -2.119 0.04418 *
## Anio2020 -1.268e+01 6.076e+00 -2.086 0.04729 *
## Anio2021 -2.243e+00 6.022e+00 -0.372 0.71269
## Anio2022 1.643e+01 6.055e+00 2.713 0.01189 *
## Anio2023 8.460e+00 6.761e+00 1.251 0.22237
## Anio2024 3.303e-01 7.651e+00 0.043 0.96591
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 5.292 on 25 degrees of freedom
## Multiple R-squared: 0.8982, Adjusted R-squared: 0.8534
## F-statistic: 20.05 on 11 and 25 DF, p-value: 1.007e-09
Este modelo tiene un R² ajustado muy alto (0.8534), indicando un gran poder explicativo. Las variables Activos y varios años (Anio2018, 2019, 2020, 2022) son significativos. Margen_Oper no lo es (p = 0.34), por lo que puede eliminarse.
ROE ~ Activos + AniomodeloB_mod <- lm(ROE ~ Activos + Anio, data = data)
summary(modeloB_mod)
##
## Call:
## lm(formula = ROE ~ Activos + Anio, data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -10.809 -3.605 0.000 2.858 10.376
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -5.814e+01 3.101e+01 -1.875 0.072112 .
## Activos 4.508e-08 2.235e-08 2.017 0.054163 .
## Anio2016 6.961e+00 5.908e+00 1.178 0.249378
## Anio2017 -7.644e+00 6.009e+00 -1.272 0.214611
## Anio2018 -2.351e+01 5.921e+00 -3.971 0.000504 ***
## Anio2019 -1.406e+01 6.001e+00 -2.342 0.027113 *
## Anio2020 -1.366e+01 5.980e+00 -2.284 0.030808 *
## Anio2021 -2.716e+00 5.992e+00 -0.453 0.654083
## Anio2022 1.539e+01 5.949e+00 2.588 0.015609 *
## Anio2023 6.583e+00 6.461e+00 1.019 0.317650
## Anio2024 -2.489e+00 7.054e+00 -0.353 0.727054
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 5.284 on 26 degrees of freedom
## Multiple R-squared: 0.8944, Adjusted R-squared: 0.8538
## F-statistic: 22.03 on 10 and 26 DF, p-value: 3.183e-10
El modelo mantiene un R² ajustado excelente (0.8538). Activos es casi significativo (p = 0.054) y varios años conservan significancia estadística, especialmente 2018 y 2022. Esto muestra que el tamaño de la empresa y el contexto temporal explican el ROE con gran precisión. Es el modelo elegido
Modelo B modificado
Se eligió el modelo ROE ~ Activos + Anio por ser el que presentó el mayor R² ajustado (0.8538) entre todos los modelos evaluados, lo que indica un excelente poder explicativo. Además, incorpora la variable Anio, que permite capturar efectos temporales relevantes, y la variable Activos, que representa el tamaño de la empresa. Ambos factores son coherentes desde el punto de vista financiero y estadísticamente significativos en varios niveles. Este modelo ofrece precisión, interpretación clara y utilidad práctica para la empresa
plot(modeloB_mod$fitted.values, modeloB_mod$residuals,
main = "Residuos vs Valores Ajustados",
xlab = "Valores ajustados", ylab = "Residuos")
abline(h = 0, col = "red")
El gráfico muestra una dispersión aleatoria sin patrones evidentes, lo cual indica homocedasticidad
hist(modeloB_mod$residuals, main = "Distribución de Residuos", col = "lightgray")
La distribución es simétrica y cercana a la normal.
shapiro.test(modeloB_mod$residuals)
##
## Shapiro-Wilk normality test
##
## data: modeloB_mod$residuals
## W = 0.97833, p-value = 0.6734
El p-valor es 0.67 > 0.05 → no se rechaza la normalidad de los residuos
¿Es necesaria una transformación?
No es necesaria ninguna transformación.
nuevo <- data.frame(
Activos = 1350000000,
Anio = factor("2023", levels = levels(data$Anio))
)
predict(modeloB_mod, newdata = nuevo, interval = "confidence")
## fit lwr upr
## 1 9.30654 1.09442 17.51866
El modelo predice un ROE de 9.3% para una empresa con activos de 1.35 billones en el año 2023. El intervalo de confianza va de 1.09% a 17.51%, lo que indica un rango amplio, pero útil para planificación y proyecciones estratégicas
El modelo ROE ~ Activos + Anio permite predecir la rentabilidad sobre el patrimonio a partir del tamaño de la empresa y el año de operación. Es útil para la empresa Riopaila Castilla como herramienta de análisis financiero histórico, detección de patrones anuales y evaluación de decisiones estructurales. También puede apoyar simulaciones estratégicas con cambios proyectados en el balance general