Francisco Javier Parra Rodríguez

Universidad de Cantabria (UNICAN), España

parra_fj@cantabria.es

Introducción

El objetivo del artículo es estimar una Propensión Marginal al Consumo (PMC) para la economía española, a través de una función de consumo clásica Keynesiana con los microdatos de las encuestas de hogares. Las estimaciones de estas funciones con datos de encuestas de hogares se realizan agrupando a estos en estratos, estimándose la función con los datos agregados de cada estrato, dado que estos estratos se determinan siguiendo criterios subjetivos del investigador, proponemos un método de estimación que utilice los percentiles de ingresos per cápita del conjunto de la muestra de la encuesta. Estas estimaciones por lo general presentan problemas de normalidad en los residuos, debido a valores extremos, dependencia de errores entre estratos de hogares, heterocedasticidad o la existencia de relaciones no lineales en las variables. Utilizando diversos métodos de estimación con el fin de eludir tales problemas comprobaremos que la función de consumo guarda bastantes similitudes en los dos países, en lo relativo a la evolución de la PMC entre clases sociales, y que las estimaciones que se alejan del supuesto de distribución gaussiana de los residuos ofrecen estimaciones más elevadas de la PMC, estos resultados llevan a unas conclusiones que no difieren de las obtenidos en Argentina (Parra, 2015b) y Mexico (Parra, 2016).

Clasificación JEL (Journal of Economic Literature): E12, E21,R21

Función de Consumo

La función de consumo establece una relación funcional entre el gasto y la renta disponible:

\(C_i=a+bY_i+e_i\) (1)

donde \(C_i\) es el gasto en consumo que realiza el hogar \(i\),\(Y_i\) es la renta disponible o los ingresos del hogar \(i\), y se presupone la existencia de un error aleatorio, \(e_i\) idénticamente distribuido de media cero y varianza conocida.

La propensión media al consumo se define \(\frac{\sum C_i}{\sum Y_i}\), \(b\) sería la propensión marginal al consumo ó el aumento de gasto en consumo asociado al aumento de una unidad monetaria en la renta de los hogares, en tanto que \(a\) se considera como el consumo autónomo, o aquel que corresponde a los hogares que no reciben ningún tipo de ingresos.

Si para un periodo de tiempo \(t\), obtengo la suma de los gastos de consumo de los hogares que habitan un área concreta, será:

\(C_t= \sum_i C_i = \sum_i(a_t + b_t Y_i + e_i) = n_t a_t + b_t \sum_i Y_i\) (2)

donde el número de hogares agregado al periodo \(t\) es \(n_t\) y teniendo presente que un error aleatorio normalmente distribuido de media cero da como resultado \(\sum_i e_i = 0\).

Considerando ahora que, \(Y_t\) y \(n_t\) son variables fijas y admitiendo una cierta variabilidad aleatoria de cada \(a_t\) y \(b_t\) en torno a su valor poblacional: \(a\) y \(b\), la relación podría expresarse como:

\(C_t= a n_t + b Y_t + u_t\), \(t=1,...,T\) (3)

donde \(u_t\) es un error aleatorio idénticamente distribuido de media cero y varianza conocida.

Dividendo (3) por \(n_t\) , se obtiene la formulación keynesiana de la ecuación de consumo:

\(c_t = a + b y_t + u_t\)(4)

donde \(c_t\) es el gasto en consumo per capita agregado al periodo \(t\), \(y_t\) es la renta o los ingresos per cápita o agregado al periodo.

La teoría general del consumo de Keynes, fue cuestionada tanto por su simplicidad teórica como por la evidencia empírica, Kutnets, Feber, Goldsmith y otros, utilizando series temporales de consumo de largo plazo, estimaron PMC para los Estados Unidos con valores cercanos a 0.90, en tanto que los estudios que utilizaban series de datos cruzadas procedentes de encuesta de consumo de los hogares, obtenían para la PMC un rango de 0.60 - 0.80 . Estas diferencias dieron lugar a la paradoja de la función de consumo, que venía a decir que el comportamiento de los hogares o individuos frente al consumo era muy diferente del comportamiento de las magnitudes a nivel agregado. Esta paradoja estimulo los esfuerzos para encontrar una teoría completa del consumo, entre los que destacan las hipótesis de la renta relativa de Duesemberry (1949), de la renta permanente (Friedman, 1957) y la del ciclo vital de Modigliani y Brumberg (1945). El problema entre las discrepancias entre los datos de series cruzadas y series temporales fue resuelto utilizando el concepto de renta permanente y transitoria de Friedman y Kutnests (1945), la renta permanente fue definida como una renta media en tanto que la renta transitoria sería las diferencias entre el ingreso de cada individuo y esa renta media. Los ingresos individuales que difieren de los ingresos permanentes, dado su carácter de inesperados, se consideró que no habían de tener consecuencias para el consumo, y Modigliani y Brumberg, y Friedman definieron la elasticidad del consumo frente a la renta, como : \(N_{cy}=\frac {\bar C}{\bar Y}\).

Modigliani y Brumberg (1954), consideran que cuando todos los hogares esperan el mismo ingreso, la elasticidad del consumo frente a la renta será la unidad, de manera que en presencia de fluctuaciones a corto plazo en los ingresos, la proporción de renta consumida tenderá a caer con la renta y la elasticidad del consumo con respecto a la renta será menor que uno. Casi todos los desarrollos empíricos realizados en la literatura económica consideran de alguno u otra manera las hipótesis de la renta permanente o del ciclo vital.

Bunting, D (2003), considera que presuponer que todos los hogares tienen idéntica renta permanente es un imposible, que todas las encuestas sobre gastos de los consumidores realizadas en los EEUU, muestran que los ingresos individuales difieren debido a la calidad del capital humano, características demográficas (sexo, edad, raza) ó el estado de salud.

Por otro lado, habría que tener presente que en las estimaciones de las PMC influyen de manera considerable la definición de las variables de ingresos y gastos, incluyendo su consideración o no en términos per cápita (Bunting, 1989),en este sentido destaca la alta variabilidad de resultados para la PMC que se han obtenido en las encuestas de datos cruzados precisamente por las diferencias que se dan en la definición de ingresos y gastos o incluso en el conjunto de hogares objetivo de cada encuesta. Bunting D. considera que la manera en que se agrupan los conjuntos de datos en categorías de ingresos, agrupaciones que no son una transformación lineal de los datos originales, determinan en cierto sentido que se den unos u otros resultados para la PMC. Utilizando datos de de 13.164 hogares de los EEUU en 1960 y agrupados según intervalos razonables de ingresos, la estimación produce la clásica paradoja de los datos cruzados en la función de consumo, la PMC obtenida (0.78) es menor que la que la elasticidad del ingreso al consumo que utilizan Modigliani y Brumberg y Friedman (0.84). Dado que no todos los grupos tenían el mismo porcentaje de hogares, cuando la estimación de la PMC fue realizada con mínimos cuadrados ponderados o excluyendo las categorías de los más pobres y los más ricos, se obtuvieron valores para la PMC más acordes con la elasticidad del ingreso al gasto: 0.83 y 0.80 respectivamente.

