# 2.1.- Notaciones e hipótesis

# 2.1.1. Notaciones
# Para el Modelo de componente de error, el error es la suma de dos efectos:
# 1.- el efecto individual para el individuo n
# 2.- el efecto residual, efecto residual también llamado efecto idiosincrático v
# e=n+v
# NOTA: El error idiosincrático v en un modelo es una componente de error que
# representa las variaciones o discrepancias no explicadas por las variables 
# incluidas en el modelo. Se refiere a las diferencias individuales o únicas 
# que no pueden ser atribuidas a ninguna otra variable medida o conocida. 
# ese tipo de error puede surgir debido a factores no observados.
# En otras palabras, es una variación única o particular que afecta a un caso o 
# individuo en particular y no se puede generalizar a la población en su conjunto. 
# Este tipo de error a menudo se considera aleatorio y no sigue patrones predecibles.
# Por ejemplo, en el análisis de datos, el error idiosincrático podría deberse 
# a factores individuales únicos para un participante en un estudio, como sus 
# características personales o circunstancias específicas que no se han tenido 
# en cuenta en el modelo.
# Es importante señalar que el término "idiosincrático" generalmente se 
# utiliza para describir algo que es peculiar o distintivo de un individuo 
# o grupo en particular.


# El efecto individual n en un modelo componente de error se refiere a la 
# influencia o impacto que tiene cada observación o unidad de datos en la 
# variabilidad del modelo. Representa las características únicas de cada 
# individuo o caso que no pueden ser explicadas por las variables incluidas 
# en el modelo. Estos efectos individuales pueden surgir debido a factores no observados.
# En el contexto de modelos estadísticos o econométricos, el "efecto individual" 
# se refiere a la variabilidad o influencia específica de cada individuo 
# en el modelo. Este efecto es parte del componente de error y representa 
# las características únicas o idiosincráticas de cada observación que 
# no se pueden explicar mediante las variables incluidas en el modelo.
# Cuando se ajusta un modelo a datos, se asume que la relación entre las 
# variables independientes y la variable dependiente captura la tendencia 
# general en la población. Sin embargo, siempre hay factores no observados 
# o no incluidos en el modelo que pueden afectar a cada individuo de manera única. 
# Estos factores contribuyen al efecto individual o componente idiosincrático del error.
# El componente de error se compone de dos partes: el efecto sistemático 
# (que puede deberse a errores de medición, por ejemplo) y el efecto individual, 
# que es la variabilidad única para cada observación.
# En términos más simples, el efecto individual refleja las diferencias 
# específicas entre las observaciones que no pueden atribuirse a las variables 
# incluidas en el modelo y que son tratadas como una fuente de variabilidad 
# no sistemática. Este efecto es parte integral de la comprensión y modelado 
# de la variabilidad en los datos y juega un papel importante al interpretar 
# los resultados y las predicciones de un modelo.

# 2.1.3 Hipótesis concernientes a los errores
# valor esperado de cada error es cero
# efecto individual n es homocedástico y mutualmente incorrelacionado
# efecto idiosincrático v es también homocedástico y tambien incorrelacionado
# los dos componentes del error n y v son incorrelacionados
# por lo tanto varianza de e es igual a varianza de n más varianza de v , o sea, var e = var n + var v
# varianza de dos errores del mismo individuo para dos diferentes periodos es E(nt,emt) = E(nt,ems) = 0

# 2.2.- Estimadores de Mínimos cuadrados ordinarios

# la variabilidad en un panel tiene dos componentes
# 1.- between o variabilidad inter-individuo, la cual es la variabilidad de las variables
#     del panel medidas en medias individuales.
# 2.- within o variabilidad intra individuos, la cual es la variabilidad de las variables
#     del panel medidas en desviación de la media individual (within model) 

# tres estimaciones pueden ser desarrolladas
# 1.- datos en fila
# 2.- en medias individuales de los datos (between model)
# 3.- desviaciones de la media individual (within model)

# Conclusion OLS 
# 1.- estimadores ols insesgados y consistentes, pero
# 2.- estimador usual de varianza no es correcta y debe ser reemplazada por otra expresión mas compleja
# 3.- estimador ols no es el mejor estimador lineal insesgado, lo cual significa que existe otro mejor estimador lineal insesgado

# 2.2.2.- Estimador between
# 2.2.3.- Estimador within
# Es tambien llamado modelo de efectos fijos o modelo de mínimos cuadrados dummy

