3 votos

El trato con los Valores que Faltan en Diff-en-Diff Estimación

Escribir el prólogo de esta, estoy haciendo esta pregunta en el Econ SE porque yo estaba al tanto de la Cruz confirmaron que la diferencia en la Diferencia de estimación es de una economía método específico.

Quarter-end Dynamics

La imagen de arriba muestra las desviaciones de Cubiertos de Interés de Paridad, para el Yen, el Euro y la Libra Esterlina. Las barras grises verticales marca trimestre los informes de fin de fechas. Mi plan era ahora para aplicar una diferencia en la Diferencia de estimación con el fin de investigar si las grandes desviaciones de la CIP, coincidiendo con el trimestre termina después de enero de 2015. La razón detrás de sospecha de cuartos de final de la dinámica del cambio en las normas de presentación de informes para los bancos globales en 2015. A partir de 2015 los bancos Europeos son obligadas a reportar una instantánea de su hoja de balance en el último día de cada trimestre. Para los bancos de los estados UNIDOS un informe similar que se requiere, sin embargo, en la forma de la media de la final de mes. El razonamiento detrás de esta hipótesis es que dijo normas de presentación de informes, junto con los requisitos de capital de la causa de la hoja de balance de los costos y por lo tanto dar lugar a una disminución de los bancos de participar en el arbitraje.

En este documento, DU et. al., que se aplica una diferencia en la diferencia de estimación, se investiga la sobre-explicación de la dinámica: https://onlinelibrary.wiley.com/doi/full/10.1111/jofi.1262

Como se puede observar en el gráfico los tres series de tiempo que podía adquirir, tienen diferentes valores que faltan. Por lo tanto, yo no estoy seguro de cómo proceder. El procedimiento aplicado en el papel no parece en realidad requiere de un panel, por favor me corrija aquí si usted no está de acuerdo. Lo que me lleva a creer que un panel en realidad, no es necesario aquí, se basa en el hecho de que los tratados y los no tratados, el grupo no son normalmente el caso de dos partes diferentes del panel, en este caso son grupos tratados y no tratados, en los cuartos de final/no en los cuartos de final y antes de 2015/después de 2015 en todos los tres de series de tiempo.

Por lo tanto esto se traduce en dos preguntas: Es posible construir un panel teniendo en cuenta que las tres series de tiempo han perdido los valores en diferentes puntos en el tiempo sin perder cada una de las observaciones que se encuentra, por una de las tres monedas?

Es posible que la estimación de esta diferencia en la diferencia para cada moneda por sí mismo, teniendo en cuenta los hechos que he señalado arriba?

Modelo:

$x_{1w,es}= \alpha_0 +\gamma_1Post15_t+ \beta_{1}QendW_{t}+\beta_{2}QendW_{t} \times Post15_t + \epsilon_{es}$

Donde $QendW$ es igual a 1 si la fecha de liquidación del contrato dentro de una fecha de presentación, $Post15$ es igual a 1 después de la Europea Ratio de Apalancamiento Acto Delegado fue establecido, y cero en caso contrario.

Estoy muy agradecido por los consejos o sugerencias, gracias!

2voto

Vitalik Puntos 184

Sólo para asegurarme de que entiendo:

  1. Usted tiene un diario en el panel (con valores perdidos), probablemente entre semana sólo, desde el 2013 hasta mediados de 2017, con $n=3$ transversal unidades.
  2. Usted cree que después de 2015, hay un fuerte incentivo para hacer algo diferente en los cuartos de final, por lo que el promedio de la base debería ser diferente en el mes de la final de los días, durante ese período.

La típica diferencia en la diferencia de regresión se comparan dos tipos de unidades, algunas que son tratados y algunos que no lo son, antes y después del inicio del tratamiento. Usted no tiene que aquí, pero creo que está bien, porque está en lugar de mirar la diferencia entre el final del trimestre y el resto del trimestre, pre - y post-.

Como cuestión general, esta configuración está bien. Mientras la falta-dad de los datos es un "desaparecido completamente al azar" o "falta al azar". El problema se produce cuando el patrón de datos faltantes refleja selección en la LHS de variables, variables omitidas causando cambios en la LHS, o el valor de la variable que falta está relacionada con la razón por la que falta.

