Serie de Tiempo de Impuesto sobre la Renta mensual en Colombia

¿Qué son los impuestos?

Los impuestos son pagos obligatorios que deben realizar las personas y empresas al gobierno cuando generan utilidades sobre sus ingresos y cuando realizan compras de bienes y servicios. De esta forma, el gobierno obtiene recursos para financiar sus programas de desarrollo y proveer a la población de infraestructura.

¿Qué es el impuesto de renta?

El impuesto sobre la renta grava todos los ingresos que obtenga un contribuyente en el año, que sean susceptibles de producir incremento neto del patrimonio en el momento de su percepción, siempre que no hayan sido expresamente exceptuados, y considerando los costos y gastos en que se incurre para producirlos.

¿Cuál es la importancia de la recaudación de este impuesto?

En Colombia, los impuestos nacionales más relevantes son el Impuesto sobre la Renta y Complementarios (ISR), el Impuesto al Valor Agregado (IVA), el Impuesto Nacional al Consumo (INC), el Impuesto de Timbre Nacional (ITN) y el Impuesto al Patrimonio.

¿Quiénes deben pagar impuesto sobre la renta por ejemplo en el año actual?

Descripción de la serie de tiempo

Los datos de esta serie de tiempo corresponden al total mensual recaudado en millones de pesos de impuesto sobre la renta en Colombia desde el año 2000 hasta el año 2023 (288 datos).

Total recaudado en millones de pesos
Fecha I_Renta
2000-01-01 558409.1
2000-02-01 788813.6
2000-03-01 408698.7
2000-04-01 1071976.6
2000-05-01 510893.4
2000-06-01 921572.8

Se evidencia por medio del anterior gráfico que la serie de gráfico presenta tendencia y varianza marginal a simple vista. Por lo que es necesario como primera medida estabilizar la varianza por medio de la transformación Box-cox.

El gráfico interactivo nos ayuda cómo se comporta la serie en cuanto a si realmente se videncia que la varianza se estabiliza una vez se aplica las transformaciones para cada uno de los lambda.

Se puede ver que el lambda óptimo indica que la transformación apropiada a aplicar en este caso es una transformación logatirmo natural sobre nuestros datos originales.

Ahora bien, es preciso corroborar que no sea necesarioa aplicar una nueva transformación a nuestros datos, aplicando nuevamente la transformacvión box-cox, puues en caso de que ahora el lambda optimo de igual a 1 podríamos decir que no se requiere más transformaciones para estabilizar la varianza.

Vemos que como en efecto la serie presenta una varianza creciente o decreciente con respecto al tiempo, una transformación logarítmica estabiliza la varianza.

Análisis de tendencias

Análisis 1: Modelo lineal

Conforme al gráfico descriptivo anterior, se puede observar que la serie parece tener una tendencia lineal creciente, es decir, la podemos modelar como sigue:

\[\mu_t=\beta_0 + \beta_1 t \] Procedemos a estimar los parámetros de la tendencia determinista, con la cual obtenemos:

## 
## Call:
## lm(formula = ldatos ~ time(ldatos), na.action = NULL)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -0.5814 -0.3013 -0.1489  0.2024  1.4586 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  -2.009e+02  7.026e+00   -28.6   <2e-16 ***
## time(ldatos)  1.072e-01  3.492e-03    30.7   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.4106 on 286 degrees of freedom
## Multiple R-squared:  0.7672, Adjusted R-squared:  0.7664 
## F-statistic: 942.7 on 1 and 286 DF,  p-value: < 2.2e-16

Así, \(\beta_0=-2.009e+02\) y \(\beta_1=1.072e-01\) ambos significativos.

Eliminamos la tendencia con la predicción de la recta resultando la serie de la siguiente forma:

Se puede decir que la tendencia no se encuentra del todo removida de nuestra serie. Veamos cómo se comporta la autocorrelación en el gráfico de autocorrelación simple antes y después de quitar la tendencia.

Se evidencia un patrón que indica que se podría plantear un mejor modelo para la tendencia, (además de indica que la serie potencialmente puede tener un patrón cíclico) el cual será visto más adelante y proceder a removerla de nuestra serie.

Análisis 2: Promedio móvil

El promedio móvil es un método útil para descubrir ciertos rasgos en una serie de tiempo, como tendencias a largo plazo y componentes estacionales.En particular, si \(x_t\) representa las observaciones, entonces una forma de estimar la tendencia de la serie es:

\[m_t=\sum_{i=-k}^{k}a_jx_{t-j}\] Con \(a_j \geq 0\), \(\sum_{i=-k}^{k}a_j=1\).

