【数据透基眼原创】上市公司供应商和客户共享审计指标com计算stata代码
免费分享,交流进步.
可关注VX:数据透基眼
参考文献:与供应商和客户共享审计能提升审计质量吗——基于横向和纵向共享程度的分析
Com共享审计指标:即公司当年与多少家供应商或客户进行共享审计来度量。 若公司当年未与其任何 的主要供应商或客户聘请同一会计师事务所或同一签字注册会计师进行审计则赋值为 0,若与其主要供应商或 客户中的任意一家聘请同一会计师事务所或同一签字注册会计师则赋值为 1,若与其中两家聘用同一会计师事 务所或同一签字注册会计师则赋值为 2,以此类推,Com的取值范围为[0,7]的整数
* ==========================================
* 1. 处理上市公司自身的审计数据
* ==========================================
* 假设你已经导入了当年上市公司的审计数据,命名为 audit_comp
* use “审计数据路径\audit_comp.dta”, clear
* 生成年份变量(假设Accper格式为 “2023-12-31″)
gen year = year(date(Accper, “YMD”))
* 保留所需变量,去重(确保每家公司每年只有一条记录)
keep Stkcd year Auditfirm Sign1 Sign2
duplicates drop Stkcd year, force
* 清理字符串前后的空格(非常重要,否则匹配不上)
replace Auditfirm = ustrregexra(Auditfirm, “\s+”, “”)
replace Sign1 = ustrregexra(Sign1, “\s+”, “”)
replace Sign2 = ustrregexra(Sign2, “\s+”, “”)
* 重命名变量,以防后续合并时冲突
rename (Auditfirm Sign1 Sign2) (comp_aud comp_cpa1 comp_cpa2)
* 临时保存
save comp_audit, replace
* ==========================================
* 2. 处理供应商/客户(关联方)的审计数据
* ==========================================
* 再次使用同一份审计数据,但将其视为“供应商/客户”的审计数据
* use “审计数据路径\audit_comp.dta”, clear
gen year = year(date(Accper, “YMD”))
keep Stkcd year Auditfirm Sign1 Sign2
duplicates drop Stkcd year, force
replace Auditfirm = ustrregexra(Auditfirm, “\s+”, “”)
replace Sign1 = ustrregexra(Sign1, “\s+”, “”)
replace Sign2 = ustrregexra(Sign2, “\s+”, “”)
* 重命名变量,代表关联方的审计特征
rename (Stkcd Auditfirm Sign1 Sign2) (rel_stkcd rel_aud rel_cpa1 rel_cpa2)
* 临时保存
save rel_audit.dta, replace
* ==========================================
* 3. 处理前五大供应商/客户数据
* ==========================================
* use “前五大供应商客户路径\Cust_Supp_Top5.dta”, clear
gen year = year(date(Accper, “YMD”))
* 将客户代码和供应商代码合并成一列,方便处理
gen rel_stkcd = “”
replace rel_stkcd = Cust_Stkcd if Cust_Stkcd != “” & S_C_Type == “1”
replace rel_stkcd = Supp_Stkcd if Supp_Stkcd != “” & S_C_Type == “2”
* 剔除未上市的供应商/客户(因为没有审计数据)
drop if rel_stkcd == “”
* 去重:同一年同一公司如果既是客户又是供应商,只算一次
duplicates drop Stkcd year rel_stkcd, force
keep Stkcd year rel_stkcd
save top5_list.dta, replace
* ==========================================
* 4. 匹配关联方的审计信息
* ==========================================
use `top5_list’, clear
* 将前五大名单与关联方审计数据进行合并 (m:1)
merge m:1 rel_stkcd year using `rel_audit’, keep(match master) nogen
* 将上述结果与本公司审计数据进行合并 (m:1)
merge m:1 Stkcd year using `comp_audit’, keep(match master) nogen
* ==========================================
* 5. 计算是否共享审计 (同行/纵向)
* ==========================================
* 初始化共享标志为0
gen is_shared = 0
* 条件1:同一会计师事务所
replace is_shared = 1 if comp_aud == rel_aud & comp_aud != “” & rel_aud != “”
* 条件2:同一签字注册会计师 (注意CPA1和CPA2的交叉匹配)
* 本公司的CPA1 等于 关联公司的CPA1 或 CPA2
replace is_shared = 1 if (comp_cpa1 == rel_cpa1 | comp_cpa1 == rel_cpa2) & comp_cpa1 != “” & rel_cpa1 != “”
* 本公司的CPA2 等于 关联公司的CPA1 或 CPA2
replace is_shared = 1 if (comp_cpa2 == rel_cpa1 | comp_cpa2 == rel_cpa2) & comp_cpa2 != “” & rel_cpa2 != “”
* ==========================================
* 6. 汇总生成 Com 变量
* ==========================================
* 按照公司-年份进行折叠,计算 is_shared 的总和,即为 Com
collapse (sum) Com = is_shared, by(Stkcd year)
* 确保取值范围为整数,且符合[0,7]的设定
replace Com = 0 if Com == .
assert Com >= 0 & Com <= 7 // 如果报错说明存在超过7家共享的情况,可以忽略或检查数据
* 保存最终变量
* save “Com_shared_audit.dta”, replace
易获数据网
评论前必须登录!
注册