整理上市公司共同机构所有权数据并构建上述三个维度的指标在Stata中的操作可以分为几个步骤。以下是一个基本流程和代码示例:
### 步骤1:导入数据
假设原始数据已经按照公司代码、日期、季度持股比例等信息排列好,并保存为`.dta`格式,你可以使用下面的命令导入数据:
```stata
use /path/to/your/dataset.dta, clear
```
### 步骤2:定义共同机构所有权虚拟变量(Coz1)
为了识别哪些公司被共同机构投资者持有股份,你需要先确定哪些是“共同机构投资者”。这通常涉及到一些预处理工作,在数据中可能需要一个字段表示持股比例。假设你已经有一个标识共同机构投资者的字段`common_investor`和一个持股比例字段`share_pct`:
```stata
gen Coz1 = 0
replace Coz1 = 1 if common_investor == 1 & share_pct >= 5/100
# 或者使用egen计算每个公司每个年度被共同机构持有的次数,然后根据次数判断是否为1
bys company_code year : egen common_holder_count = total(Coz1)
replace Coz1 = (common_holder_count > 0) if common_investor == 1 & share_pct >= 5/100
drop common_holder_count // 清理临时变量
```
### 步骤3:计算共同机构所有权联结程度(Coz2)
这涉及到统计每个公司被多少个不同的共同机构投资者持有。可以使用`egen`命令来实现:
```stata
bys company_code year : egen Coz2 = count(company_code) if common_investor == 1 & share_pct >= 5/100
replace Coz2 = log(Coz2 + 1)
```
### 步骤4:计算共同机构所有权持股比例(Coz3)
这要求统计每个公司被所有共同机构投资者持有的股份总和:
```stata
bys company_code year : egen Coz3 = total(share_pct) if common_investor == 1 & share_pct >= 5/100
```
### 步骤5:整理年度数据
如果原始数据是季度的,你可能需要计算每年的数据。假设`date`字段表示日期,你可以使用下面的命令:
```stata
gen year = year(date)
egen annual_mean_Coz2 = mean(Coz2), by(company_code year)
egen annual_sum_Coz3 = total(Coz3), by(company_code year)
replace Coz2 = annual_mean_Coz2
replace Coz3 = annual_sum_Coz3
drop annual_mean_Coz2 annual_sum_Coz3 // 清理临时变量
```
### 步骤6:清理和保存数据
最后,检查并删除不再需要的临时变量,并保存处理后的数据集:
```stata
list company_code year Coz1 Coz2 Coz3 in 1/5, sepby(year) noobs // 检查前几条记录
save /path/to/output/dataset.dta, replace
```
请注意,上述代码假设你已经进行了必要的数据预处理(如去除缺失值、定义`common_investor`字段等),并且具体字段名称和逻辑需要根据你的实际数据集进行调整。
此文本由CAIE学术大模型生成,添加下方二维码,优先体验功能试用