Tema 4: Variable Dependiente Limitada ( Limited Dependent Variables )
En algunos casos, la variable dependiente de interés \(y\) presenta restricciones en los valores que puede asumir. Esto es conocido como Variable Dependiente Limitada (Limited Dependent Variable - LDV, en inglés). Algunos ejemplos comunes incluyen:
Participación laboral: Basados en un modelo de oferta laboral, nos interesa estudiar la decisión de participar en el mercado laboral:
\[ \begin{array}{ccl} Y = 1 & , & \text{si participa en el mercado laboral} \\ Y = 0 & , & \text{si no participa en el mercado laboral} \end{array} \]
Inversión en investigación y desarrollo (I+D): Al estudiar las limitaciones de inversión en I+D, puede surgir una selección endógena si la muestra está compuesta solo de empresas que ya invierten en I+D.
Para una respuesta cualitativa (como la respuesta binaria de participación laboral), una primera aproximación puede ser el modelo de Mínimos Cuadrados Ordinarios (OLS):
En algunos casos, OLS puede proporcionar una aproximación aceptable de \(\mathbb{E}(Y|X)\) bajo ciertos supuestos. Sin embargo, tiene limitaciones importantes, tales como:
Nota: Aquí, “limitaciones” se pone entre comillas ya que discutiremos estos puntos en mayor profundidad.
En esta sección, exploraremos los modelos más comunes para variables dependientes limitadas, incluyendo:
Supongamos que la variable dependiente observada toma valores binarios, como los siguientes:
\[ \begin{array}{ccl} Y = 1 & & \text{Si se cumple cierta condición} \\ Y = 0 & & \text{Si no se cumple cierta condición} \\ \end{array} \]
Ejemplo: Participación en el mercado laboral
La media condicional de la población se puede interpretar como la probabilidad de que \(Y = 1\) dado \(X\), es decir, \(\mathbb{E}(Y|X) = P(Y = 1|X)\).
En el modelo de probabilidad lineal, la probabilidad está dada por:
\[ p = \mathbb{E}(Y|X) = X\beta \]
Este modelo se ajusta utilizando Mínimos Cuadrados Ordinarios (OLS):
\[ Y = X\beta + u \]
Potenciales Desventajas de usar LPM (basadas en el texto de pregrado)
Ventajas de usar LPM (Angrist y Pischke)
Nota: Angrist sugiere que en investigaciones aplicadas, enfocadas en el efecto promedio de tratamiento o en la dirección del efecto, el LPM es una opción práctica y defendible.
Objetivo: Modelar la probabilidad \(p\) (media condicional) dentro del intervalo [0,1] usando funciones de distribución de probabilidad.
Se pueden derivar los modelos a partir de una variable latente \(Y^*\), que representa una variable no observada
( podemos pensar en esta variable latente como una variable con ‘mayor libertad’, en el sentido que puede ser no negativa y/o continua “no limitada” ).
Ejemplo: En el caso de participación laboral (\(Y\) = 1 si participa, \(Y\) = 0 si no participa), supongamos que hay una variable latente que representa el deseo o la intención de participar:
\[ Y^* = X\beta + u \]
Se observa \(Y\) de la siguiente forma: \[Y=\mathbb{I}\{Y^*>0\}\]
Probabilidad. Por ejemplo, bajo el supuesto de que \(u \sim \mathbb{N}(0,1)\), tenemos: \[ p = \mathbb{E}(Y|X) = P(Y = 1|X) = P(Y^* > 0 |X) = P(u < X\beta) = \Phi(X\beta) \]
Una primer pregunta sería si aún podríamos usar la aproximación de OLS (minimizar residuos al cuadrados) para obtener los parámetros estimados, y la respuesta sería, en principio, sí:
\[min_\beta\,(Y-\mathbb{E}(Y|X))'(Y-\mathbb{E}(Y|X))\]
es decir, sería mínimos cuadrados no lineales (NLS).
Aunque teóricamente es posible minimizar el residuo al cuadrado, este enfoque no es eficiente en términos de varianza (ya no es BLUE) ni computacionalmente óptimo.
Condiciones de Primer Orden para MLE
Condiciones de Primer Orden para MLE - Relación Empírica entre LPM, Logit y Probit
Condiciones de Segundo Orden para MLE
Las condiciones de segundo orden para la matriz de varianza de los estimadores son:
Logit: \[ \frac{\partial^2 \ell}{\partial \beta \partial \beta'} = -\sum \Lambda_i (1 - \Lambda_i) X_i X_i' \]
Probit: \[ \frac{\partial^2 \ell}{\partial \beta \partial \beta'} = -\sum \psi_i (\psi_i - X_i' \beta) X_i X_i' \] donde \(\psi_i = \frac{\phi_i}{\Phi_i}\) si \(Y_i = 1\), y \(\psi_i = -\frac{\phi_i}{1 - \Phi_i}\) si \(Y_i = 0\).
En logit/probit, los coeficientes estimados no representan efectos marginales.
El efecto marginal de un cambio en una variable \(X^{(j)}\) sobre la probabilidad es: \[ \frac{\partial \mathbb{E}(Y|X)}{\partial X^{(j)}} = f(X_i' \beta) \cdot \beta_{(j)} \]
Comparación con LPM:
Evaluación de Efectos Marginales:
Intuición: La elección del individuo puede modelarse como una comparación entre la utilidad esperada de cada opción, considerando tanto factores observables como no observables.
Nota: El modelo puede ampliarse a elecciones multinomiales y se aplica ampliamente en modelos de elección discreta.
Software:
probit
para Probit y logit
para Logit. Aunque, de forma mas general, recordemos que se puede usan MLE al crear un programa en Stata y usar el comando ml
.glm
de la libreria ‘stats’. Aunque, de forma mas general, recordemos que se puede usan MLE al crear una función en R y usar la librearia o paquete maxLik
.probit
y logit
)ml
)Nivel usuario: glm()
# 1. Simular datos
set.seed(123)
nobs <- 100
x <- rnorm(nobs)
y <- rbinom(n=nobs, size=1, prob=pnorm(x))
# 2. Comparar LMP / Logit / Probit
lpm <- lm(y~x)
logit <- glm(y~x, family=binomial(link="logit"))
probit<- glm(y~x, family=binomial(link="probit"))
library(stargazer)
stargazer(lpm, logit, probit, type="text")
# Comparación usando mfx
library(mfx)
logitmfx(y~x, data=data.frame(cbind(y,x)))
##
## ============================================================
## Dependent variable:
## ----------------------------------------
## y
## OLS logistic probit
## (1) (2) (3)
## ------------------------------------------------------------
## x 0.303*** 2.083*** 1.186***
## (0.044) (0.447) (0.234)
##
## Constant 0.603*** 0.683** 0.376**
## (0.040) (0.269) (0.152)
##
## ------------------------------------------------------------
## Observations 100 100 100
## R2 0.326
## Adjusted R2 0.319
## Log Likelihood -45.679 -45.875
## Akaike Inf. Crit. 95.358 95.750
## Residual Std. Error 0.400 (df = 98)
## F Statistic 47.369*** (df = 1; 98)
## ============================================================
## Note: *p<0.1; **p<0.05; ***p<0.01
## Call:
## logitmfx(formula = y ~ x, data = data.frame(cbind(y, x)))
##
## Marginal Effects:
## dF/dx Std. Err. z P>|z|
## x 0.433156 0.085583 5.0612 4.166e-07 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Nivel intermedio: maxLik
# Código de programación en R (by luischanci)
library(maxLik)
# 1. Simulate data
set.seed(123)
nobs <- 100
x <- rnorm(nobs)
y <- rbinom(n = nobs, size = 1, prob = pnorm(x))
# 2. Define the log-likelihood function
probit_loglik <- function(params) {
beta0 <- params[1]
beta1 <- params[2]
mu <- beta0 + beta1 * x
# Log-likelihood components
ll_1 <- log(pnorm(mu))[y == 1]
ll_0 <- log(1 - pnorm(mu))[y == 0]
return(sum(ll_1, ll_0))
}
# 3. Estimate parameters using MaxLik
inicial <- c(0.1, 0.1)
probit_mle <- maxLik(logLik = probit_loglik, start = inicial)
summary(probit_mle)
## --------------------------------------------
## Maximum Likelihood estimation
## Newton-Raphson maximisation, 5 iterations
## Return code 1: gradient close to zero (gradtol)
## Log-Likelihood: -45.8751
## 2 free parameters
## Estimates:
## Estimate Std. error t value Pr(> t)
## [1,] 0.3758 0.1517 2.477 0.0133 *
## [2,] 1.1859 0.2321 5.110 3.23e-07 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## --------------------------------------------
Referencia: Esta sección sigue el capítulo 15 de Cameron y Trivedi (2005).
Supongamos que existen \(J + 1\) alternativas, donde se designa una categoría como base de comparación.
Las funciones de probabilidad para cada alternativa son:
Para la categoría base \(Y=0\): \[ Pr(Y=0|\boldsymbol{X}) = \frac{1}{\left[1 + \sum_{j=1}^J \exp(X \beta^{(j)})\right]} \]
Para cualquier otra categoría \(Y=j\), con \(j=1,...,J\): \[ Pr(Y=j|\boldsymbol{X}) = \frac{\exp(X \beta^{(j)})}{\left[1 + \sum_{j=1}^J \exp(X \beta^{(j)})\right]} \]
Interpretación de los Coeficientes:
Log de los Coeficientes:
Con estas probabilidades, se pueden construir modelos que expliquen la preferencia por una opción sobre otras a partir de las características observables y la estructura de utilidades latentes.
Independencia de Alternativas Irrelevantes (IAI)
Los modelos multinomiales como el logit asumen la independencia de alternativas irrelevantes (IAI). Esto significa que la relación de probabilidades entre dos opciones es independiente de la presencia o ausencia de otras alternativas.
Como vimos, para dos respuestas \(k\) y \(r\), la razón de probabilidades se expresa como: \[\frac{Pr(Y_i = k)}{Pr(Y_i = r)} = \exp \left( X_i' (\beta^k - \beta^r) \right)\]
Este supuesto facilita la estimación y análisis de los modelos, pero también limita la flexibilidad del modelo en situaciones donde las alternativas pueden estar correlacionadas o donde la presencia de otras opciones influye en la elección relativa entre dos opciones.
Función de Verosimilitud La función de verosimilitud a maximizar es:
\[\mathcal{L} = \sum_{i=1}^N \sum_{j=0}^J d_{ij} \cdot \ln \left( P(Y_i = j) \right)\]
Donde \(d_{ij}\) es una variable indicadora (dummy) que toma el valor de 1 si el individuo \(i\) escoge la alternativa \(j\), y 0 en caso contrario.
Condiciones de Primer Orden: Las condiciones necesarias de primer orden para maximizar la verosimilitud son: \[\frac{\partial \mathcal{L}}{\partial \beta^j} = \sum_i (d_{ij} - P_{ij}) \cdot X_i \quad \text{para } j = 1, \ldots, J\]
El modelo de Logit Condicional es una extensión del logit multinomial que permite que las probabilidades de elección dependan no solo de las características individuales, sino también de las características específicas de cada alternativa. Ambos modelos permiten manejar múltiples alternativas no ordenadas, pero el logit condicional incorpora explícitamente características de cada opción.
El modelo logit condicional es útil en contextos donde las opciones de elección tienen características propias que influyen en la decisión del individuo. Ejemplos:
Referencia: Ver capítulo 15 en Cameron y Trivedi para una discusión detallada.
Probabilidad de Elección y función de verosimilitud
El modelo de Multinomial Probit es una alternativa al Multinomial Logit cuando se desea incorporar correlación entre alternativas.
A diferencia del multinomial logit, el multinomial probit no asume Independencia de Alternativas Irrelevantes (IAI). Esto significa que la relación de probabilidades entre dos opciones sí puede depender de la presencia o ausencia de otras alternativas.
El Multinomial Probit permite relajarse del supuesto de IAI ya que modela la correlación entre los errores de las alternativas mediante una distribución normal multivariada. Esto permite una mayor flexibilidad en escenarios donde las alternativas son similares y podrían estar correlacionadas, como en la elección de diferentes marcas o modos de transporte.
En el multinomial probit, la probabilidad de elegir una alternativa involucra múltiples integrales de la función de densidad normal multivariada. Esto genera un problema de alta complejidad computacional debido a la necesidad de calcular integrales múltiples.
Por ejemplo, para un modelo con tres alternativas, la probabilidad de elegir una de ellas está dada por: \[ Pr(Y_i = 1) = \iint f(u_{i2}, u_{i3}) \, du_{i2} \, du_{i3} \]
Aquí, \(f(u_{i2}, u_{i3})\) representa la función de densidad conjunta de una distribución normal bivariada. A medida que aumenta el número de alternativas, el número de integrales necesarias también aumenta, lo que complica el cálculo.
En la práctica, para resolver este problema, se emplean técnicas de simulación como el Método de Simulación de Máxima Verosimilitud (ML) o métodos basados en Monte Carlo para aproximar las probabilidades.
Función de Verosimilitud Similar al multinomial logit, el modelo multinomial probit utiliza una función de verosimilitud para estimar los parámetros. Sin embargo, debido a las integrales mencionadas, la maximización de la verosimilitud es considerablemente más complicada. La función de verosimilitud, en este caso, requiere aproximaciones numéricas para poder resolver los múltiples integrales.
Nota: La elección entre el multinomial logit y el multinomial probit depende de la aplicación específica y la disponibilidad de recursos computacionales. Si las alternativas son claramente diferenciables y no correlacionadas, el logit multinomial puede ser suficiente y más práctico.
Software:
mprobit
para Multinomial Probit, mlogit
para Multinomial Logit y clogit
para Logit Condicional.multinom
de la libreria ‘nnet’, mlogit
de la libreria ‘mlogit’, clogit
de la libreria ‘survival’. Otros son MNP
y bayesm
. Pero para grandes bases, tal vez el mlogit
sea más eficiente.Uso de mlogit
, mfx
y margins
:
* Datos a usar
use multinomial_15, clear
tab mode
/* Elección donde pescar:
1. playa
2. muelle
3. botepriv
4. charter */
* Estimación Multinomial Logit
/* Todos comparados con la opc 1, (b_j - b_k) */
mlogit mode income, baseoutcome(1)
/* Prob. predichas */
predict p1 p2 p3 p4,pr
summarize dbeach p1 ///
dpier p2 ///
dprivate p3 ///
dcharter p4
/* Marginal effects (or semi-elasticities) */
mfx compute, dydx predict(outcome(1))
/* Average Marginal effects (AME) */
margins, dydx(income) predict(outcome(1)) atmeans
/* Marginal Effects at Means (MEM) */
margins, dydx(income) predict(outcome(1))
# Datos a usar
Data <- as.data.frame(haven::read_dta('multinomial_15.dta'))
#table(Data$mode)
Data$mode <- factor(Data$mode)
# Estimación Multinomial Logit
library(nnet)
set.seed(123)
Data$mode <- relevel(Data$mode, ref = 1) # baseline
reg.mlogit <- multinom(mode ~ income, data = Data)
summary(reg.mlogit) # Rel. Log Odds
exp(coef(reg.mlogit)) # Rel. risk
# Prob. predichas
Data <- Data%>%
mutate(
p1 = predict(reg.mlogit, newdata = Data, type = "probs")[, 1],
p2 = predict(reg.mlogit, newdata = Data, type = "probs")[, 2],
p3 = predict(reg.mlogit, newdata = Data, type = "probs")[, 3],
p4 = predict(reg.mlogit, newdata = Data, type = "probs")[, 4]
)
#Data|>
#summarize(
#p1_mean = mean(p1, na.rm = TRUE), p2_mean = mean(p2, na.rm = TRUE),
#p3_mean = mean(p3, na.rm = TRUE), p4_mean = mean(p4, na.rm = TRUE))
# Marginal effects (or semi-elasticities)
library(marginaleffects)
mfx <- slopes(reg.mlogit, variables = "income", type = "probs")
summary(mfx$estimate)
Estimación:
## # weights: 12 (6 variable)
## initial value 1638.599935
## iter 10 value 1477.505846
## final value 1477.150569
## converged
## Call:
## multinom(formula = mode ~ income, data = Data)
##
## Coefficients:
## (Intercept) income
## 2 0.8141701 -0.14340453
## 3 0.7389569 0.09190030
## 4 1.3413284 -0.03164588
##
## Std. Errors:
## (Intercept) income
## 2 0.2286325 0.05328822
## 3 0.1967314 0.04066362
## 4 0.1945173 0.04184622
##
## Residual Deviance: 2954.301
## AIC: 2966.301
## (Intercept) income
## 2 2.257301 0.8664035
## 3 2.093750 1.0962555
## 4 3.824120 0.9688496
Efectos marginales:
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## -0.027804 -0.015947 -0.003621 0.000000 0.009032 0.033632
En algunos casos, la variable dependiente es una variable categórica con más de dos alternativas y un orden natural entre las categorías.
A diferencia del multinomial logit, donde las opciones no tienen un orden particular, en el modelo de respuesta múltiple ordenada se aprovecha el orden implícito entre las categorías.
Los modelos Ordered Logit y Ordered Probit son extensiones de los modelos logit y probit tradicionales para tratar con variables dependientes ordinales.
Ejemplos:
La interpretación del modelo se centra en analizar cómo los cambios en las variables explicativas influyen en la probabilidad de moverse hacia categorías superiores o inferiores.
Los modelos de respuesta múltiple ordenada parten de una variable latente \(Y^*\), que representa la propensión subyacente de una persona a seleccionar una categoría más alta o baja.
La variable latente se modela como \(Y^* = X\beta + u\), donde \(X\) son las variables explicativas (observables) and \(u_i\) es el término de error (asumido con distribución normal o logística).
La variable dependiente observada \(Y\) es una versión ordinal de \(Y^*\), donde cada valor de \(Y\) se asocia a un rango específico de \(Y^*\).
\[Y_i = \begin{cases} 0 & \text{si } Y_i^* < A_0 \\ 1 & \text{si } A_0 \leq Y_i^* < A_1 \\ \vdots \\ J & \text{si } A_{J-1} \leq Y_i^* < A_J \end{cases} \]
los umbrales \(A\) representan los puntos de corte que delimitan las categorías.
Así, los parámetros a estimar son: \(\beta\) junto a los \(A=(A_0,\ldots,A_{J-1})\) umbrales.
La probabilidad de que un individuo elija una categoría en particular se calcula mediante la función de distribución acumulada de la normal estándar (para el probit ordenado) o de la logística (para el logit ordenado).
La probabilidad de que \(Y_i = j\) está dada por:
\[\begin{eqnarray} Pr(Y_i = 0) &=& F(a_0 - X_i'\beta) \\ Pr(Y_i = j) &=& F(a_j - X_i'\beta) - F(a_{j-1} - X_i'\beta), \quad j > 0 \\ Pr(Y_i = J) &=& 1 - F(a_{J-1} - X_i'\beta) \end{eqnarray}\]
\(F(\cdot)\) representa la función de distribución acumulada, por ejemplo, la normal acumulada en el caso del Probit o la logística acumulada en el caso del Logit ( \(F(z)=[1+exp(-z)]^{-1}\) ).
La función de verosimilitud a maximizar es:
\[ \mathcal{L}(\beta, a) = \prod_{i=1}^N \prod_{j=0}^J \left( Pr(Y_i = j) \right)^{d_{ij}} \]
donde \(d_{ij}\) es una variable indicadora que toma valor 1 si \(Y_i = j\) y 0 en caso contrario.
Solo para resaltar algo acá: tanto el logit multinomial como el logit ordenado tienen una forma similar para la log-verosimilitud.
Aunque la estructura de la log-verosimilitud es la misma, la elección de la función de probabilidad refleja las suposiciones del modelo sobre la naturaleza de las opciones (no ordenadas vs. ordenadas).
La diferencia radica en la expresión para \(P(Y_i = j)\):
En el logit multinomial, los coeficientes \(\beta_j\) varían por opción, capturando la preferencia relativa para cada opción; en el logit ordenado, el coeficiente \(\beta\) es constante y las probabilidades de las categorías ordenadas dependen de los umbrales \(a_j\), que segmentan la variable latente en categorías ordenadas.
Los efectos marginales
En los modelos logit y probit ordenados, los coeficientes no representan cambios marginales directos en las probabilidades de cada categoría. En su lugar, indican el efecto de un cambio en las variables explicativas sobre la probabilidad de moverse a categorías superiores o inferiores.
\[ \frac{\partial Pr(Y_i = j)}{\partial X_r} = \left[ F'(a_j - X_i'\beta) - F'(a_{j-1} - X_i'\beta) \right] \cdot \beta_r \]
Notar que varían según el punto de evaluación, usualmente en la media de \(X\) o en valores específicos.
Software:
oprobit
para Probit Ordenado, ologit
para Logit Ordenado.polr
de la libreria MASSEl modelo de probabilidad esta dado por:
Función de Probabilidad: \[P(Y = y) = \frac{e^{-\lambda} \lambda^y}{y!}, \quad y = 0, 1, 2, ...\]
\(Y\) es variable discreta que representa el número de eventos; \(\lambda\) es la media.
Para hacerlo un modelo de regresión: - Relación entre Media y Variables Independientes: \[\lambda = E(Y|X) = e^{X'\beta}\] donde \(X = (X_1, X_2, ..., X_k)'\) es un vector de variables explicativas. - Supuesto Clave: \(Y\) sigue una distribución de Poisson con media \(\lambda\), donde \(\lambda\) es función de \(X\).
Función de Verosimilitud: \[L(\beta) = \prod_{i=1}^{n} \frac{e^{-\lambda_i} \lambda_i^{y_i}}{y_i!}\] donde \(\lambda_i = e^{X_i'\beta}\).
Log-Verosimilitud: \[\ell(\beta) = \sum_{i=1}^{n} (y_i X_i'\beta - e^{X_i'\beta} - \ln(y_i!))\]
Sobredispersión La sobredispersión ocurre cuando la varianza de \(Y\) es mayor que su media, violando el supuesto de Poisson.
Software:
rpoisson
glm
Uso de ml
y de comando poisson
:
* Ejemplo reg. poisson Stata por L.Chancí
* 1. Simulamos la Data
set seed 123
set obs 1000
gen x = rnormal(0, 1) // Supongamos es ingreso
scalar b0 = 1 // Intercepto
scalar b1 = 0.5 // Pendiente
gen lambda = exp(b0 + b1 * x) // Ej. la media de crímenes
gen y = rpoisson(lambda) // Ej. Número de crímenes
sum y
hist y, freq title(Hist. crímenes en la ciudad) color(navy)
* 2. Log-likelihood fn.
cap pro drop chanci_llf
prog def chanci_llf
args lnf xb
tempname mu
gen double `mu' = exp(`xb')
qui replace `lnf' = -`mu' + y * `xb' - lnfactorial(y)
drop `mu'
end
ml model lf chanci_llf (y = x)
ml max
* 4. Comparamos con comando
poisson y x /* , vce(robust) */
# 1. Estimación
library(maxLik)
ch_ll<- function(params) {
b0 <- params[1]
b1 <- params[2]
xb <- b0 + b1 * x
mu <- exp(xb)
ll <- -mu + y * xb - lfactorial(y)
return(sum(ll))
}
mle_poisson <- maxLik(logLik=ch_ll, start=c(0.1, 0.1))
summary(mle_poisson)
# 3. Compare with Built-in glm Poisson Regression
glm(y ~ x, family = poisson(link = "log"))
## --------------------------------------------
## Maximum Likelihood estimation
## Newton-Raphson maximisation, 4 iterations
## Return code 8: successive function values within relative tolerance limit (reltol)
## Log-Likelihood: -1889.833
## 2 free parameters
## Estimates:
## Estimate Std. error t value Pr(> t)
## [1,] 1.00000 0.02012 49.71 <2e-16 ***
## [2,] 0.47950 0.01802 26.61 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## --------------------------------------------
##
## Call: glm(formula = y ~ x, family = poisson(link = "log"))
##
## Coefficients:
## (Intercept) x
## 1.0000 0.4795
##
## Degrees of Freedom: 999 Total (i.e. Null); 998 Residual
## Null Deviance: 1845
## Residual Deviance: 1140 AIC: 3784
Y
es continua (nuevamente).Y
está incompleta:
Ejemplo: Encuesta de hogares donde no se incluye a hogares con ingresos muy altos. Por alguna razón, la muestra de ingreso de hogares no incluye los hogares que ganan 10 millones de pesos al mes.
Ejemplo: Encuesta de hogares donde se reemplaza ingreso con “ingreso es mayor a 10” por un valor. Usando el ejemplo hipotético de la encuesta de hogares, diciendo que en los datos de “ganar mil millones”, un millón es lo máximo, donde “ganar un millón” está registrado como ese umbral.
Ejemplo: Heckman (1979). El ejemplo más famoso es el de Heckman, donde el valor es implícito en la oferta de empleo. Sin embargo, estudios de salarios solo usan datos de mujeres que trabajan. Pero, la decisión de trabajar no es aleatoria. Es decir, en principio, se necesita incluir trabajadores que no trabajan.
Nuestro gran objetivo es plantear la función de verosimilitud, así que partamos por entender el contexto del modelo.
Mecanismo:
Sea \(y\) el valor observado, la parte incompleta de \(y^*\).
En censura observamos toda la información de \(X_i\), pero la censura en \(y^*\) puede ser:
Notas:
Función de densidad con censura: Para \(y^*\), la función de densidad \(f^*(y^*|x, \theta)\) se define de la forma usual, donde \(\theta\) representa los parámetros del modelo. Sin embargo, para la variable observada \(y\), la densidad se ajusta para considerar la censura.
Censura por debajo en \(L\)
Para los valores de \(y > L\), la densidad de \(y\) es la misma que la densidad de \(y^*\): \[ f(y|x) = f^*(y|x,\theta) \text{ si } y > L\]
Para \(y \leq L\), la densidad de \(y\) se concentra en el punto \(L\): \[ f(y|x) = P(y^* \leq L | x, \theta) = F^*(L | x, \theta) \text{ si } y = L\]
donde \(F^*(L | x, \theta)\) es la función de distribución acumulada de \(y^*\) evaluada en \(L\).
Función de Verosimilitud: Para una observación \(i\), la contribución a la función de verosimilitud se define como:
\[ L_i(\theta) = \begin{cases} f^*(y_i | x_i, \theta) & \text{si } y_i > L \\ F^*(L | x_i, \theta) & \text{si } y_i = L \end{cases} \]
Podemos escribir esto de forma compacta usando una variable indicadora \(d_i = \mathbb{I}(y_i > L)\):
\[ L_i(\theta) = [f^*(y_i | x_i, \theta)]^{d_i} \cdot [F^*(L | x_i, \theta)]^{1-d_i} \]
Log-verosimilitud: La log-verosimilitud para la muestra completa se obtiene sumando las contribuciones individuales:
\[ \ell(\theta) = \sum_{i=1}^{n} \left[ d_i \cdot \ln f^*(y_i | x_i, \theta) + (1-d_i) \cdot \ln F^*(L | x_i, \theta) \right] \]
Incorporación del supuesto de Normalidad
Consideremos una variable aleatoria \(z^*\) que sigue una distribución normal con media \(\mu\) y varianza \(\sigma^2\).
Supongamos que \(z^*\) está censurada por debajo en un umbral \(L\). Esto significa que solo observamos \(z = z^*\) si \(z^* > L\), y observamos \(z = L\) si \(z^* \leq L\).
\[z^* \sim \mathcal{N}(\mu, \sigma^2) \hspace{0.5cm};\hspace{0.5cm} z = \begin{cases} z^*, & \text{si } z^* > L \\ L, & \text{si } z^* \leq L \end{cases}\]
Momentos:
Probabilidad de Censura. La probabilidad de que la variable latente sea menor o igual a cero (y por lo tanto censurada) es: \[ F^*(0) = P(y^* \leq 0) = P(\varepsilon \leq -X'\beta) = \Phi(-X'\beta/\sigma). \]
Función de log-verosimilitud. Para estimar los parámetros del modelo Tobit (\(\beta\) y \(\sigma\)), se utiliza el método de máxima verosimilitud. La función de log-verosimilitud se construye considerando la densidad de la variable observada \(y_i\), que se ajusta para tener en cuenta la censura:
\[\ell(\beta, \sigma) = \sum_{i=1}^n \left[ d_i \left(-\ln(\sqrt{2\pi} \sigma) - \frac{(y_i - X_i'\beta)^2}{2\sigma^2}\right) + (1-d_i) \ln[1 - \Phi(X_i'\beta/\sigma)] \right]\]
donde \(d_i = 1\) si \(y_i > 0\), y \(d_i = 0\) si \(y_i \leq 0\). Es decir, el primer término dentro de la suma corresponde a las observaciones no censuradas, y el segundo término a las observaciones censuradas.
Condiciones de Primer Orden (CPO) del Modelo Tobit
Derivadas de la función de log-verosimilitud respecto a los parámetros: \[ \frac{\partial \ell}{\partial \beta} = \sum_i \left[ d_i \cdot \frac{(y_i - X_i'\beta)}{\sigma^2} + (1 - d_i) \cdot \frac{\phi(X_i'\beta/\sigma)}{1 - \Phi(X_i'\beta/\sigma)} \cdot \frac{X_i}{\sigma} \right] = 0 \]
\[ \frac{\partial \ell}{\partial \sigma} = \sum_i \left[ d_i \left(-\frac{1}{\sigma} + \frac{(y_i - X_i'\beta)^2}{\sigma^3}\right) + (1 - d_i) \cdot \frac{\phi(X_i'\beta/\sigma)}{1 - \Phi(X_i'\beta/\sigma)} \cdot \frac{X_i'\beta}{\sigma^2} \right] = 0 \]
Estas ecuaciones no tienen una solución analítica cerrada y se utilizan métodos numéricos, como el algoritmo de Newton-Raphson, para encontrar las estimaciones de máxima verosimilitud de \(\beta\) y \(\sigma\).
El truncamiento es un tipo de censura donde las observaciones fuera de un rango determinado se excluyen completamente de la muestra. Esto implica una pérdida de información tanto de la variable dependiente como de las variables independientes.
Tipos de Truncamiento:
Truncamiento por debajo (\(L\)): \[ y = y^* \; \text{si} \; y^* > L\] Ejemplo: Solo se incluyen observaciones con \(y^* > L\) (e.g., hogares con ingresos mayores a 10 millones).
Truncamiento por encima (\(U\)): \[ y = y^* \; \text{si} \; y^* \leq U. \] Ejemplo: Solo se incluyen hogares con ingresos menores a \(10\) millones.
Función de Densidad Condicional: Para modelar datos truncados, necesitamos ajustar la función de densidad para tener en cuenta la exclusión de observaciones fuera del rango permitido. La función de densidad condicional de \(y\) dado que \(y^* > L\) (truncamiento por debajo) es:
\[ f(y) = \frac{f^*(y)}{P(y^* > L)}, \]
donde \(f^*(y)\) es la función de densidad no censurada (o no truncada) de \(y^*\). \(P(y^* > L)\) es la probabilidad de que \(y^*\) sea mayor que \(L\) (es decir, la probabilidad de que la observación no esté truncada).
Probabilidad de Truncamiento: La probabilidad de truncamiento se puede expresar en términos de la función de distribución acumulada (FDA) de \(y^*\): \[ P(y^* > L) = 1 - F^*(L), \] donde \(F^*(L)\) es la F.D.Acumulada de \(y^*\) evaluada en \(L\).
Verosimilitud
La función de verosimilitud para datos truncados se construye considerando la densidad condicional de las observaciones que no están truncadas. En el caso de truncamiento, la log-verosimilitud incluye solo las observaciones dentro del rango permitido:
\[ \ell(\theta) = \sum_{i: y_i > L} \ln\left(\frac{f^*(y_i | x_i, \theta)}{1 - F^*(L | x_i, \theta)}\right). \]
donde \(\theta\) representa los parámetros del modelo.
Log-Verosimilitud
Para datos truncados por debajo en \(L\), la función de log-verosimilitud se puede escribir como:
\[ \ell(\theta) = \sum_{i=1}^{n} \left\{ \ln f^*(y_i | x_i; \theta) - \ln \left[1 - F^*(L | x_i; \theta)\right] \right\}\]
donde \(f^*(y_i | x_i; \theta)\) es la densidad condicional de \(y_i^*\) dado \(x_i\) con parámetros \(\theta\). \(F^*(L | x_i; \theta)\) es la función de distribución acumulada (FDA) de \(y_i^*\) evaluada en el umbral \(L\), condicional en \(x_i\).
Notar que la log-verosimilitud se compone de dos términos:
Normalidad (normal truncada)
A menudo se asume que la variable \(y_i^*\) sigue una distribución normal. En este caso, es importante comprender cómo el truncamiento afecta los momentos (media y varianza) de la distribución.
Supongamos que \(z\) sigue una distribución normal \(N(\mu, \sigma^2)\) y que está truncada por debajo en \(L\). La función de densidad de la distribución normal truncada es: \[ f(z | z \geq L) = \frac{f(z)}{1 - \Phi(\alpha)}, \]
donde \(\alpha = \frac{L - \mu}{\sigma}\) (valor estandarizado del umbral de truncamiento) y \(f(z)\) es la densidad normal. \(\Phi(\alpha)\) es la función de distribución acumulada normal estándar.
Distribución Normal Truncada Gráficamente: La densidad normal truncada tiene forma similar a la densidad normal estándar pero restringida al intervalo \([L, \infty)\).
Normalidad (normal truncada) - Momentos
Media: La media de la distribución normal truncada por debajo en \(L\) es: \[ E(z | z \geq L) = \mu + \sigma \lambda, \]
donde \(\lambda = \frac{\phi(\alpha)}{1 - \Phi(\alpha)}\) es la relación de Mills inversa.
Varianza: La varianza de la distribución normal truncada por debajo en \(L\) es: \[ V(z | z \geq L) = \sigma^2 (1 - \delta), \] donde \(\delta = \lambda (\lambda - \alpha)\) es un factor de ajuste.
Interpretación:
El modelo de regresión truncada se utiliza cuando la variable dependiente \(y^*\) está truncada, es decir, solo observamos valores de \(y^*\) que caen dentro de un rango determinado.
Estructura del Modelo: Se asume que la variable latente \(y_i^*\) sigue un modelo lineal:
\[ y_i^* = x_i'\beta + \epsilon_i, \quad \epsilon_i \sim N(0, \sigma^2) \]
Distribución de \(y_i^*\) (condicional al truncamiento): La función de densidad de \(y_i^*\) , condicional a que \(y_i^* > L\) (truncamiento por debajo), es:
\[ f^*(y_i | x_i; \theta) = \frac{(1/\sigma) \cdot \phi(\alpha)}{1 - \Phi(\alpha)} \]
donde \(\alpha = \frac{L - x_i'\beta}{\sigma}\).
Probabilidad acumulada hasta el umbral \(L\): \[ F^*(L) = \Phi\left(\frac{L - x_i'\beta}{\sigma}\right) \]
Log-Verosimilitud: La función de log-verosimilitud para el modelo de regresión truncada es:
\[ \ell(\beta, \sigma^2) = \sum_{i=1}^{n} \left[ -\ln(\sqrt{2\pi}\sigma) - \frac{(y_i - x_i'\beta)^2}{2\sigma^2} - \ln\left(1 - \Phi\left(\frac{L - x_i'\beta}{\sigma}\right)\right) \right] \]
Media Condicional para Censura por Debajo (umbral \(L = 0\)): \[ E(y | d = 0) = E(y^* | y^* \leq 0) = E(y^*) \cdot P(y^* \leq 0) + E(y^* | y^* > 0). \]
Media Condicional para truncamiento. La media condicional de \(y\) dado \(x\) y que \(y \geq L\) (truncamiento por debajo) es \[ E(y | x, y \geq L) = E(y^* | x, y^* \geq L) = x_i'\beta + \sigma\lambda, \]
donde \(\lambda = \frac{\phi(\alpha)}{1 - \Phi(\alpha)}\) es la relación de Mills inversa.
Motivación: Cuando asumimos que los errores en el modelo de regresión censurada o truncada siguen una distribución normal, podemos derivar expresiones explícitas para las medias condicionales. Estas expresiones son útiles para comprender el impacto de la censura o el truncamiento en las estimaciones y para desarrollar métodos de corrección.
Censura: Para el modelo de censura por debajo con umbral \(L = 0\), la media condicional de \(\epsilon_i\) dado que \(x_i'\beta + \epsilon_i > 0\) es:
\[ E(\epsilon_i | x_i'\beta + \epsilon_i > 0) = \sigma \cdot \lambda(\alpha), \]
donde \(\alpha = \frac{x_i'\beta}{\sigma}\) es el valor estandarizado de \(x_i'\beta\) y \(\lambda(\alpha) = \frac{\phi(\alpha)}{\Phi(\alpha)}\) es la relación de Mills inversa.
Media Condicional de \(y_i\) (Censura): La media condicional de \(y_i\) dado \(x_i\) y que \(y_i^* > 0\) (no censurado) se puede expresar como:
\[E(y_i | x_i, y_i^* > 0) = \Phi(\alpha) \cdot x_i'\beta + \sigma \cdot \lambda(\alpha)\]
Truncamiento por debajo (\(L=0\)):
Media Condicional: La media condicional de \(y_i\) dado \(x_i\) y que \(y_i^* \geq 0\) (no truncado) es:
\[ E(y_i | x_i, y_i^* \geq 0) = x_i'\beta + E(\epsilon_i | x_i, \epsilon_i > 0). \]
Bajo normalidad: Asumiendo que \(\epsilon_i \sim N(0, \sigma^2)\), la media condicional se simplifica a:
\[ E(y_i | x_i, y_i^* \geq 0) = x_i'\beta + \sigma \cdot \lambda\left(\frac{x_i'\beta}{\sigma}\right). \]
Contexto del mercado laboral: Observamos \(y_i\) (salario) solo para las personas que trabajan (\(d_i = 1\)). \(d_i\) es una variable dummy que indica si una persona trabaja, \[ d_i = \begin{cases} 1 & \text{si trabaja} \\ 0 & \text{en caso contrario} \end{cases} \]
Variables Latentes:
Definición:
Para modelar el sesgo de selección, se utiliza un sistema de dos ecuaciones:
Ecuación de Selección: Modela la decisión de participar en el mercado laboral: \[ d_i^* = z_i' \gamma + \epsilon_i, \quad d_i = 1 \text{ si } d_i^* > 0. \]
donde:
Para modelar el sesgo de selección, se utiliza un sistema de dos ecuaciones:
Ecuación de Resultado (outcome): Modela la variable de interés (salario): \[ y_i = x_i' \beta + u_i, \quad \text{observada solo si } d_i = 1. \]
donde:
Ejemplo: \(d_i\) es Participación en el mercado laboral; \(y_i\) es Salario individual; \(z_i\) son características que afectan la participación (ej., nivel educativo); \(x_i\) son características que afectan el salario (e.g., experiencia laboral).
El truncamiento incidental o sesgo de selección surge cuando la observación de la variable dependiente está condicionada a un proceso de selección. Para modelar este tipo de datos, se utiliza un modelo con dos ecuaciones: una para la selección y otra para el resultado.
Especificación: El modelo de truncamiento incidental se especifica mediante dos ecuaciones lineales:
Ecuación de Participación: \[ y_i^{1*} = x_{i1}' \beta_1 + \epsilon_{i1} \]
Esta ecuación modela la decisión binaria de participar o no en la muestra. La variable latente \(y_i^{1*}\) representa la propensión a participar, y \(x_{i1}\) son las variables que influyen en esta decisión.
Ecuación de Outcome: \[ y_i^{2*} = x_{i2}' \beta_2 + \epsilon_{i2} \]
Esta ecuación modela la variable de resultado \(y_i^{2*}\), que solo se observa si el individuo decide participar (\(y_i^{1*} > 0\)). Las variables \(x_{i2}\) son las que influyen en el resultado.
Relación con el Modelo Tobit: El modelo Tobit es un caso particular de este modelo donde \(y_i^{1*} = y_i^{2*}\), es decir, la variable latente que determina la selección es la misma que la variable de resultado.
Supuesto de Normalidad: Se asume que los errores de ambas ecuaciones, \(\epsilon_{i1}\) y \(\epsilon_{i2}\), siguen una distribución normal bivariada: \[ \begin{pmatrix} \epsilon_{i1} \\ \epsilon_{i2} \end{pmatrix} \sim \mathcal{N} \begin{pmatrix} 0, & \begin{pmatrix} \sigma_1^2 & \rho\sigma_1\sigma_2 \\ \rho\sigma_1\sigma_2 & \sigma_2^2 \end{pmatrix} \end{pmatrix}. \]
Implicaciones:
Construcción de la Verosimilitud: Para construir la función de verosimilitud, necesitamos considerar dos casos:
Participación: Si \(y_i^{1*} > 0\), observamos \(y_i^{2*}\). La contribución a la verosimilitud en este caso es la probabilidad conjunta de observar \(y_i^{1*} > 0\) y \(y_i^{2*}\):
\[ P(y_i^{1*} > 0) \cdot f(y_i^{2*} | y_i^{1*} > 0). \]
No Participación: Si \(y_i^{1*} \leq 0\), no observamos \(y_i^{2*}\). La contribución a la verosimilitud en este caso es simplemente la probabilidad de observar \(y_i^{1*} \leq 0\):
\[ P(y_i^{1*} \leq 0). \]
La log-verosimilitud para la muestra completa se obtiene sumando las contribuciones de cada observación, teniendo en cuenta si participa o no en la muestra.
Correlación entre las Ecuaciones: La correlación \(\rho\) entre los errores de las dos ecuaciones captura la dependencia entre la decisión de participar y el resultado. Si \(\rho\) es diferente de cero, es crucial tener en cuenta esta correlación en la estimación.
Modelo de Selección: Este modelo proporciona un marco para incorporar explícitamente la selectividad muestral en el análisis de regresión, permitiendo obtener estimaciones consistentes de los parámetros de interés.
Función de Verosimilitud para el Modelo de Sesgo de Selección
La función de verosimilitud puede escribirse de la siguiente manera:
\[\mathcal{L} = \prod_{i=1}^{N} \left[ P(y_i^{1*} \leq 0) \right]^{1-d_i} \cdot \left[ f(y_i^{2*} | y_i^{1*} > 0) \cdot P(y_i^{1*} > 0) \right]^{d_i}\] donde \(d_i\) es una variable indicadora que toma el valor de 1 si el individuo participa (\(y_i^{1*} > 0\)) y 0 en caso contrario.
La función de verosimilitud es el producto de las probabilidades de observar cada individuo en la muestra. Para los individuos que no participan (\(d_i = 0\)), la probabilidad es simplemente \(P(y_i^{1*} \leq 0)\). Para los individuos que participan (\(d_i = 1\)), la probabilidad es la probabilidad conjunta de observar \(y_i^{1*} > 0\) y \(y_i^{2*}\).
Supuesto de Normalidad. Asunción Clave: Para simplificar la función de verosimilitud, se asume que los errores \(\epsilon_{i1}\) y \(\epsilon_{i2}\) tienen una distribución conjunta bivariada normal estándar:
\[ \begin{pmatrix} \epsilon_{i1} \\ \epsilon_{i2} \end{pmatrix} \sim \mathcal{N} \begin{pmatrix} 0, & \begin{pmatrix} 1 & \rho \\ \rho & 1 \end{pmatrix} \end{pmatrix}. \]
Probabilidad de Participación: Bajo este supuesto, la probabilidad de participación se puede expresar como:
\[P(y_i^{1*} > 0) = \Phi\left( \frac{x_{i1}'\beta_1}{\sqrt{1-\rho^2}} \right)\]
donde \(\Phi(\cdot)\) es la función de distribución acumulada de la normal estándar.
Bajo el supuesto de normalidad, la log-verosimilitud para este modelo está dada por:
\[\ell(\beta_1, \beta_2, \rho) = \sum_{y_i = 0} \ln\left( \Phi\left( \frac{x_{i1}'\beta_1}{\sqrt{1-\rho^2}} \right) \right) + \sum_{y_i = 1} \ln\left( \phi\left( \frac{y_i^{2*} - x_{i2}'\beta_2}{\sqrt{1-\rho^2}} \right) \cdot \Phi\left( \frac{x_{i1}'\beta_1 + \rho \frac{y_i^{2*} - x_{i2}'\beta_2}{\sqrt{1-\rho^2}}}{\sqrt{1-\rho^2}} \right) \right). \]
donde \(\phi(\cdot)\) es la función de densidad de la normal estándar.
Alternativa a la Máxima Verosimilitud: El método de Heckman en dos pasos es una alternativa a la estimación por máxima verosimilitud. Es computacionalmente menos costoso, pero requiere el supuesto de normalidad de los errores.
Pasos:
Relación entre los Errores: Bajo el supuesto de normalidad bivariada, la relación entre los errores de las dos ecuaciones se puede escribir como: \[ \epsilon_{i2} = \rho \epsilon_{i1} + \xi_i, \]
donde \(\xi_i\) es independiente de \(\epsilon_{i1}\) y \(\xi_i \sim \mathcal{N}(0, \sigma^2_\xi)\).
Media Condicional: La media condicional del outcome (\(y_i^{2*}\)) dado que el individuo participa (\(y_i^{1*} > 0\)) es: \[ \mathbb{E}(y_i^{2*} | y_i^{1*} > 0) = x_{i2}'\beta_2 + \rho \lambda(x_{i1}'\beta_1), \]
donde \(\lambda(\cdot)\) es el Inverse Mills Ratio \(\lambda(x) = \frac{\phi(x)}{\Phi(x)}\).
Corrección del Sesgo: El término \(\rho \lambda(x_{i1}'\beta_1)\) corrige el sesgo de selección. La relación de Mills inversa (\(\lambda(x)\)) captura la información sobre la selección no aleatoria de la muestra.
El método de Heckman, también conocido como Heckit, es un procedimiento en dos pasos que se utiliza para corregir el sesgo de selección en modelos de regresión. Este método es una alternativa a la estimación por máxima verosimilitud completa y es especialmente útil cuando se asume una distribución normal bivariada para los errores.
Pasos:
Se estima un modelo probit para la variable indicadora de participación \(d_i\), donde \(d_i = 1\) si el individuo participa (\(y_i^{1*} > 0\)) y \(d_i = 0\) en caso contrario.
La probabilidad de participación se modela como: \[ P(d_i = 1 | x_{i1}) = \Phi(x_{i1}'\beta_1), \]
donde \(\Phi(\cdot)\) es la función de distribución acumulada de la normal estándar.
Se obtienen las estimaciones de los coeficientes \(\hat{\beta}_1\) del modelo probit.
Se calcula la relación de Mills inversa (\(\lambda\)) para cada individuo utilizando las estimaciones del probit: \[ \hat{\lambda}_i = \lambda(x_{i1}'\hat{\beta}_1) = \frac{\phi(x_{i1}'\hat{\beta}_1)}{\Phi(x_{i1}'\hat{\beta}_1)}, \]
Pasos:
Se estima la ecuación de resultado (\(y_i^{2*}\)) mediante una regresión OLS que incluye la relación de Mills inversa (\(\hat{\lambda}_i\)) como una variable explicativa adicional:
\[ y_i^{2*} = x_{i2}'\beta_2 + \rho \sigma_2 \hat{\lambda}_i + \nu_i, \]
donde \(\rho\) es la correlación entre los errores de las dos ecuaciones y \(\sigma_2\) es la desviación estándar del error en la ecuación de resultado.
La inclusión de \(\hat{\lambda}_i\) corrige el sesgo de selección.
Ventajas del Método Heckit:
Prueba de Hipótesis:
Comparación de Métodos: Es recomendable comparar los resultados del método de Heckman (Heckit) con los de la máxima verosimilitud completa (MLE) en un ejemplo práctico. Esto ayuda a comprender las diferencias entre los métodos y el impacto del sesgo de selección en las estimaciones.
Clarificación de Conceptos: La comparación de los métodos también puede ayudar a clarificar las diferencias entre selección, censura y truncamiento, y a comprender cómo cada uno de estos problemas afecta la estimación de los modelos de regresión.
Nota: Siempre es importante entender los supuestos y limitaciones de cada método para seleccionar el más adecuado en contextos prácticos.
heckman
)
* 1. Simular datos
clear all
set seed 123
set obs 1000
gen x1 = rnormal(0, 1)
gen x2 = rnormal(0, 1)
gen z = rnormal(0, 1)
matrix C = (1, 0.5 \ 0.5, 1)/*Para errores correlacionados*/
drawnorm e1 e2, corr(C)
* Sim. ecuación de selección (participación)
gen y1s = 0.5*x1 + 0.3*z + e1 /*y1s es la variable latente*/
gen y1 = (y1star > 0)
* Sim. ecuación de outcome (para participantes)
gen y2 = 0.8*x2 - 0.2*z + e2
replace y2 = . if y1 == 0
* Paso 1: Probit para la participación
probit y1 x1 z
predict xb, xb
gen lambda = normalden(xb)/normal(xb) /*inv. mills ratio*/
* Paso 2: OLS con corrección del sesgo de selección
reg y2 x2 z lambda if y1 == 1 /*se eliminan missings*/
* Comparación ahora con comando de Stata:
heckman y2star x2 z, select(y1 = x1 z) two
heckman y2star x2 z, select(y1 = x1 z) /* mle */