如何使用权重按年份计算标准偏差?

问题描述

egen不使用权重很容易,但是我不知道如何使用权重。

解决方法

这是一个愚蠢的示例-因为您没有提供数据示例。我展示了两种方法,一种是在组上循环,另一种是使用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
----------------------------------

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...