Otra manera alternativa de formular la relación entre el gasto de consumo y renta disponible de cada hogar es la siguiente:

\(C_i= b_i Y_i\) (5)

donde \(C_i\) es el gasto en consumo que realiza el hogar \(i\), \(Y_i\) es la renta o los ingresos del hogar \(i\).

La relación (5) relativa a un subconjunto de esa población quedaría:

\(\sum_{i=1}^m C_i = \sum_{i=1}^m b_i Y_i\) (6)

donde \(m\) es el número de hogares en dicho subconjunto.

Dividiendo (6) por el número de hogares, y presuponiendo que todos los hogares del subconjunto consumen parecida proporción de renta \(b_j=\frac {\sum_{i=1}^{m} b_i}{m}\), resulta que :

\(c_j = b_j y_j + e_j\) (7)

donde \(c_j\) e \(y_j\) son los consumos y rentas per cápita del subconjunto de dicha población. Y \(e_j\) es la diferencia que ocurre al utilizar \(b_j\) en lugar de \(\frac {\bar C}{\bar Y}\).

Si consideramos que hay 100 grupos homogéneos de hogares, o percentiles de hogares con comportamientos asimilados, (7) se expresaría:

\(c_j = a + b_j y_j + e_j\)(8)

donde se presupone que \(e_j\) un error aleatorio idénticamente distribuido de media cero y varianza conocida.

En dicha ecuación,\(b_1\), \(b_2\),…,\(b_100\) serían la propensión marginal a consumir de los hogares de la clase 1, de la clase 2 y ….. de la clase 100.

Metodología de Estimación

La función (5) establece una relación de no tipo lineal entre consumos y rentas disponibles de los hogares, no obstante, si se considera que los \(b_i\) toman un valor que oscila de forma aleatoria en torno a su valor medio, la ecuación (5) se formularía como (1), y daría lugar a una función lineal que puede estimarse con Mínimos Cuadrados Ordinarios. No obstante, parecer razonable pensar que los \(b_i\) puedan cambiar de alguna y otra manera en función d la clase social de cada hogar, o si se prefiere que la relación entre gasto de consumo y renta disponible oscilará sobre su línea de tendencia, presentando oscilaciones deterministas y aleatorias.

La ecuación (5) puede estimarse por tanto utilizando una forma lineal o una transformación a una forma lineal, un logaritmo, una potencia, etc…., o también puede estimarse de forma no paramétrica utilizando “kernel” o “splines”.

Por su parte la ecuación (8), puede estimarse segmentando los hogares por clases sociales y utilizando variables dummys (\(D_j\)) para obtener regresores en cada clase, puede dejarse libre el gasto en consumo mínimo de los hogares o establecerlo en base a una cesta mínima de compra de subsistencia, en cuyo caso (8) se especificaría como:

\(c_i = a + b_1 Y_i D_j + \epsilon_i\) (9)

pero la estimación (9) por MCO requiere transformaciones en los datos para evitar la colinealidad entre los regresores.

Otra manera de establecer relaciones entre propensiones marginales a consumir y tipología de clases sociales, es utilizar un desarrollo de Fourier:

\(c_j = a + b y_j + \sum_{s=1}^{S} [a_s\cos(\omega_s)+b_j\sin(\omega_s) + \upsilon_j]\) (10)

donde, \(S=50\) y, \(\omega_s = 2 \pi \frac {j}{S}\),y \(\upsilon_j\) es un error aleatorio idénticamente distribuido con media cero y varianza constante.

La función (10) diferencia las oscilaciones en torno a su línea de tendencia, entre las que se deben a un comportamiento oscilante determinista entre percentiles o clases y el puramente aleatorio. En este tipo de estimaciones la ausencia de autocorrelación entre los errores, indicaría que el modelo incorpora las relaciones de estructura entre percentiles: las de tendencia, las que se dan entre percentiles distantes (las menos frecuentes) o entre percentiles cercanos (las más frecuentes).

Para realizar esta estimación se presentan a continuación una serie de funciones R basadas en (Parra,2015), cuyo objetivo es realizar una regresión en bandas de frecuencia (Engle, 1974), utilizando el test de Durbin (Durbin, 1969) como elemento selector de las bandas de oscilación.

  1. Niveles de significación para el test de Durbin(1969) :
X0.1 <- c(0.4  ,0.35044  ,0.35477   ,0.33435    ,0.31556    ,0.30244    ,0.28991    ,0.27828    ,0.26794    ,0.25884    ,0.25071    ,0.24325    ,0.23639    ,0.2301 ,0.2243 ,0.21895    ,0.21397    ,0.20933    ,0.20498    ,0.20089    ,0.19705    ,0.19343    ,0.19001    ,0.18677    ,0.1837 ,0.18077    ,0.17799    ,0.17037    ,0.1728 ,0.17037    ,0.16805    ,0.16582    ,0.16368    ,0.16162    ,0.15964    ,0.15774    ,0.1559 ,0.15413    ,0.15242    ,0.15076    ,0.14916    ,0.14761    ,0.14011    ,0.14466    ,0.14325    ,0.14188    ,0.14055    ,0.13926    ,0.138  ,0.13678    ,0.13559    ,0.13443    ,0.133  ,0.13221    ,0.13113    ,0.13009    ,0.12907    ,0.12807    ,0.1271 ,0.12615    ,0.12615    ,0.12431    ,0.12431    ,0.12255    ,0.12255    ,0.12087    ,0.12087    ,0.11926    ,0.11926    ,0.11771    ,0.11771    ,0.11622    ,0.11622    ,0.11479    ,0.11479    ,0.11341    ,0.11341    ,0.11208    ,0.11208    ,0.11079    ,0.11079    ,0.10955    ,0.10955    ,0.10835    ,0.10835    ,0.10719    ,0.10719    ,0.10607    ,0.10607    ,0.10499    ,0.10499    ,0.10393    ,0.10393    ,0.10291    ,0.10291    ,0.10192    ,0.10192    ,0.10096    ,0.10096    ,0.10002)

X0.05 <- c(0.45,0.44306,0.41811,0.39075 ,0.37359    ,0.35522    ,0.33905    ,0.32538    ,0.31325    ,0.30221    ,0.29227    ,0.2833 ,0.27515    ,0.26767    ,0.26077    ,0.25439    ,0.24847    ,0.24296    ,0.23781    ,0.23298    ,0.22844    ,0.22416    ,0.22012    ,0.2163 ,0.21268    ,0.20924    ,0.20596    ,0.20283    ,0.19985    ,0.197  ,0.19427    ,0.19166    ,0.18915    ,0.18674    ,0.18442    ,0.18218    ,0.18003    ,0.17796    ,0.17595    ,0.17402    ,0.17215    ,0.17034    ,0.16858    ,0.16688    ,0.16524    ,0.16364    ,0.16208    ,0.16058    ,0.15911    ,0.15769    ,0.1563 ,0.15495    ,0.15363    ,0.15235    ,0.1511 ,0.14989    ,0.1487 ,0.14754    ,0.14641    ,0.1453 ,0.1453 ,0.14361    ,0.14361    ,0.14112    ,0.14112    ,0.13916    ,0.13916    ,0.13728    ,0.13728    ,0.13548    ,0.13548    ,0.13375    ,0.13375    ,0.13208    ,0.13208    ,0.13048    ,0.13048    ,0.12894    ,0.12894    ,0.12745    ,0.12745    ,0.12601    ,0.12601    ,0.12464    ,0.12464    ,0.12327    ,0.12327    ,0.12197    ,0.12197    ,0.12071    ,0.12071    ,0.11949    ,0.11949    ,0.11831    ,0.11831    ,0.11716    ,0.11716    ,0.11604    ,0.11604    ,0.11496)