#### Example 2-1 WITHIN ESTIMATOR

## ------------------------------------------------------------------------
library(plm)
data("TobinQ", package = "pder")
# 188 firmas americanas en 35 años
# modelo: Teoría de la Inversión de Tobin 1969,
# La inversión explica la razón entre la razón entre el valor de la firma
# costo de reemplazo de su capital físico, razón llamada Q de Tobin.
# Si el mercado financiero es perfecto, el valor de la firma iguala al valor
# actual de sus futuros beneficios. Si Q>1, los beneficios de las inversiones
# (Q es inversión dividido por stock de capital) son mayores a los costos y la inversión es valorada.

## ------------------------------------------------------------------------
pTobinQ <- pdata.frame(TobinQ)
pTobinQa <- pdata.frame(TobinQ, index = 188)
pTobinQb <- pdata.frame(TobinQ, index = c('cusip'))
pTobinQc <- pdata.frame(TobinQ, index = c('cusip', 'year'))
#pdata.frame contiene el índice

## ------------------------------------------------------------------------
pdim(pTobinQ)
#inspecciona las dimensiones de los datos

## ----results = 'hide'----------------------------------------------------
pdim(TobinQ, index = 'cusip')
pdim(TobinQ)
#inspecciona las dimensiones de los datos

## ------------------------------------------------------------------------
head(index(pTobinQ))
#inspecciona datos

## ------------------------------------------------------------------------
Qeq <- ikn ~ qn #modelo de regresión
Q.pooling <- plm(Qeq, pTobinQ, model = "pooling")
Q.within <- update(Q.pooling, model = "within")
Q.between <- update(Q.pooling, model = "between")

## ------------------------------------------------------------------------
Q.within
summary(Q.within)
#resultados del estimador within

## ------------------------------------------------------------------------
head(fixef(Q.within, type = "level"))
head(fixef(Q.within, type = "dfirst"))
head(fixef(Q.within, type = "dmean"))
#Para estimador within se computan los efectos individuales "n"
#fixef computa el efecto individual. Hay tres opciones de efectos fijos
#level entrega los interceptos  individual alfa+n
#dfirst entrega efecto individuales en desviaciones desde el primer individuo
#alfa es en este caso el intercepto del primer individuo.
#dmean entrega los efectos individuales en desviaciones de su media, en
#este caso alfa es el promedio de los interceptos individual

## ------------------------------------------------------------------------
head(coef(lm(ikn ~ qn + factor(cusip), pTobinQ)))
#equivalencia within con estimar un ols, ver intercepto


# 2.3.- Estimador de mínimos cuadrados generalizados

# Within estimator es una regresión donde los datos han sido transformados, entonces
# los efectos individuales se desvanecen, mientras que eso no ocurre en el modelo dummy.
# GlS considera el efecto individual como aleatorio y dibuja una específica distribución
# y busca estimar los parámetros de esta distribución en orden a estimar los 
# parámetros de esta distribución para obtener estimadores eficientes de las pendientes.

# 2.3.1.- Prentacion del estimador GLS
# La importancia del efecto individual en la composición de los errores, medida como
# su participación en la varianza total determina cuan cerca estará el estimador de
# within or panel ols, los cuales son obtenidos como casos especiales, cuando la
# varianza del efecto individual sigma de "n" domina (teta tiende a 1) o se desvanece (teta tiende a cero).

# 2.3.2.- Estimación de la varianza de los componentes del error
# Los residuos de estimadores consistentesson estimados para usar parametros desconocidos
# sigma v y sigma n el estimador es llamado estimador de mínimos cuadrados generalizados factibles.  


#### Example 2-2
#modelo de efectos aleatorios

## ------------------------------------------------------------------------
Q.swar <- plm(Qeq, pTobinQ, model = "random", random.method = "swar")
Q.swar2 <- plm(Qeq, pTobinQ, model = "random",
               random.models = c("within", "between"),
               random.dfcor = c(2, 2))
summary(Q.swar)
#La parte en la varianza del efecto individual es de 27.5%. El parámetro
#teta  indica la parte de la media individual que es removida de cada
#variable por el estimador de GLS, que es aquí 0.735.  Aquí, altos valores se 
#deben a altas dimensiones del panel (aquí35, ver fórmula página 35)
#así, el estimador gls es cercano a estimador within (teta=1) que a ols donde teta es 0

## ------------------------------------------------------------------------
ercomp(Qeq, pTobinQ)
ercomp(Q.swar)

## ------------------------------------------------------------------------
Q.walhus <- update(Q.swar, random.method = "swar")
Q.amemiya <- update(Q.swar, random.method = "amemiya")
Q.nerlove <- update(Q.swar, random.method = "nerlove")
Q.models <- list(swar = Q.swar, walhus = Q.walhus,
                 amemiya = Q.amemiya, nerlove = Q.nerlove)
sapply(Q.models, function(x) ercomp(x)$theta)
sapply(Q.models, coef)
# el primer sapply extrae con el comando ercomp el objeto teta indicando la
# proporción de la media individual que es removida desde las variables, estos 
# son muy cercanos unos a otros y consequentemente, los coeficientes 
# estimados para los cuatro modelos son casi idénticos.


# 2.4.- Compareción de los estimadores

# 2.4.1.- Relaciones entre estimadores
# estimadoes de ols y gls entregan estimadores intermedios entre within y between

# 2.4.2.- Comparación de las varianzas
# la varianza de within es definida positiva. estimador gls es más eficiente que within.
# la varianza de between es también definida positiva.

# 2.4.3.- Efectos fijos versus efectos aleatorios
# Los efectos individuales no son fijos o aleatorios por naturalesza. El principal argumento
# que nos lleva a escoger un modelo es la posibilidad de correlación entre covariables
# y efectos individuales. Manteniendo la hipótesis E(Xv)=0 hay dos casos
# 1.- E(Exn)=0, efecto individual no correlacionado. En este caso ambos modelos son
# consistentes, pero modelo de efectos aleatorios es más eficiente.
# 2.- E(Exn) distinto de cero. Los efectos individuales están correlacionados, sólo
# método de efectos fijos dan parámetros consistentes, con transformaciones within, efecto individual se desvanece.

#### Example 2-3

------------------------------------------------------------------------
  sapply(list(pooling = Q.pooling, within = Q.within,
              between = Q.between, swar = Q.swar),
         function(x) coef(summary(x))["qn", c("Estimate", "Std. Error")])
#extrae coeficientes de qn y sd, se considsera solo swar ya que dieron parecidos resultados anteriormente
#estimadores ols y gls están entre within y between. Gls es más cercano a within que OLs.
#existiendo efectos fijos la desviación estandar de GLS esm más baja que within y between.

## ------------------------------------------------------------------------
#la relación formal entre los diferentes estimadores es entonces ilustrada la 
#varianza compartida de la variable qn
summary(pTobinQ$qn) # estructura de varianza de la serie. NOTA: IMPORTANTE VER QUE ES pTobinQ$qn , no otra serie

## ------------------------------------------------------------------------
###ANALIZAR EN LAS ECUACIONES DONDE SALE UN PROMEDIO PONDERADO
SxxW <- sum(Within(pTobinQ$qn) ^ 2)
SxxB <- sum((Between(pTobinQ$qn) - mean(pTobinQ$qn)) ^ 2)
SxxTot <- sum( (pTobinQ$qn - mean(pTobinQ$qn)) ^ 2)
pondW <- SxxW / SxxTot
pondW
pondW * coef(Q.within)[["qn"]] +
  (1 - pondW) * coef(Q.between)[["qn"]]
# el peso del modelo within es 57%
# estimador ols es 0.004392 que es la mitad entre within 0.0037919483 y between 0.0051847368


## ------------------------------------------------------------------------
# Para obtener estimador Gls primero estimar phi de residuos de within
# y de las estimasiones between
T <- 35
N <- 188
smxt2 <- deviance(Q.between) * T / (N - 2)
sidios2 <- deviance(Q.within) / (N * (T - 1) - 1)
phi <- sqrt(sidios2 / smxt2)

## ------------------------------------------------------------------------
#los ponderadores de between,within y GLS son entonces computados
pondW <- SxxW / (SxxW + phi^2 * SxxB)
pondW
pondW * coef(Q.within)[["qn"]] +
  (1 - pondW) * coef(Q.between)[["qn"]]
# el ponderador de within es 0.9495591, mucho mayor por GLS que por OLS,
# debido a T largo (35) y el estimador gls 0.003862202, muy cercano a within 0.0037919483