Otra preocupación sería vacío de los casos. Usted quiere asegurarse de que usted tiene cuarto de final y cuartos de final no observaciones para el pre - y post-período. Si el uso de la unidad de FE, usted quiere asegurarse de que usted tiene los datos de pre/post, cuartos de final / no, para cada unidad.

Asegúrese también de la satisfacción de los requisitos de la diferencia en la diferencia de configuración. Algunos son de la onu-comprobable, pero, como mínimo, usted debe hacer una gráfica o estadísticos argumento de que sus datos satisfacer la tendencia común de la asunción.

He aquí una muestra de Python de código que muestra que usted puede recuperar los parámetros iniciales en su configuración. Yo lo hice con el de fin de mes, no el final del trimestre, debido a que hace más fácil tener una muestra bastante grande de falta de datos, tanto de la diferencia de las variables. Él tiene un ejemplo de MAR y MCAR. Se ha demostrado que funciona para ambos.


    import numpy as np
    import pandas as pd
    import statsmodels.formula.api as smf
    import itertools
    np.random.seed(9876789)

    startyear=2013
    endyear=2017
    daysinmonth = 21
    nummonths = 12
    numgroups = 3
    numyears = (endyear-startyear+1)
    dropfraction = 0.20
    # np.sort(np.tile(np.arange(2013,2018), 12*21))
    years   = np.repeat(np.arange(startyear,endyear+1), nummonths*daysinmonth*numgroups )
    days    = np.tile(np.arange(1,daysinmonth+1), nummonths*numyears*numgroups )
    months  = np.tile(np.repeat(np.arange(1,nummonths+1), daysinmonth),  numyears*numgroups)
    groups  = np.tile(np.repeat(np.arange(1,(numgroups+1)),nummonths*daysinmonth), numyears)
    df = pd.DataFrame({'year': years, 'month': months, 'day': days, 'group': groups})


    # Last weekday is monthend or the 21st 
    df['endofmonth'] = df.day == 21
    df['QendW'] = 1*df['endofmonth']
    df['Post15'] = 1* (df.year > 2015)
    df['random'] = np.random.rand(daysinmonth*nummonths*numyears*numgroups)
    df['missing_completely_at_random'] = df['random'] <= dropfraction
    df['missing_at_random'] = (df['random'] - 0.05 * df['Post15'])  <= dropfraction
    df['QendWxPost15'] = df['QendW'] * df['Post15']

    alpha0 =  0.2
    gamma1 =  0.05
    beta1  = -0.10
    beta2  =  0.15
    df['error'] = np.random.randn(daysinmonth*nummonths*numyears*numgroups) / 10

    df['x1'] = alpha0 + gamma1 * df['Post15'] + beta1 * df['QendW'] + beta2 * df['QendWxPost15'] +  df['error']

    df['x1_missing_completely_at_random'] = df['x1'].copy()
    df.loc[df['missing_completely_at_random'] == True, 'x1_missing_completely_at_random'] = np.nan

    df['x1_missing_at_random'] = df['x1'].copy()
    df.loc[df['missing_at_random'] == True, 'x1_missing_at_random'] = np.nan

    print("No missing data")
    model = smf.ols(formula='x1 ~ Post15 + QendW + QendWxPost15', data=df)
    results = model.fit()
    print(results.summary())


    print("Missing Completely At Random (MCAR)")
    model_missing_completely_at_random = smf.ols(formula='x1_missing_completely_at_random ~ Post15 + QendW + QendWxPost15', data=df)
    results_missing_completely_at_random = model_missing_completely_at_random.fit()
    print(results_missing_completely_at_random.summary())

    print("Number missing quarter end (MCAR)")
    print(np.sum(df.loc[df['missing_completely_at_random'] == True, 'QendW'] ))
    print("Number missing quarter end post 2015 (CAR)")
    print(np.sum(df.loc[df['missing_completely_at_random'] == True, 'QendWxPost15'] ))


    print("Missing At Random (MAR)")
    model_missing_at_random = smf.ols(formula='x1_missing_at_random ~ Post15 + QendW + QendWxPost15', data=df)
    results_missing_at_random = model_missing_at_random.fit()
    print(results_missing_at_random.summary())

    print("Number missing quarter end (MAR)")
    print(np.sum(df.loc[df['missing_at_random'] == True, 'QendW'] ))
    print("Number missing quarter end post 2015 (MAR)")
    print(np.sum(df.loc[df['missing_at_random'] == True, 'QendWxPost15'] ))

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X