X0.025 <- c(0.475   ,0.50855    ,0.46702    ,0.44641    ,0.42174    ,0.40045    ,0.38294    ,0.3697 ,0.35277    ,0.34022    ,0.32894    ,0.31869    ,
0.30935 ,0.30081    ,0.29296    ,0.2857 ,0.27897    ,0.2727 ,0.26685    ,0.26137    ,0.25622    ,0.25136    ,0.24679    ,0.24245    ,0.23835    ,0.23445    ,0.23074    ,0.22721    ,0.22383    ,0.22061    ,0.21752    ,0.21457    ,0.21173    ,0.20901    ,0.20639    ,0.20337    ,0.20144    ,0.1991 ,0.19684    ,0.19465    ,0.19254    ,0.1905 ,0.18852    ,0.18661    ,0.18475    ,0.18205    ,0.1812 ,0.1795 ,0.17785    ,0.17624    ,0.17468    ,0.17361    ,0.17168    ,0.17024    ,0.16884    ,0.16748    ,0.16613    ,0.16482    ,0.16355    ,0.1623 ,0.1623 ,0.1599 ,0.1599 ,0.1576 ,0.1576 ,0.1554 ,0.1554 ,0.15329    ,0.15329    ,0.15127    ,0.15127    ,0.14932    ,0.14932    ,0.14745    ,0.14745    ,0.14565    ,0.14565    ,0.14392    ,0.14392    ,0.14224    ,0.14224    ,0.14063    ,0.14063    ,0.13907    ,0.13907    ,0.13756    ,0.13756    ,0.1361 ,0.1361 ,0.13468    ,0.13468    ,0.13331    ,0.13331    ,0.13198    ,0.13198    ,0.1307 ,0.1307 ,0.12944    ,0.12944    ,0.12823)

X0.01 <- c(  0.49   ,0.56667    ,0.53456    ,0.50495    ,0.47629    ,0.4544 ,0.43337    ,0.41522    ,0.39922    ,0.38481    ,0.37187    ,0.36019    ,0.34954    ,0.3398 ,0.33083    ,0.32256    ,0.31489    ,0.30775    ,0.30108    ,0.29484    ,0.28898    ,0.28346    ,0.27825    ,0.27333    ,0.26866    ,0.26423    ,0.26001    ,0.256  ,0.25217    ,0.24851    ,0.24501    ,0.24165    ,0.23843    ,0.23534    ,0.23237    ,0.22951    ,0.22676    ,0.2241 ,0.22154    ,0.21906    ,0.21667    ,0.21436    ,0.21212    ,0.20995    ,0.20785    ,0.20581    ,0.20383    ,0.2119 ,0.20003    ,0.19822    ,0.19645    ,0.19473    ,0.19305    ,0.19142    ,0.18983    ,0.18828    ,0.18677    ,0.18529    ,0.18385    ,0.18245    ,0.18245    ,0.17973    ,0.17973    ,0.17713    ,0.17713    ,0.17464    ,0.17464    ,0.17226    ,0.17226    ,0.16997    ,0.16997    ,0.16777    ,0.16777    ,0.16566    ,0.16566    ,0.16363    ,0.16363    ,0.16167    ,0.16167    ,0.15978    ,0.15978    ,0.15795    ,0.15795    ,0.15619    ,0.15619    ,0.15449    ,0.15449    ,0.15284    ,0.15284    ,0.15124    ,0.15124    ,0.1497 ,0.1497 ,0.1482 ,0.1482 ,0.14674    ,0.14674    ,0.14533    ,0.14533    ,0.14396)

X0.005 <- c(0.495   ,0.59596    ,0.579  ,0.5421 ,0.51576    ,0.48988    ,0.4671 ,0.44819    ,0.43071    ,0.41517    ,0.40122    ,0.38856    ,0.37703    ,0.36649    ,0.35679    ,0.34784    ,0.33953    ,0.33181    ,0.32459    ,0.31784    ,0.31149    ,0.30552    ,0.29989    ,0.29456    ,0.28951    ,0.28472    ,0.28016    ,0.27582    ,0.27168    ,0.26772    ,0.26393    ,0.2603 ,0.25348    ,0.25348    ,0.25027    ,0.24718    ,0.24421    ,0.24134    ,0.23857    ,0.23589    ,0.2331 ,0.23081    ,0.22839    ,0.22605    ,0.22377    ,0.22377    ,0.21943    ,0.21753    ,0.21534    ,0.21337    ,0.21146    ,0.20961    ,0.2078 ,0.20604    ,0.20432    ,0.20265    ,0.20101    ,0.19942    ,0.19786    ,0.19635    ,0.19635    ,0.19341    ,0.19341    ,0.19061    ,0.19061    ,0.18792    ,0.18792    ,0.18534    ,0.18534    ,0.18288    ,0.18288    ,0.18051    ,0.18051    ,0.17823    ,0.17823    ,0.17188    ,0.17188    ,0.17392    ,0.17392    ,0.17188    ,0.17188    ,0.16992    ,0.16992    ,0.16802    ,0.16802    ,0.16618    ,0.16618    ,0.1644 ,0.1644 ,0.16268    ,0.16268    ,0.16101    ,0.16101    ,0.1594 ,0.1594 ,0.15783    ,0.15783    ,0.15631    ,0.15631    ,0.15483)
 

TestD <- data.frame(X0.1,X0.05,X0.025,X0.01,X0.005)
  1. Función td (y,significance)

Realiza una prueba estadística para estudiar la dependencia serial sobre el periodograma acumulado de \(y\), con una significación de 0,1(significance=1); 0,05(significance=2); 0,025(significance=3); 0,01(significance=4) y 0,005 (significance=5) (Durbin; 1969)

El test de Durbin esta basado en el siguiente estadístico:

\(s_j=\frac{\sum_{r=1}^j p_r}{\sum_{r=1}^m p_r}\) (11)

donde \(m=\frac{1}{2}n\) para \(n\) par y \(\frac{1}{2}(n-1)\) para \(n\) impar.

El estadístico \(s_j\) ha en encontrarse entre unos límites inferior y superior de valores críticos que han sido tabulados por Durbin (1969). Si bien hay que tener presente que el valor \(p_o\) no se considera en el cálculo del estadístico esto es, \(p_o=\hat v_1=0\)