Por medio de la función decompose se descompone una serie de tiempo en componentes estacionales, de tendencia e irregulares utilizando promedios móviles. Se ocupa del componente estacional aditivo o multiplicativo.

Seguiremos explorando otras formas dado que aunque decompose nos da idea del comportamiento de la tendencia y el componente estacional no resulta ser del todo confiable.

Análisis 3: estimacion STL

Se procede primero a realizar un ajuste de un modelo de la tendencia aplicando regresión LOESS utilizando un ajuste local cuadrático a nuestra serie.

## 'data.frame':    288 obs. of  2 variables:
##  $ Fecha   : Date, format: "2000-01-01" "2000-02-01" ...
##  $ Logdatos: num  13.2 13.6 12.9 13.9 13.1 ...
## # A tibble: 0 × 2
## # ℹ 2 variables: Fecha <date>, Logdatos <dbl>
Fecha Logdatos Logdatos_ajus
2000-01-01 13.23285 13.25861
2000-02-01 13.57829 13.27443
2000-03-01 12.92073 13.29019
2000-04-01 13.88501 13.30588
2000-05-01 13.14392 13.32150
2000-06-01 13.73384 13.33705

En la cual se evidencia un mejor ajuste a la tendencia que presenta la serie.

## tbl_ts [288 × 2] (S3: tbl_ts/tbl_df/tbl/data.frame)
##  $ index: mth [1:288] 2000 ene., 2000 feb., 2000 mar., 2000 abr., 2000 may., 200...
##  $ value: num [1:288] 13.2 13.6 12.9 13.9 13.1 ...
##  - attr(*, "key")= tibble [1 × 1] (S3: tbl_df/tbl/data.frame)
##   ..$ .rows: list<int> [1:1] 
##   .. ..$ : int [1:288] 1 2 3 4 5 6 7 8 9 10 ...
##   .. ..@ ptype: int(0) 
##  - attr(*, "index")= chr "index"
##   ..- attr(*, "ordered")= logi TRUE
##  - attr(*, "index2")= chr "index"
##  - attr(*, "interval")= interval [1:1] 1M
##   ..@ .regular: logi TRUE

Análisis 4: Diferencia ordinaria

Usando objeto tsibble

La diferenciación ordinaria de orden 1 elimina una tendencia lineal la cual se identificó al inicio.

Se observa que no es necesario diferenciar nuevamente por lo que ya no se muestra una tendencia en la serie, conforme a la figura presentada.

Análisis 5:explorando relaciones no lineales

Por medio de los siguientes gráficos se muestra una grilla de gráficos de la serie con relación a las variables rezagadas.En el gráfico de dispersión podemos ver que se muestra un ajuste no paramétrico, de la posible relación entre las variables al igual que una estimación de la autocorrelación.

Por medio de estas gráficas se pueden destacar varias cosas, entre ellas:

  • No hay evidencia gráfica de que haya presencia de relaciones no lineales en la serie.

  • Uno puede observar que existen relaciones lineales positivas en los rezagos \(h = 2, 10, 12\), mientras que negativas en los rezagos \(h = 1,3,11\), las demás parecen ser no significativas o no lineales

A continuación se presentan el gráfico de autocorrelación simple y autocorrelación parcial de la serie una vez se removió la tendencia bajo la diferenciación ordinaria:

En ambas gráficas podemos ver que se muestran periodicidades en las correlaciones que corresponden a valores separados por 12 unidades (meses).

También podemos ver que las observaciones con 12 meses o un año de diferencia están fuertemente correlacionadas positivamente.

Índice AMI (average mutual information): ayuda a cuantificar la cantidad de conocimiento obtenido sobre el valor de \(X_{t+d}\) al observar \(X_t\). Equivalentemente, el AMI es una medida de qué tanto el conocimiento de \(X\) reduce la incertidumbre acerca de \(Y\).

## $time.lag
##  [1]  0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
## [26] 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
## [51] 50 51 52
## 
## $mutual.information
##  [1] 2.2124556 0.8539219 0.4550302 0.3104813 0.2787669 0.3491996 0.3132826
##  [8] 0.3445572 0.2770348 0.3058883 0.3886955 0.7199555 1.1637663 0.7433899
## [15] 0.3772188 0.2845180 0.2629816 0.3429857 0.3069603 0.3172632 0.2757054
## [22] 0.2891601 0.4119891 0.6404864 1.0685586 0.6919885 0.3655670 0.2666154
## [29] 0.2756188 0.3926296 0.3418826 0.3470685 0.2979409 0.3642068 0.4497186
## [36] 0.7032507 0.9439925 0.6696982 0.3641307 0.2892238 0.3261095 0.4402479
## [43] 0.3574885 0.3466122 0.3342601 0.4162767 0.4979479 0.7222161 0.9990141
## [50] 0.6767092 0.4158572 0.3212828 0.3683542
## 
## $units
## [1] "Bits"
## 
## $n.partitions
## [1] 6
## 
## attr(,"class")
## [1] "mutualInf"

