Basándonos en la explicación del OP en la pregunta y los comentarios, supongamos que las películas tratadas y no tratadas son como
-----------------------------------------
month treated movie untreated movies
-------- -------------- ----------------
1 1 2, 3, ..., 10
2 11 12, 13, ..., 20
3 21 22, 23, ..., 30
...
-----------------------------------------
y hay varias revisiones en cada mes. Supongo que la OP quiere una forma conveniente de obtener el efecto medio del tratamiento (promediado en varios meses). Supongamos que los datos se agrupan.
El método que OP considera en su segundo comentario a la pregunta es (i) reg y i.tgroup##i.post x1 x2 if month==1, vce(r)
etc. y luego promediar las estimaciones DID. Veamos si podemos hacer algo similar utilizando una única regresión. Vayamos paso a paso.
Considere la regresión (ii) reg y i.month##(i.tgroup##i.post x1 x2), vce(r)
. Entonces (ii) debería ser igual que (i). Los errores estándar deberían ser correctos porque se utilizan errores estándar robustos a la heteroscedasticidad. El problema con (ii) es que hay $m$ (# de meses) efectos del tratamiento, que el OP quiere promediar.
Así pues, impongamos la restricción de que el coeficiente del término de interacción sea común (el mismo en todos los meses), y nuestra regresión será (iii) reg y i.month##(tgroup post x1 x2) i.tgroup#i.post, vce(r)
. A continuación, se estima una especie de "efecto medio del tratamiento" y todos los demás coeficientes son específicos de cada mes. Hasta aquí todo bien.
Sorprendentemente, (i) $\neq$ (iii) en general; (i) es una media no ponderada de $\hat\beta_k$ y (iii) es una media ponderada particular de ellos. La razón es la siguiente. Debido a la descomposición de Frisch-Waugh, (i) es igual a $m^{-1} \sum_{k=1}^m \hat\beta_k$ , donde $\hat\beta_k = (X_k'M_{Z_k} X_k)^{-1} X_k' M_{Z_k} y_k$ (Coeficiente DID para el mes $k$ ), $X_k$ es el vector de los términos de interacción para el mes $k$ , $Z_k$ la matriz de todos los demás regresores, y $y_k$ el vector de tasas de revisión en el mes $k$ mientras que (iii) da (según el álgebra) $(\sum_{k=1}^m X_k'M_{Z_k} X_k)^{-1} \sum_{k=1}^m X_k'M_{Z_k} y_k = \sum_{k=1}^m C_k \hat\beta_k$ , donde $$C_k = \left( \sum_{j=1}^m X_j'M_{Z_j} X_j \right)^{-1} X_k'M_{Z_k} X_k.$$ Obsérvese que el estimador del grupo medio de (i) utiliza $1/m$ para $C_k$ . (Tenga en cuenta que $X_k$ es un vector de columnas por lo que $C_k$ es un escalar). Si $X_k'M_{Z_k} X_k$ es el mismo para todos los $k$ (meses), entonces $C_k = 1/m$ y por tanto (iii) = (i).
$C_k\ne 1/m$ debido a dos razones. En primer lugar, el número de observaciones (revisiones) es diferente entre meses. En segundo lugar, las covariables ( x1
y x2
en las regresiones). (i) y (iii) son tratamientos promediados de forma diferente. Creo que es una cuestión de elección. También podría considerar otros modelos más restringidos como reg y i.tgroup##t.post x1 x2, vce(r)
siempre y cuando puedas notar la diferencia. ¿Por qué no?
No he comprobado rigurosamente lo siguiente.
Si no hay covariables, podemos cambiar (iii) a WLS para construir los resultados de (i), donde las ponderaciones son $1/\sqrt{n_k}$ con $n_k$ que denota el número de observaciones en el mes $k$ . (Nota: Es WLS para construir la regresión del grupo medio. No tiene nada que ver con GLS). Es decir,
by month, sort: gen nobs = 1/sqrt(_N)
reg y i.tgroup##t.post [aw = wgt], vce(r)
Si hay x
variables, entonces podemos calcular $C_k$ manualmente y construir las ponderaciones para WLS. Como $1/\sqrt{X_k'M_{Z_k} X_k}$ pueden utilizarse como pesos (para WLS) y $X_k'M_{Z_k} X_k$ no es más que el SSR de la regresión de $X_k$ en $Z_k$ El cálculo es conceptualmente sencillo, aunque la codificación en Stata puede ser algo complicada.
gen tr = tgroup*post
gen xmx = .
forv k=1/m {
reg tr tgroup post x1 x2 if month==`k'
replace xmx = e(rss) if month==`k' /* does it work? */
}
gen wgt = 1/sqrt(xmx)
reg y i.tgroup##i.post [aw = wgt], vce(r)