td <- function(y,significance) {
# Author: Francisco Parra Rodríguez
# Some ideas from:
#Harvey, A.C. (1978), Linear Regression in the Frequency Domain, International Economic Review, 19, 507-512.
# DURBIN, J., "Tests for Serial Correlation in Regression Analysis based on the Periodogram ofLeast-Squares Residuals," Biometrika, 56, (No. 1, 1969), 1-15.
# http://econometria.wordpress.com/2013/08/21/estimation-of-time-varying-regression-coefficients/ 
per <- periodograma(y)
p <- as.numeric(per$densidad)
n <- length(p)
s <- p[1]
t <- 1:n
for(i in 2:n) {s1 <-p[i]+s[(i-1)]
s <- c(s,s1)
s2 <- s/s[n]
}
while (n > 100) n <- 100
if (significance==1) c<- c(TestD[n,1]) else {if (significance==2) c <- c(TestD[n,2]) else {if (significance==3) c <- c(TestD[n,3]) else {if (significance==4) c <- c(TestD[n,4]) 
c <- c(TestD[n,5])}}}
min <- -c+(t/length(p))
max <- c+(t/length(p))
data.frame(s2,min,max)
} 
  1. Fuction gtd (y,significance)

Presenta gráficamente los resultados de la prueba de Durbin (Durbin; 1969) :

gtd <- function (y,significance) {
S <- td(y,significance)
plot(ts(S), plot.type="single", lty=1:3,main = "Test Durbin", 
ylab = "densidad acumulada",
xlab="frecuencia")
}
  1. Función rdf (y,x, significance)

Realiza la regresión en el dominio de la frecuencia de los vectores \(x\) e \(y\), seleccionando las frecuencias más relevantes a partir del co-espectro y del test Durbin (1969).

Consideramos ahora el modelo de regresión siguiente:

\(y_t=\beta_tx_t+u_t\) (12)

donde \(x_t\) es un vector \(n x 1\) de observaciones de las variable independiente, \(\beta_t\) es un vector de n x 1 parámetros, \(y_t\) es un vector de \(n x 1\) observaciones de la variable dependiente, y \(u_t\) es un vector de errores distribuidos con media cero y varianza constante.

Definida la matriz \(W\),cuyo elemento \((t, s)\) viene dado por

\(w_{ts}=\frac{1}{\sqrt n} e^{i\lambda_t s},s= 0,1,...,n-1\)

donde \(\lambda_t = 2\pi \frac {t}n\), \(t=0,1,.,n-1\), y \(i=\sqrt{-1}\). (13)

Considerando que series, \(y_t\),\(x_t\),\(\beta_t\) y \(u_t\), responden a un esquema de Series de Fourier:

\(y_t=\eta^y+\sum_{j=1}^N[a^y_j\cos(\omega_j)+b^y_j\sin(\omega_j)]\)

\(x_t=\eta^x+\sum_{j=1}^N[a^y_j\cos(\omega_j)+b^y_j\sin(\omega_j)]\)

\(\beta_t=\eta^\beta+\sum_{j=1}^N[a^\beta_j\cos(\omega_j)+b^\beta_j\sin(\omega_j)]\) (14)

Obtenemos el sistema en el dominio de la frecuencia pre-multiplicando (12) por \(W\)

\(\dot y=\dot x\dot\beta+\dot u\) (15)

donde \(\dot y = Wy\),\(\dot x = Wx\), \(\dot \beta = W\beta\) y \(\dot u = Wu\)

El sistema (15) puede reescribirse como:

\(\dot y=Wx_tI_nW^T\dot \beta + WI_nW^T\dot u\) (16)

Si denominamos \(\dot e=WI_nW^T\dot u\), podrían buscarse los \(\dot \beta\) que minimizaran la suma cuadrática de los errores \(e_t=W^T\dot e\).

Una vez encontrada la solución a dicha optimización, se transformarían las series al dominio del tiempo para obtener el sistema (12).

El algoritmo de cálculo se realiza en las siguientes fases:

  1. Calcula el co-espectro de la serie \(x\) e \(y\).

Sea \(x\) un vector n x 1 el modelo transformado en el dominio de la frecuencia esta dado por:

\(\hat x= Wx\)

Sea \(y\) un vector n x 1 el modelo transformado en el dominio de la frecuencia esta dado por:

\(\hat y= Wy\)

Denominando \(p_j\) el ordinal del cross-periodograma de \(\hat x\) y \(\hat y\) en la frecuencia \(\lambda_j=2\pi j/n\), y \(\hat x_j\) el j-th elemento de \(\hat x\) y \(\hat y_j\) el j-th elemento de \(\hat y\), entonces

\[ \left\lbrace \begin{array}{ll} p_j=\hat x_{2j}\hat y_{2j}+\hat x_{2j+1}\hat y_{2j+1} & \forall j = 1,...\frac{n-1}{2}\\ p_j=\hat x_{2j}\hat y_{2j}& \forall j = \frac{n}{2}-1 \end{array} \right . \]

\[p_0=\hat x_{1}\hat y_{1}\]

  1. Ordena el co-espectro en base al valor absoluto de \(p_j\) y genera un índice en base a ese orden para cada coeficiente de fourier.

  2. Calcula la matriz \(Wx_tI_nW^T\) y la ordena en base al índice anterior.

  3. Obtiene \(\dot e=WI_nW^T\dot u\), incluyendo el vector correspondiente al parámetro constante, \((1,0,...0)^n\), y calcula el modelo utilizando los dos primeros regresores de la matriz \(Wx_tI_nW^T\) reordenada y ampliadas, calcula el modelo para los 4 primeros, para los 6 primeros, hasta completar los \(n\) regresores de la matriz.

  4. Realiza el test de durbin a los modelos estimados, y selecciona aquellos en donde los \(e_t=W^T\dot e\) están dentro de las bandas elegidas a los niveles de significación \(\alpha=0.1;0.05;0.025;0.01;0.005\).

  5. De todos ellos elige aquel que tiene menos regresores. Si no encuentra modelo ofrece el aviso.

