Stata的面向函数式编程——以独董职业背景多元化赫芬达尔指数的计算过程为例
Posted 笔杆志
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Stata的面向函数式编程——以独董职业背景多元化赫芬达尔指数的计算过程为例相关的知识,希望对你有一定的参考价值。
*首先导入原数据
clear
set more off
cd "E\独董多元化"
use example
capture program drop fundhhi
program define fundhhi
version 16
syntax varlist(min=1 max=1) //定义该命令的语法,需传入一个变量参数
preserve
*把每个独董的背景搞成哑变量,共九个哑变量
quietly{
forvalues i = 1/9{
capture gen `1'`i'=ustrregexm(`1', "`i'")
}
*分公司年份,计算每种背景的独董人数
forvalues i = 1/9{
capture bys stkcd year: egen sumfund`i'=sum(`1'`i')
}
*分公司年份,计算独董总人数
capture bys stkcd year: gen dudongsize=_N
*计算赫芬达尔指数
capture gen sumratio_2=0
forvalues i=1/9{
capture replace sumratio_2=sumratio_2+(sumfund`i'/dudongsize)^2
}
gen `1'HHI=1-sumratio_2
keep stkcd year `1'HHI
duplicates drop
save `1'HHI, replace
}
restore
end
fundhhi fund
以上是关于Stata的面向函数式编程——以独董职业背景多元化赫芬达尔指数的计算过程为例的主要内容,如果未能解决你的问题,请参考以下文章