Skip to content

shadowbatcode/YarlungZangbo-DID-Enterprise-Registration

Repository files navigation

雅鲁藏布江下游水电工程企业注册活力研究

这是一个围绕“雅鲁藏布江下游水电工程是否带动企业注册活力”所搭建的复现与分析仓库。项目以西藏企业注册数据为基础,结合空间暴露分组、双重差分(DID)、事件研究、稳健性检验和异质性分析,输出论文写作可直接使用的图表与诊断表。 image

项目内容

  • 整理和合并天眼查导出的西藏企业注册数据
  • 构建 2020-012025-09 的县级月度平衡面板
  • 以工程走廊距离划分处理组、排除组和对照组
  • 运行基准 DID、事件研究、稳健性检验、异质性分析
  • 导出图表、回归结果和辅助诊断表

默认研究设定

当前主程序 did_model.py 默认使用 project_corridor 口径:

  • 政策冲击时点:2021-03
  • 时间范围:2020-012025-09
  • 疫情极端月份剔除:2020-022020-032020-04
  • 处理组:米林县墨脱县林芝县
  • 排除组:波密县工布江达县
  • 对照组:察隅县边坝县嘉黎县洛隆县八宿县朗县比如县索县隆子县丁青县加查县

空间分组逻辑来自 map_did.py

  • 0-30km:核心处理县
  • 30-80km:潜在外溢排除县
  • 80-200km:低暴露对照县

此外,did_model.py 中还保留了 broad_basincore_corridor 等备选口径,可通过修改 ACTIVE_PROFILE_KEY 切换。

仓库结构

  • did_model.py:主分析脚本,负责数据读取、面板构建、回归、绘图与导出
  • map_did.py:工程走廊暴露分组与空间分布图生成
  • county_utils.py:区县名称标准化工具
  • 单文件数据导入.py:合并多个天眼查 Excel,并统一日期格式
  • 天眼查爬虫.py:Selenium 爬虫脚本,用于分月抓取企业数据
  • test_did_model.py:单元测试,锁定样本口径、关键参数和绘图行为
  • did_output/:分析结果输出目录
  • data/:原始数据压缩包或备份
  • 仿真/:地图底图、河流分级图层和区县边界数据
  • docs/plans/:开发计划与过程记录

环境依赖

建议环境:

  • Windows
  • Python 3.10+

核心依赖:

pip install pandas numpy matplotlib statsmodels geopandas shapely openpyxl selenium

说明:

  • 若只运行主分析,不使用爬虫,则 selenium 不是必须。
  • 若只做数据合并,不需要安装 geopandasshapely
  • Windows 下安装 geopandas 若遇到编译问题,建议使用 Conda 环境。
  • 绘图脚本默认使用中文字体 SimHei,本机缺失时可能出现中文乱码或方块字。

数据准备

主分析脚本默认读取仓库根目录下的:

  • 西藏企业数据.xlsx

该文件已被 .gitignore 忽略,通常不会提交到仓库。运行前请确认它位于项目根目录。

如果你手头是多个天眼查导出的 Excel,可以先在项目根目录执行:

python 单文件数据导入.py

这个脚本会:

  • 读取已有的 西藏企业数据.xlsx
  • 合并当前目录下以 【天眼查】 开头的 Excel 文件
  • 去重并标准化“成立日期”
  • 输出 合并_所有企业数据_日期格式.xlsx

运行方式

1. 运行主分析

python did_model.py

主程序会依次执行:

  • 数据清洗
  • 月度面板构建
  • 描述统计
  • 基准 DID
  • 事件研究和平行趋势检验
  • 稳健性检验
  • 异质性分析
  • 空间分布图绘制
  • CSV 与图片导出

2. 单独生成空间分布图

python map_did.py

3. 运行测试

python -m unittest -v test_did_model.py

输出结果

运行 did_model.py 后,结果默认写入 did_output/

主要图片包括:

  • fig1_事件研究图.png
  • fig2_月度趋势图.png
  • fig3_系数汇总图.png
  • fig4_异质性分析图.png
  • fig5_空间分布图.png

主要表格包括:

  • 01_月度面板数据.csv
  • 02_回归结果汇总.csv
  • 03_事件研究系数.csv
  • 04_组别前后对比.csv
  • 05_年度差距分解.csv
  • 06_县级贡献分解.csv
  • 07_行业门类影响因子.csv
  • 08_行业大类影响因子.csv
  • 09_时间窗口影响因子.csv

代码说明

did_model.py 的核心思路如下:

  1. 读取企业注册明细并统一县名
  2. 仅保留样本县和研究期内数据
  3. 按县 × 月构建平衡面板
  4. 使用 treat × post 构造 DID 变量
  5. 用双向固定效应模型估计注册活力变化
  6. 用事件研究检查处理前趋势
  7. 从空间、行业、时间三个维度做异质性比较

注意事项

  • 天眼查爬虫.py 目前写死了本地路径,例如 E:\工具\chromedriver.exeC:\Users\Wu\Desktop\数据收集,直接运行前需要先按本机环境修改。
  • map_did.py 依赖 仿真/ 目录下的 GeoJSON、Shapefile 和河流图层,目录名与文件名不要随意变动。
  • 若只想复现实证结果,优先使用已有的 西藏企业数据.xlsxdid_model.py,不必先跑爬虫。
  • 如果需要切换研究口径,可在 did_model.py 中修改 ACTIVE_PROFILE_KEY

参考

主分析脚本注释中注明的参考框架为:

  • The Growth Tide: Quasi-Experimental Evidence on the Regional Economic Impacts of Mega-Dams

如果后续还要继续完善,比较自然的下一步通常是补一个 requirements.txtenvironment.yml,把当前环境固定下来,便于复现。

About

DID and event-study analysis of Yarlung Zangbo hydropower effects on Tibetan firm registration.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages