es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Variables rezagadas y líderes datos no-panel en Stata.

Con el fin de llevar a cabo un estudio de eventos, me gustaría crear variables rezagadas y adelantadas en mi conjunto de datos. Desafortunadamente, mi datos no están en un formato de panel equilibrado.

Mi conjunto de datos se ve así:

clear

input id year month binary str7 implement
28845421 2007 3 0 2008-1
29118744 2018 10 1 2012-6
29118744 2016 7 1 2016-7
29183010 2019 3 1 2010-1
29320027 2013 3 0 2015-2
end

. list

     +---------------------------------------------+
     |       id   year   month   binary   implem~t |
     |---------------------------------------------|
  1. | 2.88e+07   2007       3        0     2008-1 |
  2. | 2.91e+07   2018      10        1     2012-6 |
  3. | 2.91e+07   2016       7        1     2016-7 |
  4. | 2.92e+07   2019       3        1     2010-1 |
  5. | 2.93e+07   2013       3        0     2015-2 |
     +---------------------------------------------+

La variable binary es igual a 1 en el momento en que su combinación de year y month ha alcanzado la fecha de implement. Cada observación está representada por un identificador id.

El objetivo es crear variables rezagadas y adelantadas de binary: binary-5, binary-4, …, binary+1, binary+2, … En otras palabras, quiero desplazar implement en incrementos / decrementos de n años para crear las nuevas variables binarias.

¿Cómo puedo crear estas variables en Stata?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Dado que los datos no están en formato de panel balanceado, podemos utilizar el comando tsset para convertirlos a un formato de series de tiempo. Estableceremos la variable de tiempo como year y la variable de panel como id.

    tsset id year
    

    A continuación, podemos utilizar un bucle para crear las variables binarias rezagadas y adelantadas. Aquí hay un ejemplo para crear las variables binarias rezagadas binary_lag1, binary_lag2 y binary_lag3. Esto puede modificarse fácilmente para crear otras variables rezagadas o adelantadas:

    forvalues i = 1/3 {
        gen binary_lag`i' = L.binary[`i']
    }
    

    La función L crea una variable rezagada, y utilizamos [i’]para hacer referencia ali`-ésimo rezago.

    De manera similar, podemos crear las variables binarias adelantadas binary_lead1, binary_lead2 y binary_lead3:

    forvalues i = 1/3 {
        gen binary_lead`i' = L.binary[-`i']
    }
    

    El signo - antes de i indica que queremos crear variables adelantadas en lugar de variables rezagadas.

    Es importante tener en cuenta que al crear variables rezagadas o adelantadas, es posible que perdamos algunas observaciones al principio o al final de la serie de tiempo. Por ejemplo, si creamos binary_lag3, perderemos las primeras 3 observaciones. Por lo tanto, es importante verificar si la serie de tiempo resultante tiene alguna observación faltante y ajustar las variables rezagadas y adelantadas en consecuencia.

Comments are closed.