Python通过WRDS访问CCM数据库失败,求协助或替代方案
问题:无CCM权限时如何实现DGTW收益计算?
我为研究需求编写了Python代码以获取DGTW收益,代码实现基于DGTW相关方法,具体代码如下:
import wrds conn = wrds.Connection() ccm = conn.raw_sql(""" select gvkey, lpermno as permno, lpermco as permco, linktype, linkprim, linkdt, linkenddt from crsp.ccmxpf_linktable where (linktype ='LU' or linktype='LC') and linkprim in ('P', 'C') and usedflag=1 """, date_cols=['linkdt', 'linkenddt'])
执行CRSP与Compustat关联步骤时失败,推测是我的WRDS账号没有CCM数据库访问权限,希望得到以下帮助:
- 协助运行上述代码(如果可行)
- 告知无需CCM数据库的替代实现方法
解决方案
方法1:申请CCM权限
直接向WRDS官方或所属机构的WRDS管理员提交权限申请,明确说明你的研究需求。多数高校或研究机构的账号可通过管理员开通CCM访问权限,这是最合规、匹配精度最高的方式。
方法2:使用WRDS预关联数据集
WRDS提供了部分预关联的CRSP-Compustat历史链接表,比如crsp.ccmxpf_lnkhist,部分无完整CCM权限的账号也能访问该表。修改后的代码如下:
import wrds conn = wrds.Connection() # 替换为预关联历史链接表 ccm = conn.raw_sql(""" select gvkey, lpermno as permno, lpermco as permco, linktype, linkprim, linkdt, linkenddt from crsp.ccmxpf_lnkhist where (linktype ='LU' or linktype='LC') and linkprim in ('P', 'C') and usedflag=1 """, date_cols=['linkdt', 'linkenddt'])
方法3:手动模糊匹配(无WRDS权限时的临时替代)
若无法获取WRDS关联数据,可尝试手动匹配,但该方法误差较大,仅作临时方案:
- 分别从CRSP提取
permno、公司名称、行业代码,从Compustat提取gvkey、公司名称、行业代码 - 使用Levenshtein距离等模糊匹配算法匹配公司名称,结合行业代码过滤错误匹配结果
- 为匹配结果添加时间维度验证,确保匹配关系在对应时间段内有效
内容的提问来源于stack exchange,提问作者Wei Chang
相关产品推荐
相关产品推荐

