1 votos

Promedio de datos durante 5 años con Stata o Excel

Necesito comandos de Stata o una función de Excel para calcular la media en grupos de 5 años de los valores de un conjunto de datos de panel. En particular, este procedimiento como para tener en cuenta la presencia de posibles valores perdidos (celdas vacías en Excel) y así ajustar el cálculo en consecuencia al número real de no perdidos en el período.

0 votos

No estoy 100% seguro. Es algo así: Tienes que usar el comando tabular. Si necesitas hacer el promedio sólo en los últimos 5 años y no en todo el período del panel, usa: tabular "nombre de las variables" si "nombre de la variable temporal"=2016,2015 etc. (No recuerdo la sintaxis exacta de "si", así que sólo puse una coma, pero podría ser un paréntesis)

0 votos

Excel's AVERAGE() ignorará las celdas vacías o no numéricas (aunque no las celdas de error)

0 votos

Tal vez pueda compartir sus datos. Sólo con tu descripción escrita no está muy claro lo que quieres hacer.

1voto

user10775 Puntos 121

¿Es esto lo que quiere (en Stata)?

 clear all
 * Generate Data (n=5, T=20)
 set obs 100
 gen id = floor((_n-1)/20)+1
 by id, sort: gen year = 1990+_n
 gen x = rnormal()
 xtset id year
 * Convert
 gen t5 = floor((year-1991)/5)+1
 gen idt5 = id*10+t5 /* 10 can be 100, 1000, etc., depending on T */
 by idt5, sort: egen xbar5 = mean(x)
 *drop t5 idt5  /* drop if you want; you can also use tempvar */

Si no es así, aclare su pregunta con un ejemplo.

0voto

Ian P Puntos 7930

Utilice el tssmooth ma comando. Utilice el comando window() para controlar los periodos de tiempo que se incluirán en la media.

. use http://www.stata-press.com/data/r14/abdata, clear
. keep id year wage
. quietly keep if id == 1 | id == 2
. quietly xtset id year
. 
. ** moving average of 2 years before, 2 years after, and the current year
. tssmooth ma wage_moving_avg_5yr = wage, window(2 1 2)
The smoother applied was
     by id : (1/5)*[x(t-2) + x(t-1) + 1*x(t) + x(t+1) + x(t+2)]; x(t)= wage

. list

     +--------------------------------+
     | year      wage   id   wage_m~r |
     |--------------------------------|
  1. | 1977   13.1516    1    12.7643 |
  2. | 1978   12.3018    1    13.0242 |
  3. | 1979   12.8395    1    13.2773 |
  4. | 1980   13.8039    1    13.6206 |
  5. | 1981   14.2897    1   13.91592 |
     |--------------------------------|
  6. | 1982   14.8681    1   14.18503 |
  7. | 1983   13.7784    1   14.31207 |
  8. | 1977   14.7909    2   14.61597 |
  9. | 1978   14.1036    2   14.83472 |
 10. | 1979   14.9534    2   15.10716 |
     |--------------------------------|
 11. | 1980    15.491    2   15.37526 |
 12. | 1981   16.1969    2   15.81556 |
 13. | 1982   16.1314    2    16.0311 |
 14. | 1983   16.3051    2   16.21113 |
     +--------------------------------+

Tenga en cuenta que este comando toma lo que está disponible en el período de tiempo especificado. Por ejemplo, para el año 1977, como no se dispone de dos años anteriores, simplemente calcula la media del año actual y de los dos años siguientes.

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