Как я могу рассчитать стандартное отклонение по годам, используя aweights?

#stata #standard-deviation #weighted #inequality

#stata #стандартное отклонение #взвешенный #неравенство

Вопрос:

Без использования весов легко с egen , но я не знаю, как использовать веса.

Ответ №1:

Вот глупый пример — поскольку вы не приводите пример данных. Я показываю два способа сделать это, один с циклом по группам, а другой с использованием statsby . Есть и другие способы, использующие collapse (скажем), а также другие, использующие команды, предоставленные сообществом.

 webuse grunfeld, clear 

gen sd = . 

quietly forval y = 1935/1954 { 
    summarize invest [aw=mvalue] if year == `y'
    replace sd = r(sd) if year == `y'
}

save my_grunfeld 

statsby SD = r(sd), by(year): su invest [aw=mvalue] 

merge 1:m year using my_grunfeld 

tabdisp year, c(sd  SD) format(%2.1f)

----------------------------------
     year |         sd       r(sd)
---------- -----------------------
     1935 |      136.2       136.2
     1936 |      175.3       175.3
     1937 |      192.4       192.4
     1938 |      116.1       116.1
     1939 |      140.0       140.0
     1940 |      196.0       196.0
     1941 |      213.8       213.8
     1942 |      197.0       197.0
     1943 |      215.4       215.4
     1944 |      237.0       237.0
     1945 |      237.3       237.3
     1946 |      283.1       283.1
     1947 |      230.8       230.8
     1948 |      224.2       224.2
     1949 |      234.7       234.7
     1950 |      274.3       274.3
     1951 |      315.5       315.5
     1952 |      377.2       377.2
     1953 |      572.6       572.6
     1954 |      664.1       664.1
----------------------------------