有个小伙伴问了这样一个问题:
如果是求 N 年的投资支出的标准差呢?比如一个公司有 2011~2015 的投资支出数据,2012 年的标准差是用 2011 年和 2012 年的数据,2013 年的标准差是用 2011 2012 2013 的数据,以此类推。
实际上也就是如何计算累计标准差。
我准备了一个示例数据:
*- 计算每个公司本年及之前年份的标准差 |
按照企业名称和年份排序:
gsort 企业名称 年份 |
根据总体方差公式 D(x) = E(x^2) - [E(x)]^2
首先计算 [E(x)]^2:
bysort 企业名称: gen cumsum = sum(资产总计千元) |
然后计算 E(x^2):
bysort 企业名称: gen x2cumsum = sum(资产总计千元^2) / n |
方差等于两者的差值:
gen var = x2cumsum - mean2 |
不过我们这里实际上是要计算样本标准差,所以需要进行无偏性调整:
回忆一下,总体方差公式里面的分母是 n,样本方差公式里面的分母是 (n - 1),所以这里需要乘以 n/(n-1) 进行转换:
replace var = var * (n / (n - 1)) |
还可以通过循环计算前面的一些来检查下:
*- 标准差 |
点击这里跳转到 RStata 短书平台获取附件:Stata:计算每个公司本年及之前年份的标准差 or 计算累计标准差
评论