rdf <- function (y,x,significance) {
  # Author: Francisco Parra Rodríguez
  # http://rpubs.com/PacoParra/24432
  # Leemos datos en forma matriz
  a <- matrix(y, nrow=1)
  b <- matrix(x, nrow=1)
  n <- length(a)
  # calculamos el cros espectro mediante la funcion cperiodograma
  cperiodograma <- function(y,x) {
# Author: Francisco Parra Rodríguez
# http://econometria.wordpress.com/2013/08/21/estimation-of-time-varying-regression-coefficients/ 
cfx <- gdf(y)
n <- length(y)
cfy <- gdf(x)
if (n%%2==0) {
m1x <- c(0)
m2x <- c()
for(i in 1:n){
if(i%%2==0) m1x <-c(m1x,cfx[i]) else m2x <-c(m2x,cfx[i])}
m2x <- c(m2x,0)
m1y <- c(0)
m2y <- c()
for(i in 1:n){
if(i%%2==0) m1y <-c(m1y,cfy[i]) else m2y <-c(m2y,cfy[i])}
m2y <-c(m2y,0) 
frecuencia <- seq(0:(n/2)) 
frecuencia <- frecuencia-1
omega <- pi*frecuencia/(n/2)
periodos <- n/frecuencia
densidad <- (m1x*m1y+m2x*m2y)/(4*pi)
tabla <- data.frame(omega,frecuencia, periodos,densidad)
tabla$densidad[(n/2+1)] <- 4*tabla$densidad[(n/2+1)]
data.frame(tabla[2:(n/2+1),])}
else {m1x <- c(0)
m2x <- c()
for(i in 1:(n-1)){
if(i%%2==0) m1x <-c(m1x,cfx[i]) else m2x <-c(m2x,cfx[i])}
m2x <-c(m2x,cfx[n])
m1y <- c(0)
m2y <- c()  
for(i in 1:(n-1)){
if(i%%2==0) m1y <-c(m1y,cfy[i]) else m2y <-c(m2y,cfy[i])}
m2y <-c(m2y,cfy[n])
frecuencia <- seq(0:((n-1)/2)) 
frecuencia <- frecuencia-1
omega <- pi*frecuencia/(n/2)
periodos <- n/frecuencia
densidad <- (m1x*m1y+m2x*m2y)/(4*pi)
tabla <- data.frame(omega,frecuencia, periodos,densidad)
data.frame(tabla[2:((n+1)/2),])}
}
  cper <- cperiodograma(a,b)
# Ordenamos de mayor a menor las densidades absolutas del periodograma, utilizando la funcion "sort.data.frame" function, Kevin Wright. Package taRifx
  S1 <- data.frame(f1=cper$frecuencia,p=abs(cper$densidad))
  S <- S1[order(-S1$p),] 
  id <- seq(2,n)
  m1 <- cbind(S$f1*2,evens(id))
  if (n%%2==0) {m2 <- cbind(S$f1[1:(n/2-1)]*2+1,odds(id))} else 
   {m2 <- cbind(S$f1*2+1,odds(id))}
  m <- rbind(m1,m2)
  colnames(m) <- c("f1","id")
  M <- sort.data.frame (m,formula=~id)
  M <- rbind(c(1,1),M)
  # Obtenemos la funcion auxiliar (cdf) del predictor y se ordena segun el indice de las mayores densidades absolutas del co-espectro.
  cx <- cdf(b)
  id <- seq(1,n)
  S1 <- data.frame(cx,c=id)
  S2 <- merge(M,S1,by.x="id",by.y="c")
  S3 <- sort.data.frame (S2,formula=~f1)
  m <- n+2
  X1 <- S3[,3:m]
  X1 <- rbind(C=c(1,rep(0,(n-1))),S3[,3:m])
  # Se realizan las regresiones en el dominio de la frecuencia utilizando un modelo con constante, pendiente y los arm?nicos correspondientes a las frecuencias mas altas de la densidad del coespectro. Se realiza un test de durbin para el residuo y se seleccionan aquellas que son significativas. 
  par <- evens(id)
  i <- 1
  D <- 1
  resultado <- cbind(i,D)
  for (i in par) {
  X <- as.matrix(X1[1:i,])
  cy <- gdf(a)
  B1 <- solve(X%*%t(X))%*%(X%*%cy)
  Y <- t(X)%*%B1 
  F <- gdt(Y)
  res <- (t(a) - F)
  T <- td(res,significance)
  L <- as.numeric(c(T$min<T$s2,T$s2<T$max))
  LT <- sum(L)
  if (n%%2==0) {D=LT-n} else {D=LT-(n-1)} 
  resultado1 <- cbind(i,D)
  resultado <- rbind(resultado,resultado1)
  resultado}
resultado2 <-data.frame(resultado)
criterio <- resultado2[which(resultado2$D==0),]
sol <- as.numeric(is.na(criterio$i[1]))
if (sol==1) {"no encuentra convergencia"} else {
 X <- as.matrix(X1[1:criterio$i[1],])
cy <- gdf(a)
  B1 <- solve(X%*%t(X))%*%(X%*%cy)
  Y <- t(X)%*%B1 
  F <- gdt(Y)
  res <- (t(a) - F)
  datos <- data.frame(cbind(t(a),t(b),F,res))
  colnames(datos) <- c("Y","X","F","res")
list(datos=datos,Fregresores=t(X),Tregresores= t(MW(n))%*%t(X),Nregresores=criterio$i[1],Betas=B1)}
       }

Encuesta de presupuestos familiares

La Encuesta de presupuestos familiares (EPF) suministra información anual sobre la naturaleza y destino de los gastos de consumo, así como sobre diversas características relativas a las condiciones de vida de los hogares.

Los gastos de consumo que se registran en la EPF 2006 se refieren no sólo al flujo monetario que destina el hogar y cada uno de sus miembros al pago de determinados bienes y servicios, considerados como bienes y servicios de consumo final, sino también al valor de los consumos efectuados por los hogares en concepto de autoconsumo, autosuministro, salario en especie, comidas gratuitas o bonificadas y alquiler imputado a la vivienda en la que reside el hogar (cuando es propietario de la misma o la tiene cedida gratuita o semigratuitamente por otros hogares o instituciones).

El gasto en consumo final de los hogares se registra a precios de adquisición, es decir, al precio que debería pagar efectivamente el comprador por los productos en el momento de la compra y según su precio al contado. Se recoge el importe real de los gastos en bienes y servicios, más todo gasto añadido que hubiera sido provocado por su compra (por ejemplo las propinas). El gasto en un bien debe registrarse en el momento en que tiene lugar el cambio de propiedad y el gasto en un servicio, en general, cuando se completa la prestación del mismo.

En cuanto a ingresos se investigan los ingresos regulares mensuales del hogar tanto en valor puntual como en intervalo, así como los tipos de fuentes de ingresos para cada hogar, también se recoge el número de miembros del hogar que son perceptores de ingresos.

El tamaño de muestra es de aproximadamente 24.000 hogares al año.

Las variables de ingresos y gastos recogidas en el fichero de microdatos son:

GASTOT:Importe total del gasto anual del hogar monetario y no monetario, elevado temporal y poblacionalmente) (para el salario en especie se contabiliza tanto el importe del pago realizado como la bonificación recibida).
GASTMON:Importe total del gasto monetario anual del hogar elevado temporal y poblacionalmente. (para el salario en especie se contabiliza sólo el importe del pago realizado por el hogar).

IMPEXAC: Importe exacto de los ingresos mensuales netos totales del hogar.

Se leen los datos de ingresos y gastos de hogares del fichero de microdatos de la Encuesta de Presupuestos Familiares de 2014. Base 2006.