# 2.4.4.- Algunos ejemplos lineales simples
#### Example 2-4
#Kinal and Lahiri 1993, Analiza tipo de cambio para países en desarrollo en relación
#a importaciones a producto nacional bruto, ambas variables medidas en logaritmos 
#percápita.
## ---------- general preliminaries para hacer gráfico----------------------
library(plm)
baw <- FALSE
library("ggplot2")
plotplm <- function(x, N = 10, seed = 1, lgth = 0.1){
  mydata <- model.frame(x)
  onames <- names(mydata)
  names(mydata) <- c("y", "x")
  LGTH <- (max(mydata$x) - min(mydata$x)) ^ 2 +
    (max(mydata$y) - min(mydata$y)) ^ 2
  lgth <- lgth * sqrt(LGTH) / 2
  seed <- set.seed(seed)
  theids <- sample(unique(index(mydata)[[1]]), N)
  small <- subset(mydata, index(mydata)[[1]] %in% theids)
  small <- cbind(small, id = index(small)[[1]])
  ymean <- with(small, tapply(y, id, mean)[as.character(theids)])
  xmean <- with(small, tapply(x, id, mean)[as.character(theids)])
  within <- update(x, model = "within")
  alpha <- mean(mydata[[1]]) - coef(within) * mean(mydata[[2]])
  beta <- as.numeric(coef(within))
  random <- update(within, model = "random")
  between <- update(within, model = "between")
  ols <- update(within, model = "pooling")
  FE <- fixef(within)[as.character(theids)]
  DATA <- data.frame(id = names(FE), FE = as.numeric(FE), slope = beta,
                     xmean = xmean, ymean = ymean,
                     xmin = xmean - lgth / sqrt(1 + beta ^ 2),
                     xmax = xmean + lgth / sqrt(1 + beta ^ 2),
                     ymin = ymean - lgth * beta / sqrt(1 + beta ^ 2),
                     ymax = ymean + lgth * beta / sqrt(1 + beta ^ 2))
  MODELS <- data.frame(models = c("ols", "random", "within", "between"),
                       intercept = c(coef(ols)[1], coef(random)[1], alpha, coef(between)[1]),
                       slope = c(coef(ols)[2], coef(random)[2], coef(within), coef(between)[2]))
  if (! baw){
    ggplot(data = small, aes(x = x, y = y, color = id)) + geom_point(size = 0.4) +
      geom_segment(aes(x = xmin, xend = xmax, y = ymin, yend = ymax, color = id), data = DATA) +
      geom_abline(aes(intercept = intercept, slope = slope, lty = models), data = MODELS) +
      geom_point(aes(x = xmean, y = ymean, color = id), size = 1, shape = 13, data = DATA) +
      xlab(onames[2]) + ylab(onames[1]) +
      theme(legend.text = element_text(size = 6),
            legend.title= element_text(size = 8),
            axis.title = element_text(size = 8))
  } else {
    ggplot(data = small, aes(x = x, y = y)) + geom_point(size = 0.4, aes(shape = id)) +
      geom_segment(aes(x = xmin, xend = xmax, y = ymin, yend = ymax), data = DATA) +
      geom_abline(aes(intercept = intercept, slope = slope, lty = models), data = MODELS) +
      geom_point(aes(x = xmean, y = ymean, shape = id), size = 1,  data = DATA) +
      scale_shape_manual(values=1:N) +
      xlab(onames[2]) + ylab(onames[1]) +
      theme(legend.text = element_text(size = 6),
            legend.title= element_text(size = 8),
            axis.title = element_text(size = 8))
  }
}

## ------------------------------------------------------------------------
data("ForeignTrade", package = "pder")
FT <- pdata.frame(ForeignTrade)
summary(FT$gnp)
ercomp(imports ~ gnp, FT)# obtiene la varianza de los componentes del error
models <- c("within", "random", "pooling", "between")
sapply(models, function(x) coef(plm(imports ~ gnp, FT, model = x))["gnp"])
# imports y gdp medidas en logaritmos per cápita
# sapply extrae los coeficientes de los modelos estimados
# La varianza de la covariable y de el error es casi toda debida a la variación
# inter individuos 0.98248044 y 0.926 respectivamente. En este caso, el estimador gls 
# consiste en remover 94% de la media individual y de esa forma es casi idéntica 
# al modelo within.

## ------------- figure 2.1 ----------------------------------------------
data("ForeignTrade", package = "pder")
plotplm(plm(imports~gnp, ForeignTrade), N = 10, seed = 4, lgth = .05)

#### Example 2-5