Se confirma por medio de este gráfico que la serie presenta un ciclo anual.

Detección de estacionalidad

Dado que la serie es mensual, monthplot permite hacer los gráficos de las subseries. El periodo estacional, \(s\), se define como número de observaciones que forman el ciclo estacional. En este caso podríamos suponer que \(s=12\).

Note hay meses muchas subseries están centradas alrededor de valores diferentes usando el objeto ts.

Explorando la estacionalidad con graficos de cajas

Los anteriores gráficos nos ayudan a confirmar el patrón de estacionalidad cíclica presente en la serie.

Periodograma

El periodograma puede verse como una herramienta para la detección de posibles ciclos(ocultos) deterministas en una serie temporal.

Del estudio de la estacionalidad de la serie de tiempo, se pudo ver que ésta componente es cíclica, la cual puede representarse por ejemplo mediante funciones periódicas.

## [1] "El valor de la frecuencia donde se máximiza el periodograma para la serie es: 0.5"
## [1] "El periodo correspondiente es aproximadamente: 2"

Esto se explica porque cada dos periodos se tiene el mismo comportamiento “subida y bajada”, pero en realidad el periodo es 12. Indicando un comportamiento sinusoidal.

El modelo que se podría plantear tendría la siguiente forma: \(Z_t = \mu + A \sin(\omega_t) + B \cos(\omega_t) + a_t\). Con \(\omega=2\pi/12=\pi/6\).

Modelamiento de la estacionalidad con componentes de Fourier y dummy

Variables Dummy y Armónicos

Armónicos
##          S1-12      C1-12
## [1,] 0.5000000  0.8660254
## [2,] 0.8660254  0.5000000
## [3,] 1.0000000  0.0000000
## [4,] 0.8660254 -0.5000000
## [5,] 0.5000000 -0.8660254
## [6,] 0.0000000 -1.0000000
## [1] 0.5
## [1] 0.8660254

## # A tsibble: 6 x 2 [1M]
##   logdiff_datos     index
##           <dbl>     <mth>
## 1        NA     2000 ene.
## 2         0.345 2000 feb.
## 3        -0.658 2000 mar.
## 4         0.964 2000 abr.
## 5        -0.741 2000 may.
## 6         0.590 2000 jun.

Donde \(k\) es el orden máximo de la serie de Fourier.

Ajuste Dummy

La idea en estos casos es introducir 11(s − 1) variables impulso o dummy I^{(j)}_t que tomen 1 en un mes cero en el resto.

Varios modelos al mismo tiempo
## # A tibble: 4 × 8
##   .model            sigma2 log_lik   AIC  AICc   BIC ar_roots  ma_roots 
##   <chr>              <dbl>   <dbl> <dbl> <dbl> <dbl> <list>    <list>   
## 1 Fourier1datosdiff 0.451   -290.   595.  595.  620. <cpl [0]> <cpl [0]>
## 2 Fourier2datosdiff 0.438   -285.   589.  589.  621. <cpl [0]> <cpl [0]>
## 3 Fourier3datosdiff 0.302   -231.   483.  484.  524. <cpl [0]> <cpl [0]>
## 4 Dummydatosdiff    0.0911   -57.8  142.  143.  189. <cpl [0]> <cpl [0]>
.model term estimate std.error statistic p.value
Fourier1datosdiff fourier(K = 3)C1_12 0.0854484 0.0556402 1.5357314 0.1257059
Fourier1datosdiff fourier(K = 3)S1_12 0.0755014 0.0554440 1.3617615 0.1743411
Fourier1datosdiff fourier(K = 3)C2_12 -0.0138295 0.0556402 -0.2485528 0.8038845
Fourier1datosdiff fourier(K = 3)S2_12 -0.0281485 0.0554440 -0.5076929 0.6120586
Fourier1datosdiff fourier(K = 3)C3_12 0.1106833 0.0556402 1.9892674 0.0476208
Fourier1datosdiff fourier(K = 3)S3_12 -0.0821620 0.0554440 -1.4818921 0.1394661

Conforme a los criterios de información se puede decir que el modelo con variables dummy es que el mejor se ajusta al componente estacional de la serie.