library(MicroDatosEs)
## Warning: package 'MicroDatosEs' was built under R version 3.2.4
## Loading required package: memisc
## Warning: package 'memisc' was built under R version 3.2.4
## Loading required package: lattice
## Loading required package: MASS
## 
## Attaching package: 'memisc'
## 
## The following objects are masked from 'package:stats':
## 
##     contr.sum, contr.treatment, contrasts
## 
## The following object is masked from 'package:base':
## 
##     as.array
## 
## Loading required package: Hmisc
## Warning: package 'Hmisc' was built under R version 3.2.4
## Loading required package: survival
## Loading required package: Formula
## Warning: package 'Formula' was built under R version 3.2.3
## Loading required package: ggplot2
## Warning: package 'ggplot2' was built under R version 3.2.4
## 
## Attaching package: 'Hmisc'
## 
## The following objects are masked from 'package:memisc':
## 
##     %nin%, html
## 
## The following objects are masked from 'package:base':
## 
##     format.pval, round.POSIXt, trunc.POSIXt, units
setwd("~/archivos R_Pub")
ecpf2014 <- epf.2011.hogares("Fichero de usuario de hogar a2014.txt")
datos <- data.frame(ING=ecpf2014$impexac,GAST=ecpf2014$gastot/(12*ecpf2014$factor/10000))
#datos <- data.frame(ING=ecpf2014$impexac,GAST=ecpf2014$gastot/(12*ecpf2014$factor))
summary(datos)
##       ING             GAST      
##  Min.   :    0   Min.   :    0  
##  1st Qu.: 1100   1st Qu.: 1386  
##  Median : 1689   Median : 2058  
##  Mean   : 1915   Mean   : 2366  
##  3rd Qu.: 2510   3rd Qu.: 2990  
##  Max.   :16625   Max.   :17950

Estimación de una Función de Consumo para España

Se realiza una estimación por Minimo cuadrado ordinario:

fit <-lm(datos$GAST~datos$ING)
# Global test of model assumptions
library(gvlma)
## Warning: package 'gvlma' was built under R version 3.2.3
gvmodel <- gvlma(fit) 
summary(gvmodel)
## 
## Call:
## lm(formula = datos$GAST ~ datos$ING)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -9737.1  -623.1  -198.5   426.2 14583.7 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 1.000e+03  1.290e+01   77.52   <2e-16 ***
## datos$ING   7.130e-01  5.613e-03  127.02   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1062 on 22144 degrees of freedom
## Multiple R-squared:  0.4215, Adjusted R-squared:  0.4215 
## F-statistic: 1.613e+04 on 1 and 22144 DF,  p-value: < 2.2e-16
## 
## 
## ASSESSMENT OF THE LINEAR MODEL ASSUMPTIONS
## USING THE GLOBAL TEST ON 4 DEGREES-OF-FREEDOM:
## Level of Significance =  0.05 
## 
## Call:
##  gvlma(x = fit) 
## 
##                        Value p-value                   Decision
## Global Stat        96987.028  0.0000 Assumptions NOT satisfied!
## Skewness            8351.469  0.0000 Assumptions NOT satisfied!
## Kurtosis           87869.731  0.0000 Assumptions NOT satisfied!
## Link Function        764.273  0.0000 Assumptions NOT satisfied!
## Heteroscedasticity     1.555  0.2124    Assumptions acceptable.
plot(gvmodel)

Detectar y eliminar outlaier

library(car)
## Warning: package 'car' was built under R version 3.2.3
## 
## Attaching package: 'car'
## 
## The following object is masked from 'package:memisc':
## 
##     recode
out <- outlierTest(fit)
quitar <- c(-as.numeric(names(out$p)))
for (n in quitar)
datos <- datos[n,]

Añadimos un indice para obtener el percentil:

## Warning: package 'gtools' was built under R version 3.2.3
## 
## Attaching package: 'gtools'
## 
## The following object is masked from 'package:car':
## 
##     logit

Se realiza una regresión para los gastos e ingresos utilizando como explicativas la interacción de los ingresos y el factor que selecciona cada percentil. Se representa la gráfica de los coeficientes obtenidos. Se comprueba la relación no lineal que se da entre percentiles de hogares y coeficientes \(b_i\).

## Analysis of Variance Table
## 
## Response: datos$GAST
##                         Df     Sum Sq    Mean Sq   F value    Pr(>F)    
## datos$ING                1 1.8151e+10 1.8151e+10 16995.771 < 2.2e-16 ***
## datos$ING:datos$perc    99 1.1402e+09 1.1517e+07    10.785 < 2.2e-16 ***
## Residuals            22035 2.3532e+10 1.0679e+06                        
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Se realiza una regresión para los gastos e ingresos medios por hogar de cada percentil.

## 
## Call:
## lm(formula = gaperc.perc ~ ingpch.perc)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1363.37   -96.33    32.31   130.17   405.89 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 970.9395    40.3104   24.09   <2e-16 ***
## ingpch.perc   0.7259     0.0176   41.24   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 220.6 on 98 degrees of freedom
## Multiple R-squared:  0.9455, Adjusted R-squared:  0.945 
## F-statistic:  1701 on 1 and 98 DF,  p-value: < 2.2e-16
## 
## 
## ASSESSMENT OF THE LINEAR MODEL ASSUMPTIONS
## USING THE GLOBAL TEST ON 4 DEGREES-OF-FREEDOM:
## Level of Significance =  0.05 
## 
## Call:
##  gvlma(x = fit) 
## 
##                     Value   p-value                   Decision
## Global Stat        912.36 0.000e+00 Assumptions NOT satisfied!
## Skewness           103.19 0.000e+00 Assumptions NOT satisfied!
## Kurtosis           720.08 0.000e+00 Assumptions NOT satisfied!
## Link Function       67.69 2.220e-16 Assumptions NOT satisfied!
## Heteroscedasticity  21.40 3.724e-06 Assumptions NOT satisfied!
## function (x, y, ...) 
## UseMethod("plot")
## <bytecode: 0x00000000126f9440>
## <environment: namespace:graphics>
## Warning: package 'descomponer' was built under R version 3.2.3
## Loading required package: taRifx
## Warning: package 'taRifx' was built under R version 3.2.3
## 
## Attaching package: 'taRifx'
## 
## The following object is masked from 'package:memisc':
## 
##     sort.data.frame

## Warning: package 'tseries' was built under R version 3.2.3
## 
##  Jarque Bera Test
## 
## data:  fit$residuals
## X-squared = 823.27, df = 2, p-value < 2.2e-16
## Warning: package 'nortest' was built under R version 3.2.3
## 
##  Lilliefors (Kolmogorov-Smirnov) normality test
## 
## data:  fit$residuals
## D = 0.099069, p-value = 0.01703
## 
##  Cramer-von Mises normality test
## 
## data:  fit$residuals
## W = 0.27025, p-value = 0.0007155
## 
##  Anderson-Darling normality test
## 
## data:  fit$residuals
## A = 1.8257, p-value = 0.0001066
## 
##  Shapiro-Francia normality test
## 
## data:  fit$residuals
## W = 0.82042, p-value = 1.678e-08

El test de Durbin (1969) muestra unos residuos correlacionados, y los residuos no pasan la prueba de la normalidad

Se realiza una regresión por bandas de frecuencia, se representan los residuos en el dominio frecuencial.

El resultado gráfico del test de Durbin (1969) muestra unos residuos incorrelacionados, los estadísticos sobre normalidad de los errores son buenos, si bien existen problemas de heterocedasticidad.Por este motivo se realiza una regresión GLM utilizando como regresores los armónicos seleccionados en la regresión RBS.

library(descomponer)
# Estimación de la regresión por bandas de frecuencia
y <- as.numeric(gaperc.perc)
x <- as.numeric(ingpch.perc)
res <- rdf(y,x,3)
# grafica de los residuos en el dominio frecuencial
gtd(res$datos$res,3)