## ------------------------------------------------------------------------
# El-Gamal and Inaniglu 2005. Analizan la función de costos de los bancos,
# la única covariable es la producción y ambas están en logaritmos.
data("TurkishBanks", package = "pder")
TurkishBanks <- na.omit(TurkishBanks)
TB <- pdata.frame(TurkishBanks)
summary(log(TB$output))
ercomp(log(cost) ~ log(output), TB)
sapply(models, function(x)
  coef(plm(log(cost) ~ log(output), TB, model = x))["log(output)"])

#la variación de la covariable es principalmente inter individuos 85% (0.84730373)
#pero para el error, el efecto idiosincrático e individual son similares 60% y 40%
#Así, OLS y Between son estimadores cercanos 0.8006578 y 0.8531416 
#GLS 0.6470614 es cercano a la mitad entre ols 0.8006578 y within 0.5063813
#porque la tranformación remueve 65% de la media individual 0.6473.
#La figura 2.2  indica que los efectos individuales  están positivamente correlacionados
#con la covariable, y consecuentemente, between, ols,y en menor medida estimadores gls
#son sesgados al alza.

## ------------- figure 2.2 ----------------------------------------------
data("TurkishBanks", package = "pder")
TurkishBanks <- na.omit(TurkishBanks)
TB <- pdata.frame(TurkishBanks)

plotplm(plm(log(cost)~log(output), TB), N = 8)


#### Example 2-6
#Kumbhakar 1996 y Horrace and Smith 1996, realizan una función de costos de 
#producción de una firma eléctrica en Texas. Los costos son los gastos laborales
#más gastos de capital más gastos en combustibles.

## ------------------------------------------------------------------------
data("TexasElectr", package = "pder")
TexasElectr$cost <- with(TexasElectr, explab + expfuel + expcap)
TE <- pdata.frame(TexasElectr)
summary(log(TE$output))
ercomp(log(cost) ~ log(output), TE)
sapply(models, function(x)
  coef(plm(log(cost) ~ log(output), TE, model = x))["log(output)"])
# la variación de la covariable es principalmente inter individuo 0.8233617
# aunque no es el caso del error, lo idiosincrático es muy importante, sólo
# una pequeña parte de la media individual es removida aplicando GLS.
# gls y ols son casi iguales. Estimadores within es mucho mayor porque el efecto
# individual y la covariable están negativamente correlacionadas. figura 2.3

## ------------- figure 2.3 -----------------------------------------------
data("TexasElectr", package = "pder")
TexasElectr$cost <- with(TexasElectr, explab + expfuel + expcap)

plotplm(plm(log(cost)~log(output), TexasElectr), N = 8)

#### Example 2-7

## ------------------------------------------------------------------------
#Acemoglu, Johnson, Robinson y Yared 2008, 25 países entre 1850 y 2000.
#Es un análisis causal entre riqueza (rezagado un periódo) y democracia.

data("DemocracyIncome25", package = "pder")
DI <- pdata.frame(DemocracyIncome25)
summary(lag(DI$income))
ercomp(democracy ~ lag(income), DI)
sapply(models, function(x)
  coef(plm(democracy ~ lag(income), DI, model = x))["lag(income)"])
# La composición variación inter individuos para la covariables (0.4297745)
# y para el error (0.209) es débil. 41% (no se de donde sale) de la media 
# individual  es removida desde las variables en orden a computar estimadores gls
# La figura muestra que no hay una correlación obvia entre efectos individuales 
# y la covariable. Consecuentemente todos los estimadores son cercanos unos a otros.

data("DemocracyIncome25", package = "pder")
plotplm(plm(democracy~lag(log(income)), DemocracyIncome25), N = 8)

# 2.5.- Modelo de componente de error de dos formas

# Se agrega un afecto invariante en el tiempo ut al modelo
# y=alfa+beta*x+n+ut+v

# 2.5.1 Error de componentes en el modelo de dos formas
# Para la variable tiempo de hacen los mismos supuestos que para efecto individual
# u tiene media cero, homocedástico, var constante
# efecto tiempo mutuamente incorrelacionados
# efecto tiempo incorrelacionado con efecto individual e idiosincrético

# 2.5.2.- Modelo de efectos fijos y aleatorios
# como en el modelo de efectos individuales, este puede ser obtenido de dos formas
# 1.- estimando por ols que incluya individuos y dummies de tiempo
# 2.- estimando por ols el modelo donde todas las variables han sido transformadas
#     en desviaciones de sus medias individuales y de tiempo.


#### Example 2-8

