大数跨境
0
0

Stata中reclink命令全解析,必学干货来袭!

Stata中reclink命令全解析,必学干货来袭! Stata and Python数据分析
2025-02-27
0
导读:You can’t have a better tomorrow if you don’t stop thinking about yesterday.

本文作者:王宇新 河南大学经济学院

本文编辑:崔雨晨

技术总编:马梦杰

Stata and Python 数据分析

爬虫俱乐部Stata基础课程Stata进阶课程Python课程可在小鹅通平台查看,欢迎大家多多支持订阅!如需了解详情,可以通过课程链接(https://appbqiqpzi66527.h5.xiaoeknow.com/homepage/10)或课程二维码进行访问哦~

 



导读
Stata 作为一款强大的统计软件,不断为我们提供各种实用工具。今天就来深入聊聊其中的reclink命令,它在记录链接(Record Linkage)方面堪称神器,能帮我们处理好多复杂的数据匹配难题。
01
安装reclink命令
首先,确保你的Stata已联网,因为大部分情况下我们通过官方途径来安装外部命令。
在Stata的命令窗口输入:
ssc install reclink
车后,Stata就会自动从 SSC(Statistical Software Components)库中搜索并下载reclink及其相关依赖包,静静等待安装完成提示即可。要是遇到权限问题,记得以管理员身份运行Stata。
02
reclink命令怎么用
reclink基本语法如下:
reclink varlist using filename, idmaster(varname) idusing(varname) gen(newvarname) [options]
  1. varlist
    这是主数据集(也就是当前打开的数据集中)中用于匹配的变量列表。这些变量将作为与外部文件(通过using指定)中记录进行匹配的依据。例如,如果处理的是关于人员信息的数据,varlist可能包含姓名、出生日期、地址等变量。这些变量的内容会和外部文件中的对应变量进行比较,以确定记录是否匹配。

  2. using filename
    using是 Stata 中用于指定外部数据文件的关键字。filename是要使用的外部文件的名称。这个外部文件包含了要与主数据集进行匹配的记录。文件格式可以是 Stata 能够识别的格式,如.dta 格式(Stata 数据集格式)等。例如,如果外部文件名为external_data.dta,那么using external_data.dta表示将这个外部数据集用于匹配。

  3. idmaster(varname)
    这是在主数据集中指定唯一标识符变量的选项。varname是主数据集中的一个变量名称,这个变量用于唯一标识每个记录。例如,在一个包含学生信息的主数据集中,idmaster(student_id)表示使用student_id变量作为主数据集的唯一标识符。在匹配过程中,这个变量可以帮助确保记录的正确匹配和关联,避免混淆不同的个体记录。

  4. idusing(varname)
    与idmaster相对应,这是在外部(using)数据集中指定唯一标识符变量的选项。varname是外部数据集中的一个变量名称。例如,如果外部数据集也是关于学生信息的,idusing(external_student_id)表示使用external_student_id变量作为外部数据集的唯一标识符。在匹配过程中,通过主数据集和外部数据集的唯一标识符来准确地关联记录。

  5. gen(newvarname)
    这个选项用于在主数据集中生成一个新变量。newvarname是要生成的新变量的名称。这个新变量将用于记录匹配的结果,可以用来表示记录是否匹配、匹配的程度等信息。例如,gen(match_result)会在主数据集中创建一个名为match_result的新变量,根据匹配操作的结果为这个变量赋值,如 0 表示不匹配,1 表示完全匹配等。

  6. [options]
    这是一系列可选的参数,用于进一步定制匹配操作。一些常见的选项包括:

  • 权重选项:如wmatch(match weight list)选项用于为匹配成功的变量指定权重,用于调整不同变量在匹配过程中的重要性。权重越高,表示该变量在匹配过程中的重要性越大。当你认为某些变量在匹配过程中比其他变量更重要时,可以通过wmatch选项为这些变量赋予更高的权重。例如,如果你在匹配公司名称时,认为城市名称比公司名称的其他部分更重要,可以为城市名称赋予更高的权重。

  • 阈值设置选项:如minscore(#),其中#是一个数值。这个选项用于设置匹配的相似度阈值。例如,minscore (0.8)表示匹配的相似度得分需要达到 0.8 及以上才认为是匹配成功。这个阈值的选择取决于数据的特点和匹配的严格程度要求。如果数据质量较高,可能需要设置较高的阈值;如果数据存在较多噪声或误差,可能需要降低阈值。

03
案例实战:客户数据整合
假设一家公司有两个客户信息数据库。一个是旧的客户关系管理系统(CRM)数据库,其中包含客户姓名(customer_name)、联系电话(phone_number)和电子邮件(email_address)等信息,记录了2022-2023年的客户数据,存储在old.dta文件中。另一个是新的客户关系管理系统(CRM)数据库,记录了 2024年之后的数据,存储在new.dta文件中。公司希望整合这两个数据库,以获得完整的客户信息视图。

  主数据集(master data)为:

从数据集(using data)为:

操作步骤:

  首先,在Stata中加载旧的客户数据库:

use old.dta, clear

  然后,使用reclink命令进行数据匹配和整合:

reclink customer_name phone_number email_address using new.dta, idmaster(id_old) idusing(id_new) gen(match_score) minscore(0.7)
  • reclink进行模糊匹配,使用customer_name、phone_number和email_address作为匹配变量。

  • idmaster(id_old) 和 idusing(id_new)为指定主数据集和从数据集中的唯一标识符。

  • gen(match_score)为生成一个新变量match_score来存储匹配得分。

    minscore(0.7)设置匹配的最小得分阈值为0.7。这里将匹配阈值设置为 0.7,是因为客户信息可能存在一些小的变化,如电话号码的格式调整或名字、电子邮件地址的拼写错误等。

生成的结果:

  • 根据新生成的变量match_score的得分来看,“Jerry”的得分为0.9963,“David”的得分为0.9985其余观测值的得分均为1。也就是说,除了Jerry和David的记录外,其他记录在两个数据集中都完全匹配。对于Jerry和David,尽管存在轻微的拼写差异,但匹配得分仍然非常高,表明这些记录很可能是同一客户。在实际应用中,可能需要进一步的人工检查来确认这些匹配是否准确。

  • using data中第6个观测值没有被匹配进来,是因为其customer_name、phone_number、email_address,包括唯一标识码id_new和master data的所有观测值都不相似。

  • _merge表示匹配的结果,值为 1表示观测值仅来自master data,在合并操作中,没有找到与之匹配的using data中的观测值。值为 2表示观测值仅来自从数据集,在合并操作中,没有找到与之匹配的主数据集中的观测值。值为 3表示观测值在主数据集和从数据集中都有匹配,是成功匹配的观测值。由于该结果_merge的值均为3,表示master data中的所有观测值都在using data中能够找到匹配的观测值。

  此外,在使用reclink命令时,还有一些小技巧值得注意。当处理大规模数据集时,匹配过程可能耗时较长,可以合理利用 Stata 的后台运行功能,让电脑在空闲时段默默完成任务,避免占用过多即时操作时间。同时,若遇到匹配结果不理想的情况,不要急于调整阈值,先仔细检查数据的质量,查看是否存在录入错误、格式不一致等问题,有时候,简单的数据清洗就能大幅提升匹配效果。

  总之,reclink命令为Stata用户打开了高效数据匹配整合的大门,快在自己的项目里试试,解锁更多数据分析潜能!要是在使用过程中有疑问,欢迎交流探讨哦!


—— End ——


重磅福利!为了更好地服务各位同学的研究,爬虫俱乐部将在小鹅通平台上持续提供金融研究所需要的各类指标,包括上市公司十大股东、股价崩盘、投资效率、融资约束、企业避税、分析师跟踪、净资产收益率、资产回报率、国际四大审计、托宾Q值、第一大股东持股比例、账面市值比、沪深A股上市公司研究常用控制变量等一系列深加工数据,基于各交易所信息披露的数据利用Stata在实现数据实时更新的同时还将不断上线更多的数据指标。我们以最前沿的数据处理技术、最好的服务质量、最大的诚意望能助力大家的研究工作!相关数据链接,请大家访问:(https://appbqiqpzi66527.h5.xiaoeknow.com/homepage/10)或扫描二维码:



对我们的推文累计打赏超过1000元,我们即可给您开具发票,发票类别为“咨询费”。用心做事,不负您的支持



往期推文推荐

【爬虫实战】文献阅读小助手

爬虫实战——stata抓取教育部文件(二)

除夕烟火映征程,回顾这一年的奋斗足迹
“巳升升”送如意!

爬虫实战——Stata抓取国家公务员局工作动态信息

别让 “害虫” 毁了你的电脑!Stata 命令来救场
Stata的DOS命令批量处理文件

【爬虫实战】 人工智能机器人概念股投资策略——以“300024.SZ”机器人公司为例

stata应用:日期数据处理
【爬虫实战】Python爬取雪球评论

Python文本分析之余弦相似度

Stata应用:将数据“画”在中国地图上

Stata地图利器——geodist和geonear简单上手
stata实战之爬取和讯网
爬虫实战——stata抓取教育部文件(一)
国庆档电影豆瓣评论,谁领风骚

清洗实证数据的案例——计算比率和知网数据重命名

空间计量与Stata(一)

探索源远流长的家族历史——爬取祠堂数据




【声明】内容源于网络
0
0
Stata and Python数据分析
爬虫俱乐部,新的启航
内容 1337
粉丝 0
Stata and Python数据分析 爬虫俱乐部,新的启航
总阅读560
粉丝0
内容1.3k