# Representación gráfica de los datos
plot(ingpch.perc,gaperc.perc)
lines(ingpch.perc,res$datos$F,col=2)

# gráfica de normalidad de los residuos
hist(res$datos$res, freq=FALSE, 
   main="Distribución de los errores")

boxplot(res$datos$res)

# Estimación del modelo en MCO
fit3 <- lm(gaperc.perc ~ 0 + res$Tregresores)
summary(fit3)
## 
## Call:
## lm(formula = gaperc.perc ~ 0 + res$Tregresores)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -235.010  -65.394   -2.049   61.783  214.911 
## 
## Coefficients:
##                     Estimate Std. Error t value Pr(>|t|)    
## res$TregresoresC   1.020e+04  4.481e+02  22.771  < 2e-16 ***
## res$Tregresores1   6.445e+00  3.041e-01  21.198  < 2e-16 ***
## res$Tregresores2  -9.354e-01  7.727e-02 -12.106  < 2e-16 ***
## res$Tregresores3  -7.960e-01  1.410e-01  -5.646 2.07e-07 ***
## res$Tregresores4  -3.964e-01  7.569e-02  -5.237 1.14e-06 ***
## res$Tregresores5  -7.282e-01  1.049e-01  -6.942 6.90e-10 ***
## res$Tregresores6  -1.109e-01  7.925e-02  -1.399   0.1654    
## res$Tregresores7  -6.890e-01  8.849e-02  -7.786 1.43e-11 ***
## res$Tregresores8  -1.698e-01  7.776e-02  -2.184   0.0317 *  
## res$Tregresores9  -4.812e-01  7.952e-02  -6.052 3.63e-08 ***
## res$Tregresores10  1.668e-01  7.232e-02   2.306   0.0235 *  
## res$Tregresores11 -4.429e-01  7.138e-02  -6.205 1.85e-08 ***
## res$Tregresores12  3.783e-01  6.378e-02   5.932 6.10e-08 ***
## res$Tregresores13 -6.898e-02  5.903e-02  -1.169   0.2458    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 99.41 on 86 degrees of freedom
## Multiple R-squared:  0.9987, Adjusted R-squared:  0.9985 
## F-statistic:  4661 on 14 and 86 DF,  p-value: < 2.2e-16
library(car)
outlierTest(fit3)
## 
## No Studentized residuals with Bonferonni p < 0.05
## Largest |rstudent|:
##                   rstudent unadjusted p-value Bonferonni p
## (6158,1.662e+04] -3.068477          0.0028867      0.28867
gvmodel <- gvlma(fit3) 
summary(gvmodel)
## 
## Call:
## lm(formula = gaperc.perc ~ 0 + res$Tregresores)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -235.010  -65.394   -2.049   61.783  214.911 
## 
## Coefficients:
##                     Estimate Std. Error t value Pr(>|t|)    
## res$TregresoresC   1.020e+04  4.481e+02  22.771  < 2e-16 ***
## res$Tregresores1   6.445e+00  3.041e-01  21.198  < 2e-16 ***
## res$Tregresores2  -9.354e-01  7.727e-02 -12.106  < 2e-16 ***
## res$Tregresores3  -7.960e-01  1.410e-01  -5.646 2.07e-07 ***
## res$Tregresores4  -3.964e-01  7.569e-02  -5.237 1.14e-06 ***
## res$Tregresores5  -7.282e-01  1.049e-01  -6.942 6.90e-10 ***
## res$Tregresores6  -1.109e-01  7.925e-02  -1.399   0.1654    
## res$Tregresores7  -6.890e-01  8.849e-02  -7.786 1.43e-11 ***
## res$Tregresores8  -1.698e-01  7.776e-02  -2.184   0.0317 *  
## res$Tregresores9  -4.812e-01  7.952e-02  -6.052 3.63e-08 ***
## res$Tregresores10  1.668e-01  7.232e-02   2.306   0.0235 *  
## res$Tregresores11 -4.429e-01  7.138e-02  -6.205 1.85e-08 ***
## res$Tregresores12  3.783e-01  6.378e-02   5.932 6.10e-08 ***
## res$Tregresores13 -6.898e-02  5.903e-02  -1.169   0.2458    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 99.41 on 86 degrees of freedom
## Multiple R-squared:  0.9987, Adjusted R-squared:  0.9985 
## F-statistic:  4661 on 14 and 86 DF,  p-value: < 2.2e-16
## 
## 
## ASSESSMENT OF THE LINEAR MODEL ASSUMPTIONS
## USING THE GLOBAL TEST ON 4 DEGREES-OF-FREEDOM:
## Level of Significance =  0.05 
## 
## Call:
##  gvlma(x = fit3) 
## 
##                       Value  p-value                   Decision
## Global Stat        10.36628 0.034690 Assumptions NOT satisfied!
## Skewness            0.03297 0.855911    Assumptions acceptable.
## Kurtosis            0.05004 0.822992    Assumptions acceptable.
## Link Function       7.34350 0.006731 Assumptions NOT satisfied!
## Heteroscedasticity  2.93977 0.086423    Assumptions acceptable.
#plot(gvmodel)
# test normalidad de los errores
library(tseries)
jarque.bera.test(res$datos$res)
## 
##  Jarque Bera Test
## 
## data:  res$datos$res
## X-squared = 0.083013, df = 2, p-value = 0.9593
library(nortest)
lillie.test(res$datos$res)
## 
##  Lilliefors (Kolmogorov-Smirnov) normality test
## 
## data:  res$datos$res
## D = 0.046167, p-value = 0.8653
cvm.test(res$datos$res)
## 
##  Cramer-von Mises normality test
## 
## data:  res$datos$res
## W = 0.021614, p-value = 0.9515
ad.test(res$datos$res)
## 
##  Anderson-Darling normality test
## 
## data:  res$datos$res
## A = 0.17076, p-value = 0.9298
sf.test(res$datos$res) 
## 
##  Shapiro-Francia normality test
## 
## data:  res$datos$res
## W = 0.99422, p-value = 0.8978
#Estimacion modelo glm (Gaussian)
gfit3 <- glm(gaperc.perc ~ 0 + res$Tregresores,family=gaussian)
summary(gfit3)
## 
## Call:
## glm(formula = gaperc.perc ~ 0 + res$Tregresores, family = gaussian)
## 
## Deviance Residuals: 
##      Min        1Q    Median        3Q       Max  
## -235.010   -65.394    -2.049    61.783   214.911  
## 
## Coefficients:
##                     Estimate Std. Error t value Pr(>|t|)    
## res$TregresoresC   1.020e+04  4.481e+02  22.771  < 2e-16 ***
## res$Tregresores1   6.445e+00  3.041e-01  21.198  < 2e-16 ***
## res$Tregresores2  -9.354e-01  7.727e-02 -12.106  < 2e-16 ***
## res$Tregresores3  -7.960e-01  1.410e-01  -5.646 2.07e-07 ***
## res$Tregresores4  -3.964e-01  7.569e-02  -5.237 1.14e-06 ***
## res$Tregresores5  -7.282e-01  1.049e-01  -6.942 6.90e-10 ***
## res$Tregresores6  -1.109e-01  7.925e-02  -1.399   0.1654    
## res$Tregresores7  -6.890e-01  8.849e-02  -7.786 1.43e-11 ***
## res$Tregresores8  -1.698e-01  7.776e-02  -2.184   0.0317 *  
## res$Tregresores9  -4.812e-01  7.952e-02  -6.052 3.63e-08 ***
## res$Tregresores10  1.668e-01  7.232e-02   2.306   0.0235 *  
## res$Tregresores11 -4.429e-01  7.138e-02  -6.205 1.85e-08 ***
## res$Tregresores12  3.783e-01  6.378e-02   5.932 6.10e-08 ***
## res$Tregresores13 -6.898e-02  5.903e-02  -1.169   0.2458    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for gaussian family taken to be 9882.827)
## 
##     Null deviance: 645678695  on 100  degrees of freedom
## Residual deviance:    849923  on  86  degrees of freedom
## AIC: 1218.6
## 
## Number of Fisher Scoring iterations: 2
par(mfcol = c(2, 2))
plot(gfit3)

