# Librerías necesarias
library(tidyverse)
## Warning: package 'purrr' was built under R version 4.4.3
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ ggplot2   3.5.1     ✔ tibble    3.2.1
## ✔ lubridate 1.9.3     ✔ tidyr     1.3.1
## ✔ purrr     1.0.4     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(readxl)
## Warning: package 'readxl' was built under R version 4.4.3
library(lubridate)
library(MASS)
## 
## Adjuntando el paquete: 'MASS'
## 
## The following object is masked from 'package:dplyr':
## 
##     select
library(caret)
## Warning: package 'caret' was built under R version 4.4.3
## Cargando paquete requerido: lattice
## 
## Adjuntando el paquete: 'caret'
## 
## The following object is masked from 'package:purrr':
## 
##     lift
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"))
    }
  }
}

======================================== 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
# Asumiendo que tu dataframe ya está cargado y se llama data
analisis_univariado_dataframe(data)
## Cargando paquete requerido: summarytools
## Warning: package 'summarytools' was built under R version 4.4.3
## 
## Adjuntando el paquete: 'summarytools'
## The following object is masked from 'package:tibble':
## 
##     view
## 
## 
## ========================================
## 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

Analisis Bivariado

# 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)
## Warning: package 'corrplot' was built under R version 4.4.3
## corrplot 0.95 loaded
corrplot(correlaciones, method = "color", addCoef.col = "black", number.cex = 0.7, tl.col = "black")

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")
## `geom_smooth()` using formula = 'y ~ x'

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")
## `geom_smooth()` using formula = 'y ~ x'

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")

PLANTEAMIENTO DE LOS MODELOS DE REGRESIÓN LINEAL SIMPLE

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
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
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

Elección del mejor modelo

Validación del Modelo

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

PUNTO 2 – Regresión Lineal Múltiple

Modelo A

modeloA <- 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

Modelo A modificado

modeloA_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

Modelo B

modeloB <- 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

Modelo B modificado

modeloB_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

Modelo Escogido

Modelo B modificado

Validación de supuestos

Residuos vs valores ajustados

plot(modeloB_mod$fitted.values, modeloB_mod$residuals,
     main = "Residuos vs Valores Ajustados",
     xlab = "Valores ajustados", ylab = "Residuos")
abline(h = 0, col = "red")

Histograma de residuos

hist(modeloB_mod$residuals, main = "Distribución de Residuos", col = "lightgray")

Prueba de normalidad

shapiro.test(modeloB_mod$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  modeloB_mod$residuals
## W = 0.97833, p-value = 0.6734

¿Es necesaria una transformación?

Pronóstico hipotético con el mejor modelo

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

Utilidad práctica del modelo

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