09/11/2023
En el fascinante mundo de la econometría y la evaluación de políticas, la capacidad de discernir el efecto causal de una intervención es de suma importancia. No basta con observar cambios; es crucial atribuirlos correctamente a la política implementada. Aquí es donde el método de Diferencias en Diferencias (DiD) brilla con luz propia, ofreciendo una estrategia robusta para estimar el impacto de programas o shocks, especialmente cuando los experimentos aleatorios no son viables. Stata, con su interfaz intuitiva y poderosas capacidades estadísticas, se convierte en el aliado perfecto para llevar a cabo este tipo de análisis.

Este artículo te guiará a través del uso del método de Diferencias en Diferencias en Stata, explorando sus fundamentos, su implementación práctica y consideraciones clave para asegurar la validez de tus resultados. Desde la preparación de tus datos de panel hasta la interpretación de los coeficientes, desglosaremos cada paso para que puedas aplicar esta valiosa herramienta con confianza. Prepárate para dominar uno de los pilares de la inferenciacausal en la evaluación de políticas públicas.
- ¿Qué es el Método de Diferencias en Diferencias (DiD)?
- La Estimación Tradicional: Efectos Fijos Bidireccionales en Stata
- Primeras Diferencias en Stata: Una Herramienta Relacionada
- Recodificación de Variables en Stata: Un Paso Esencial
- Exploración de Datos con tabulate en Stata
- Asunciones Cruciales del DiD: La Tendencia Paralela
- Interpretación de Resultados del DiD
- Tabla Comparativa: Métodos de Evaluación de Políticas
- Preguntas Frecuentes (FAQ)
- ¿Cuándo es apropiado usar el método de Diferencias en Diferencias?
- ¿El método DiD requiere datos de panel?
- ¿Cómo puedo verificar la asunción de tendencias paralelas en Stata?
- ¿Qué sucede si mis grupos de tratamiento y control no son comparables antes de la intervención?
- ¿El DiD solo se utiliza para evaluar políticas económicas?
- Conclusión
¿Qué es el Método de Diferencias en Diferencias (DiD)?
El método de Diferencias en Diferencias es una técnica cuasi-experimental utilizada para estimar el efecto causal de una intervención (tratamiento) al comparar el cambio promedio en el tiempo en el resultado de un grupo de tratamiento con el cambio promedio en el tiempo en el resultado de un grupo de control. La lógica detrás de DiD es simple pero poderosa: al observar la evolución de ambos grupos antes y después de la intervención, podemos aislar el efecto del tratamiento, asumiendo que, en ausencia de la intervención, ambos grupos habrían seguido tendencias paralelas.
Imagina que quieres evaluar el impacto de una nueva ley que aumenta el salario mínimo en una región específica. El grupo de tratamiento serían los trabajadores de esa región, y el grupo de control, trabajadores de una región similar donde la ley no se implementó. El DiD compara el cambio en el empleo en la región de tratamiento antes y después de la ley, con el cambio en el empleo en la región de control durante el mismo período. La diferencia de estas diferencias es lo que se atribuye a la ley.
Formalmente, el efecto DiD se calcula como:
DiD = (Y_tratamiento_post - Y_tratamiento_pre) - (Y_control_post - Y_control_pre)
Donde Y representa la variable de resultado, y los subíndices indican el grupo (tratamiento o control) y el período (pre o post-intervención).
La Estimación Tradicional: Efectos Fijos Bidireccionales en Stata
Tradicionalmente, el método de Diferencias en Diferencias se estima mediante regresiones de Efectos Fijos Bidireccionales (Two-way Fixed Effects, TWFE) en modelos de datos de panel. Estos modelos son ideales porque controlan por características invariantes en el tiempo de las unidades (efectos fijos de unidad) y por tendencias comunes que afectan a todas las unidades a lo largo del tiempo (efectos fijos de tiempo).
Para implementar DiD en Stata, primero necesitas asegurarte de que tus datos estén en formato de panel, lo que significa que tienes observaciones para las mismas unidades a lo largo de varios períodos de tiempo. Esto se logra usando el comando xtset:
xtset id_unidad tiempo_periodoDonde id_unidad es el identificador único de cada unidad (por ejemplo, persona, empresa, región) y tiempo_periodo es la variable que indica el período de tiempo.
Variables Clave para DiD en Stata
Para la regresión DiD, necesitarás al menos tres variables clave además de tu variable de resultado (outcome) y cualquier otra covariable:
tratamiento_grupo: Una variable binaria (0/1) que indica si una unidad pertenece al grupo de tratamiento (1) o al grupo de control (0). Esta variable es invariante en el tiempo para cada unidad.post_intervencion: Una variable binaria (0/1) que indica si el período de tiempo es posterior a la intervención (1) o anterior (0). Esta variable es la misma para todas las unidades en un período dado.- La interacción
tratamiento_grupo * post_intervencion: Esta es la variable crucial cuyo coeficiente representa el estimador de Diferencias en Diferencias.
La ecuación de regresión típica en Stata se vería así:
regress outcome i.tratamiento_grupo##i.post_intervencion i.id_unidad i.tiempo_periodo control_variables, vce(robust)Explicación de los componentes:
outcome: Tu variable dependiente.i.tratamiento_grupo##i.post_intervencion: Esta es la sintaxis de Stata para generar automáticamente las variables dummy paratratamiento_grupo,post_intervenciony su término de interacción. El coeficiente de esta interacción es el estimador DiD.i.id_unidad: Incluye efectos fijos para cada unidad individual. Esto controla por cualquier característica no observada y constante en el tiempo que difiera entre unidades.i.tiempo_periodo: Incluye efectos fijos para cada período de tiempo. Esto controla por cualquier tendencia temporal común que afecte a todas las unidades.control_variables: Otras covariables que varían en el tiempo y entre unidades, y que pueden influir en el resultado.vce(robust): Es fundamental usar errores estándar robustos para corregir posibles heterocedasticidades y autocorrelación dentro de las unidades, lo cual es común en datos de panel.
Alternativamente, si ya has declarado tus datos como panel con xtset, puedes usar xtreg con la opción fe (fixed effects):
xtreg outcome i.tratamiento_grupo##i.post_intervencion control_variables, fe vce(robust)En este caso, xtreg, fe se encarga automáticamente de los efectos fijos de unidad (i.id_unidad), pero aún necesitarías incluir i.tiempo_periodo si deseas efectos fijos de tiempo. Si usas xtreg, fe y quieres efectos fijos de tiempo, asegúrate de incluir i.tiempo_periodo explícitamente.