#Estimacion modelo glm (Gaussian)
gfit3 <- glm(gaperc.perc ~ 0 + res$Tregresores,family=gaussian(link="log"))
summary(gfit3)
## 
## Call:
## glm(formula = gaperc.perc ~ 0 + res$Tregresores, family = gaussian(link = "log"))
## 
## Deviance Residuals: 
##      Min        1Q    Median        3Q       Max  
## -283.618   -74.092    -0.785    67.613   229.296  
## 
## Coefficients:
##                     Estimate Std. Error t value Pr(>|t|)    
## res$TregresoresC   7.057e+01  3.439e-01 205.211  < 2e-16 ***
## res$Tregresores1   3.083e-03  2.175e-04  14.175  < 2e-16 ***
## res$Tregresores2  -9.230e-04  5.337e-05 -17.295  < 2e-16 ***
## res$Tregresores3  -3.022e-04  9.887e-05  -3.057 0.002983 ** 
## res$Tregresores4  -4.301e-04  5.455e-05  -7.885 9.03e-12 ***
## res$Tregresores5  -4.781e-04  6.920e-05  -6.910 7.98e-10 ***
## res$Tregresores6  -1.416e-04  5.601e-05  -2.528 0.013315 *  
## res$Tregresores7  -4.749e-04  5.505e-05  -8.628 2.82e-13 ***
## res$Tregresores8  -5.529e-05  5.300e-05  -1.043 0.299703    
## res$Tregresores9  -3.604e-04  4.689e-05  -7.687 2.26e-11 ***
## res$Tregresores10  1.725e-04  4.368e-05   3.950 0.000159 ***
## res$Tregresores11 -2.963e-04  4.166e-05  -7.112 3.18e-10 ***
## res$Tregresores12  2.523e-04  2.960e-05   8.523 4.60e-13 ***
## res$Tregresores13  5.803e-06  2.964e-05   0.196 0.845239    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for gaussian family taken to be 11714.23)
## 
##     Null deviance: 645206294  on 100  degrees of freedom
## Residual deviance:   1007424  on  86  degrees of freedom
## AIC: 1235.6
## 
## Number of Fisher Scoring iterations: 5
par(mfcol = c(2, 2))
plot(gfit3)

#Estimacion modelo glm (Gamma)
gfit3 <- glm(gaperc.perc ~ 0 + res$Tregresores,family=Gamma)
summary(gfit3)
## 
## Call:
## glm(formula = gaperc.perc ~ 0 + res$Tregresores, family = Gamma)
## 
## Deviance Residuals: 
##       Min         1Q     Median         3Q        Max  
## -0.217134  -0.027126   0.000826   0.029119   0.153912  
## 
## Coefficients:
##                     Estimate Std. Error t value Pr(>|t|)    
## res$TregresoresC   8.882e-03  1.858e-04  47.809  < 2e-16 ***
## res$Tregresores1  -2.080e-06  1.174e-07 -17.725  < 2e-16 ***
## res$Tregresores2   6.496e-07  2.800e-08  23.198  < 2e-16 ***
## res$Tregresores3  -9.964e-08  5.316e-08  -1.874 0.064307 .  
## res$Tregresores4   3.586e-07  2.907e-08  12.336  < 2e-16 ***
## res$Tregresores5   1.968e-07  3.673e-08   5.358 6.95e-07 ***
## res$Tregresores6   1.588e-07  2.995e-08   5.303 8.73e-07 ***
## res$Tregresores7   2.475e-07  2.898e-08   8.540 4.25e-13 ***
## res$Tregresores8   7.018e-08  2.815e-08   2.493 0.014580 *  
## res$Tregresores9   2.191e-07  2.481e-08   8.830 1.09e-13 ***
## res$Tregresores10 -9.230e-08  2.311e-08  -3.994 0.000136 ***
## res$Tregresores11  1.941e-07  2.211e-08   8.777 1.40e-13 ***
## res$Tregresores12 -1.359e-07  1.568e-08  -8.668 2.34e-13 ***
## res$Tregresores13 -4.319e-09  1.568e-08  -0.275 0.783632    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for Gamma family taken to be 0.003282825)
## 
##     Null deviance:     NaN  on 100  degrees of freedom
## Residual deviance: 0.28818  on  86  degrees of freedom
## AIC: 1266.9
## 
## Number of Fisher Scoring iterations: 4
par(mfcol = c(2, 2))
plot(gfit3)

#Estimacion modelo glm (Gamma)
gfit3 <- glm(gaperc.perc ~ 0 + res$Tregresores,family=Gamma(link="identity"))
summary(gfit3)
## 
## Call:
## glm(formula = gaperc.perc ~ 0 + res$Tregresores, family = Gamma(link = "identity"))
## 
## Deviance Residuals: 
##       Min         1Q     Median         3Q        Max  
## -0.179296  -0.029132  -0.002362   0.026257   0.166217  
## 
## Coefficients:
##                     Estimate Std. Error t value Pr(>|t|)    
## res$TregresoresC  9640.16293  292.28550  32.982  < 2e-16 ***
## res$Tregresores1     6.86216    0.21558  31.831  < 2e-16 ***
## res$Tregresores2    -0.86834    0.07253 -11.971  < 2e-16 ***
## res$Tregresores3    -0.63000    0.10540  -5.977 5.02e-08 ***
## res$Tregresores4    -0.37239    0.06834  -5.449 4.75e-07 ***
## res$Tregresores5    -0.60746    0.08552  -7.103 3.32e-10 ***
## res$Tregresores6    -0.11525    0.07022  -1.641  0.10442    
## res$Tregresores7    -0.58263    0.07703  -7.563 4.01e-11 ***
## res$Tregresores8    -0.21484    0.06843  -3.140  0.00232 ** 
## res$Tregresores9    -0.39005    0.07439  -5.243 1.11e-06 ***
## res$Tregresores10    0.10012    0.06745   1.484  0.14138    
## res$Tregresores11   -0.37675    0.07208  -5.227 1.19e-06 ***
## res$Tregresores12    0.26892    0.06631   4.056  0.00011 ***
## res$Tregresores13   -0.04842    0.07130  -0.679  0.49893