## ------------------------------------------------------------------------
Q.models2 <- lapply(Q.models, function(x) update(x, effect = "twoways"))
sapply(Q.models2, function(x) sqrt(ercomp(x)$sigma2))
sapply(Q.models2, function(x) ercomp(x)$theta)

#El primer sapply extrae la desviación estándar de los tres componentes del error. 
#Como para el modelo de efectos individuales, la estimación de los componentes 
#de la varianza son muy similares. La desviación estándar de los efectos individuales 
#es más del doble de uno de los efectos del tiempo. El segundo comando extrae 
#el parámetro teta, Cerca del 75% de la media individual y de tiempo son 
# removidas desde estas variables.


# 2.6.- Estimación de una ecuación de salarios

#### Example 2-9
# Vella and Verbeek 1998, La principal covariable de interés es generalmente educación
# investigan el impacto de las negociaciones colectivas sobre los salarios y la 
# potencial endogeneidad de esta covariable. 545 hombres observados durante
# 8 años de 1980 a 1987.

# Principales preocupaciones de la econometría de panel de datos respecto de la
# correlación entre algunas covariables y los dos componentes del término de error:
#1.- Si no hay correlación, use GLS, lo que da estimadores consistentes y eficientes
# y permite estimar los coeficientes para covariables invariantes de tiempo.
#2.- Si hay correlación solo con el componente individual del error, use within, 
#proporcionará estimadores consistentes sin embargo, el efecto de las covariables invariantes
#de tiempo no puede ser estimado.
#3.- Si hay correlación entre alguna covariable y ambos componentes del término del error
# ninguno de los modelos presentados es consistente.
## ------------------------------------------------------------------------
data("UnionWage", package = "pglm")
pdim(UnionWage)

# variable de respuesta: wage, logaritmo del salario por hora
# Modelos within y ols incluyendo o no dummies de ocupación
## ------------------------------------------------------------------------
UnionWage$exper2 <- with(UnionWage, exper ^ 2)
wages.within1 <- plm(wage ~ union + school + exper + exper2 +
                       com + rural + married + health +
                       region + sector, UnionWage)
wages.within2 <- plm(wage ~ union + school + exper + exper2 +
                       com + rural + married + health +
                       region + sector + occ, UnionWage)
wages.pooling1 <- update(wages.within1, model = "pooling")
wages.pooling2 <- update(wages.within2, model = "pooling")

## ------------------------------------------------------------------------
library("stargazer")
stargazer(wages.pooling2, wages.pooling1, wages.within2, wages.within1,
          omit = c("region", "sector", "occ"),
          omit.labels = c("region dummies", "sector dummies", "occupation dummies"),
          column.labels = c("pooling estimation", "within estimation"),
          column.separate = c(2, 2),
          dep.var.labels = "log of hourly wage",
          covariate.labels = c("union membership", "education years",
                               "experience years", "experience years squared",
                               "black", "hispanic", "rural residence",
                               "married", "health problems",
                               "Intercept"),
          omit.stat = c("adj.rsq", "f"),
          title = "Wage equation",
          label = "tab:wagesresult",
          no.space = TRUE,
          type="text", #imprime texto en la consola de R
          out = "a.pdf" #imprime en el directorio la tabla en pdf, se abre con texworks, hay que bajar miktex (puede ser tambien html o word)
)
#Union memberships premium es 17,6% con OLS y cae a 8% con modelo within.
#Esto indica que el efecto individualson fuertemente y positivamente 
#correlacionado con union membership.
#El retorno a la educación es de 7,8% para un año más de educación, Este resultado
#es consistente sólo si el nivel de educación  no esta correlacionado con los
#efectos individual.Si hay alguna correlación. Si hay alguna correlación, 
#el único modelo consistente es within. Desafortunadamente, la transformación within
# elimina todas la covariantes tiempo invariantes (eduacación, comunidad y 
#residencia rural)

#Estye ejemplo ilustró la perincipal problema en panel data, la correlación entre covariables
#y los dos componentes del término de error:

#Si no hay correlación use GLS, que da estimadores consistentes y eficientes
#y permite estimar los coeficientes para covariates tiempo invariante
#Si hay correlación sólo con el componente individual del error, use
#modelo within, proporciona estimaciones consistentes pero el efecto tiempo invariante covariates
#no puede ser estimado
#Si hay correlación entre alguna covariates y ambos componentes del término del error
#ninguno de los modelos presentados es consistente, que es este caso.
#