Primeras Diferencias en Stata: Una Herramienta Relacionada
Aunque el DiD se basa en una estructura de regresión específica, el concepto de "primeras diferencias" es una transformación de datos relacionada que a menudo se utiliza en el análisis de datos de panel y series de tiempo para eliminar efectos fijos de unidad o para hacer que una serie sea estacionaria. Mientras que DiD compara diferencias de diferencias entre grupos, las primeras diferencias transforman una variable restando su valor en el período anterior.
Para generar primeras diferencias en Stata, el comando es sencillo una vez que tus datos están correctamente ordenados. Primero, asegúrate de que tus datos estén ordenados por el identificador de la unidad (N) y luego por el tiempo (T):
sort id_unidad tiempo_periodoLuego, puedes generar la primera diferencia de una variable x usando:
gen x_dif = x - x[_n-1]Aquí, _n se refiere a la observación actual y _n-1 a la observación anterior dentro del grupo actual. Si estás trabajando con datos de panel y quieres calcular las primeras diferencias por unidad de sección transversal (es decir, dentro de cada id_unidad), debes usar el prefijo by:
by id_unidad (tiempo_periodo): gen x_dif = x - x[_n-1]Es importante ser muy cuidadoso al usar by para asegurar que las diferencias se calculen correctamente dentro de cada grupo. Si el primer período para una unidad no tiene un valor anterior (_n-1), Stata asignará un valor faltante (.) a x_dif para esa observación, lo cual es lo esperado. Las primeras diferencias son particularmente útiles cuando se sospecha que hay efectos fijos no observados que varían a lo largo del tiempo, o cuando se desea eliminar tendencias lineales comunes en series de tiempo.
Recodificación de Variables en Stata: Un Paso Esencial
La preparación de datos es una fase crítica de cualquier análisis econométrico, y la recodificación de variables es una tarea común en esta etapa. En el contexto de DiD, es posible que necesites recodificar variables existentes para crear las dummies de tratamiento y post-intervención, o para agrupar categorías. Stata ofrece varias formas de hacer esto.
Comando recode
El comando recode es útil para cambiar los valores de una variable existente por otros nuevos. Por ejemplo, si tienes una variable region con códigos 1, 2, 3, y quieres que la región 1 sea el grupo de tratamiento (valor 1) y el resto el grupo de control (valor 0), podrías hacer:
gen tratamiento_grupo = . recode region (1=1) (else=0), gen(tratamiento_grupo_recod)Esto crea una nueva variable tratamiento_grupo_recod. Si la variable ya existe, simplemente usas recode region (1=1) (else=0) sin gen().
Usando gen con condicionales if
Para crear variables dummy basadas en condiciones, el comando gen con la cláusula if es muy potente. Por ejemplo, para crear la variable post_intervencion si la intervención ocurrió en el año 2000:
gen post_intervencion = 0 replace post_intervencion = 1 if anio >= 2000O para crear la variable tratamiento_grupo si una unidad pertenece a una lista específica de IDs:
gen tratamiento_grupo = 0 replace tratamiento_grupo = 1 if inlist(id_unidad, 101, 105, 120)Comando egen para agrupar
El comando egen (extended generate) es útil para generar nuevas variables que son agregaciones o transformaciones más complejas. Por ejemplo, para crear grupos basados en combinaciones de variables:
egen grupo_id = group(region tipo_empresa)Esto crearía un ID numérico único para cada combinación de region y tipo_empresa, lo cual podría ser útil para análisis de subgrupos o para crear efectos fijos para categorías combinadas.
Exploración de Datos con tabulate en Stata
Antes de sumergirte en modelos complejos, es fundamental comprender la distribución y las características de tus datos. El comando tabulate en Stata es una herramienta invaluable para este propósito, ya que despliega tablas de frecuencia de una o dos variables. Es una de las primeras cosas que se deben usar al explorar un nuevo conjunto de datos.
Uso Básico
Para obtener una tabla de frecuencia de una sola variable:
tabulate variable_nombreEsto mostrará los valores únicos de la variable, su frecuencia y su porcentaje. Es ideal para verificar la distribución de tus variables dummy (como tratamiento_grupo o post_intervencion) y asegurarte de que tengan los valores esperados.
Tablas Cruzadas (Dos Variables)
Para examinar la relación entre dos variables categóricas, puedes usar:
tabulate variable1 variable2Esto te dará una tabla de contingencia. Por ejemplo, para ver cuántas unidades de tratamiento hay en el período post-intervención:
tabulate tratamiento_grupo post_intervencionOpciones Útiles
El comando tabulate tiene muchas opciones para enriquecer las tablas:
row: Muestra los porcentajes por fila.col: Muestra los porcentajes por columna.cell: Muestra los porcentajes por celda.chi2: Calcula la estadística Chi-cuadrado para probar la independencia entre las variables.exact: Para pruebas exactas (Fisher's exact test).nolabel: Muestra los valores numéricos en lugar de las etiquetas de valor.
Ejemplo con opciones:
tabulate tratamiento_grupo post_intervencion, row col chi2Esta es una excelente manera de obtener una visión rápida de la composición de tus grupos de tratamiento y control a lo largo del tiempo, lo cual es vital para el análisis DiD.

Asunciones Cruciales del DiD: La Tendencia Paralela
La validez del estimador de Diferencias en Diferencias depende fundamentalmente de una asunción clave: la asunción de tendencias paralelas. Esta asunción postula que, en ausencia de la intervención, el grupo de tratamiento y el grupo de control habrían seguido la misma trayectoria o tendencia en la variable de resultado a lo largo del tiempo. Es decir, las diferencias entre los grupos se mantienen constantes en el tiempo si no hay tratamiento.
Si esta asunción no se cumple, el estimador DiD será sesgado, ya que la "diferencia de las diferencias" podría estar capturando no solo el efecto del tratamiento, sino también diferencias preexistentes en las tendencias de ambos grupos. Es imposible probar formalmente esta asunción (ya que requeriría observar un contrafactual que no existe), pero se puede examinar su plausibilidad:
Análisis Gráfico (Event Study)
La forma más común y convincente de verificar visualmente la asunción de tendencias paralelas es mediante un "estudio de eventos" o un gráfico de tendencias pre-tratamiento. Esto implica comparar las tendencias de la variable de resultado para ambos grupos en los períodos anteriores a la intervención. Si las tendencias son notablemente paralelas antes del tratamiento, esto refuerza la credibilidad de la asunción. Si divergen, el DiD puede no ser apropiado.
En Stata, esto se puede lograr creando variables dummy para cada período de tiempo relativo al inicio del tratamiento para el grupo tratado, y luego graficando sus coeficientes.
Pruebas Formales (limitadas)
Algunos investigadores realizan pruebas formales de la significancia de la interacción entre el grupo de tratamiento y los períodos pre-tratamiento. Si estas interacciones no son estadísticamente significativas, sugiere que no había diferencias de tendencias significativas antes de la intervención. Sin embargo, esto es una prueba débil de la asunción.
Es crucial discutir la plausibilidad de la asunción de tendencias paralelas en tus resultados. Si no se sostiene, el DiD podría no ser la metodología adecuada, o podrían necesitarse extensiones más avanzadas (como DiD con control sintético o emparejamiento) para abordar el problema.
Interpretación de Resultados del DiD
Una vez que has ejecutado tu regresión DiD en Stata, la clave está en interpretar correctamente el coeficiente del término de interacción (i.tratamiento_grupo##i.post_intervencion). Este coeficiente es el estimador de Diferencias en Diferencias y representa el efecto causal promedio de la intervención en la variable de resultado para el grupo de tratamiento, en comparación con el grupo de control, asumiendo que la asunción de tendencias paralelas se cumple.
Por ejemplo, si el coeficiente es 0.5 y la variable de resultado es el empleo, significa que la intervención (la nueva ley de salario mínimo) aumentó el empleo en 0.5 unidades (por ejemplo, 0.5 puntos porcentuales) en el grupo de tratamiento en comparación con el grupo de control, después de la implementación de la política.
Es importante reportar no solo el coeficiente, sino también su significancia estadística (valor p) y el intervalo de confianza, para entender la precisión de la estimación.

Tabla Comparativa: Métodos de Evaluación de Políticas
Para entender mejor el valor del DiD, es útil compararlo con otras metodologías comunes de evaluación de políticas:
| Método | Descripción | Ventajas | Desventajas / Requisitos |
|---|---|---|---|
| Comparación Antes-Después (Within) | Compara el resultado de un grupo antes y después de una intervención. | Simple de implementar. | No controla por tendencias temporales generales o eventos simultáneos. Atribuye todo el cambio al tratamiento. |
| Comparación Transversal (Between) | Compara el resultado de un grupo de tratamiento con uno de control en un mismo punto en el tiempo (generalmente después de la intervención). | Simple si se tienen datos para dos grupos. | No controla por diferencias preexistentes entre grupos (sesgo por variables omitidas). |
| Diferencias en Diferencias (DiD) | Combina las dos anteriores: compara el cambio en el tiempo del grupo de tratamiento con el cambio en el tiempo del grupo de control. | Controla por tendencias temporales generales y por diferencias fijas entre grupos. Permite estimar el efecto causal. | Requiere la crucial asunción de tendencias paralelas. Necesita datos de panel (al menos dos períodos). |
| Efectos Fijos Generales (Panel Data) | Modelos que controlan por características invariantes en el tiempo de las unidades. | Controla por sesgo de variables omitidas si estas son constantes en el tiempo. | No puede estimar el efecto de variables que no varían en el tiempo. Puede no ser suficiente si las tendencias varían. |
Preguntas Frecuentes (FAQ)
¿Cuándo es apropiado usar el método de Diferencias en Diferencias?
El DiD es apropiado cuando tienes datos para un grupo que ha sido expuesto a una intervención (grupo de tratamiento) y un grupo similar que no lo ha sido (grupo de control), y tienes observaciones para ambos grupos tanto antes como después de la intervención. Es ideal para evaluar el impacto de políticas o eventos que afectan a un subconjunto de una población en un momento específico.
¿El método DiD requiere datos de panel?
Sí, estrictamente hablando, el DiD requiere al menos dos puntos en el tiempo (pre y post-intervención) y dos grupos (tratamiento y control). Aunque no siempre se necesita un panel largo, sí se necesita la estructura de datos que permita observar cambios en el tiempo para los mismos grupos.
¿Cómo puedo verificar la asunción de tendencias paralelas en Stata?
La forma más común es mediante un gráfico de tendencias pre-tratamiento (event study). Debes graficar la evolución de la variable de resultado para ambos grupos en los períodos previos a la intervención. Si las líneas son aproximadamente paralelas, la asunción es más plausible. Puedes usar comandos como twoway (line outcome time if treatment_group==1) (line outcome time if treatment_group==0) para una inspección visual básica, o paquetes de terceros para estudios de eventos más sofisticados.
¿Qué sucede si mis grupos de tratamiento y control no son comparables antes de la intervención?
Si los grupos difieren significativamente en sus niveles o tendencias antes de la intervención, la asunción de tendencias paralelas puede estar en riesgo. El DiD por sí solo no resuelve este problema completamente. Puedes intentar incluir variables de control relevantes en tu regresión para ajustar por diferencias observables. Si las diferencias preexistentes son muy grandes o afectan las tendencias, podrías considerar métodos como el DiD con emparejamiento (matching DiD) o control sintético para construir un grupo de control más comparable.
¿El DiD solo se utiliza para evaluar políticas económicas?
No, aunque es muy común en la evaluación de políticas económicas, el método DiD es una herramienta de inferenciacausal aplicable en una amplia gama de campos, incluyendo la salud pública, la sociología, la educación y las ciencias políticas, siempre que se cumplan las condiciones de datos (grupos de tratamiento/control, períodos pre/post) y la asunción de tendencias paralelas sea plausible.
Conclusión
El método de Diferencias en Diferencias es una herramienta excepcionalmente valiosa en el arsenal de cualquier analista o investigador que busque estimar el impacto causal de intervenciones. Su capacidad para controlar por tendencias temporales comunes y por diferencias invariantes entre grupos lo convierte en una opción robusta donde los experimentos aleatorios no son factibles. Al dominar su implementación en Stata, desde la preparación de datos con herramientas como recode y tabulate, hasta la correcta especificación del modelo y la interpretación de los errores estándar robustos, estarás bien equipado para realizar análisis rigurosos y contribuir significativamente a la comprensión de los efectos de diversas políticas y eventos.
Recuerda siempre que la validez de tus resultados DiD se apoya fuertemente en la asunción de tendencias paralelas, y dedicar tiempo a verificar su plausibilidad es tan importante como ejecutar el código en Stata. Con práctica y una comprensión sólida de sus fundamentos, el DiD te permitirá desentrañar relaciones causales complejas y tomar decisiones informadas basadas en evidencia sólida.
Si quieres conocer otros artículos parecidos a Dominando Diferencias en Diferencias con Stata puedes visitar la categoría Cálculos.
