高铁与城镇化之间的关系,远不是"开通了、变化了、所以是高铁的功劳"这么简单。我自己在处理一批地级市多年面板数据时,第一版回归结果就栽了跟头:高铁开通变量的系数时正时负,换两个控制变量就从显著变成不显著,怎么看都不可信。后来才想明白,问题的关键不在于往方程里堆多少变量,而在于"开通高铁的城市"和"没开通高铁的城市"从一开始就不在同一把秤上。人口多、经济强的城市本来就更容易被选为设站城市,而这些特征恰恰也是推动城镇化的核心力量。要从这些混杂因素里剥离出高铁的净效应,我最终选择了PSMDID模型的路线——用倾向得分匹配先构造一个可比样本,再用双重差分识别因果效应。这篇文章不打算做理论综述,而是把我实际跑这套模型的完整过程、数据设计、诊断检验和踩过的坑记下来,希望能给正在写类似实证论文或做区域评估的朋友一份能直接照着操作的参照。
1. 高铁对城镇化的影响为什么不能直接拿回归说事
1.1 选线和设站的自选择问题,才是分析真正要对付的对手
很多初学者拿到一个城市面板数据,第一反应是跑这样一个回归:城镇化率等于高铁开通虚拟变量加一揽子控制变量,高铁开通了取1、没有取0,回归出来系数显著为正,就得出结论说高铁显著提升了城镇化水平。这个流程看起来很严谨,但它在第一步就违背了因果推断的基本逻辑——高铁的选线和设站不是一个随机过程。
实际中的线路规划会综合考虑城市的人口规模、经济体量、财政能力、地形条件、区域发展战略,甚至要考虑既有铁路网络的衔接效率。说白了,底子好的城市更容易争取到设站资格。而人口基数和经济总量本身就是城镇化水平的重要组成,二者高度相关。你在回归里看到的那点高铁系数,很可能只是"这座城市建设得本来就好、发展得本来就快"这个事实的镜像。这就是自选择偏差,也是高铁研究中内生性的主要来源。
比较反直觉的是,控制变量加得越多,这个问题的修正效果越有限。因为控制变量只能吸收那些你看到了、也测准了的因素。如果某个影响设站决策的因素没有进数据,比如一个城市的地方政府是否有很强的游说能力,它就会留在残差里,和核心解释变量纠缠在一起,导致估计系数偏误。要处理这个问题,不能靠继续往回归方程里填充变量,而要先改变样本的构成方式,让处理组和对照组在可观测特征上尽量处于同一水平线。
1.2 PSMDID的工作逻辑:先造可比样本,再做因果推断
PSMDID是把两种经典方法串联起来。双重差分DID的思路是拿处理组从开通前到开通后的变化,减去对照组在相同时间段的变化。第一次差分消除了城市不随时间改变的固定特征,第二次差分消除所有城市共同面对的宏观冲击和时间趋势。这样剩下能被识别出来的差异,理论上就只属于政策处理本身。
但DID成立有一个非常硬的前提:在没有处理的情况下,处理组和对照组的结果变量必须沿着平行的轨迹发展。如果两组城市在高铁开通之前就走着完全不同的增长曲线,DID结果照样失真。这时候PSM出场了。倾向得分匹配用一组可观测的城市特征去估计每个城市开通高铁的概率,然后在倾向得分相近的城市之间配对。说得直白一点:我只拿那些"看起来未来开通高铁可能性差不多"的城市去做比较,通过这种方式模拟随机分组的效果。
把两步串起来,就是先匹配出一个更干净的分析样本,再在匹配样本上跑DID。用一句话概括:PSM负责造实验室,DID负责做实验。这两步解决的是不同层面的问题,所以不是重复操作,而是互补关系。不过必须说清楚,这套组合拳主要解决的是"基于可观测变量"的选择问题;如果存在重要但不可观测的因素同时影响设站和城镇化,PSMDID的效果就会打折扣,只能靠固定效应、稳健性检验和合理的叙事来弥补。
1.3 适用边界:这套方法不能包治百病
我在实际应用前研究过大量案例,也复盘过不少失败的操作,发现最常见的误用有三种。
第一种是把PSM当成万能药。以为只要做了倾向得分匹配,内生性问题就自动消失了。实际上PSM对不可观测变量的作用非常有限。一个城市领导班子的推动力、当地的隐性社会网络、上级部门的战略意图,这些软信息很难用硬数据刻画。PSM能消除的是"看起来像"的差异,消除不了"本质上不一样"的差异。
第二种是把匹配后的样本当作全体样本的代表。匹配会损失一部分样本,尤其是倾向得分处于极端区域的样本。这意味着最终结果只对共同支撑域内的城市有效。如果你在报告中把匹配样本的均值说成"全国平均水平",会严重误导读者。我通常会在方法论部分交代清楚样本选择的边界,并报告匹配前后的样本量变化。
第三种是忽视倾向得分本身的估计误差。倾向得分不是真实值,而是第一阶段模型估计出来的值,它天然携带不确定性。匹配后样本也不再是独立随机抽样。因此,对标准误的解读要留有余地,最好的做法是同时汇报多种匹配方案和不同的聚类层级,看结论是否稳定。
2. 数据准备与变量设计
2.1 样本范围与处理组、对照组的划分
我处理的样本覆盖了某个经济区域内约两百个地级市级别的行政单元,时间跨度涵盖了高铁大规模建设之前若干年一直到近年,年度频率的平衡面板。研究期起点我特意选在高铁网络尚未密集铺开之前,这样才能给DID留下充足的"事前观察期",用来验证平行趋势。
处理组的定义要谨慎。我把"样本期内首次开通客运高铁站"作为进入处理组的标准,开通当年及之后年份处理状态取1,之前取0。这里有一个容易出问题的地方:有些城市虽然在样本期后期开通了高铁,但由于距离研究期末时间太近,政策效应可能还没来得及充分显现。把这类城市直接归入处理组,会把滞后的效应稀释掉。我采取的办法是加一组稳健性检验,把处理组限定为在研究中前期已经开通高铁的城市,去掉尾端样本看结果是否保持一致。
对照组则是样本期内始终没有开通高铁的城市。有人会问,那些后期才开通的城市能不能作为前期的对照组?可以,但要小心。严格来说,DID要求对照组始终不受到处理影响,而后期开通城市在研究期末已经受到处理,会产生污染。我会在数据说明里坦白这一点,并用事件研究法做动态检验,让每个城市在开通前期用自己的前期趋势充当"隐式对照"。
2.2 城镇化水平怎么测才靠谱
城镇化没有一个完美的单一指标,所以我同时构建了三个口径,分别代表城镇化的不同侧面。
主指标是城镇人口占常住人口的比重,也就是大家最常说的城镇化率。这个指标的政策含义最强,在各类公报里最常见,也便于和其他研究做横向比较。替换指标我用两个:一个是非农产业从业人员占比,接近于"就业城镇化"的概念;另一个是建成区面积占行政区域面积的比例,衡量的是"土地城镇化"的速度。辅助指标还包括市辖区人口密度、人均GDP这类变量,主要用来做机制分析和稳健性检验。
数据口径问题比想象中严重。地级市层面的城镇化率在不同来源之间有差异,有些来自统计公报,有些来自抽样调查,不同年份还发生过口径调整。我在清洗时遇到过一个反常序列:某城市城镇化率在一年内跳升了十多个百分点,排查后发现是行政区域调整,把周边县级市的人口并入了城区统计。这类跳变如果不处理,会直接伪装成高铁的冲击效应。对这种情况我做了截断和标注,在稳健性检验中也会单独剔除这些城市。
2.3 控制变量清单与选取逻辑
控制变量的作用有两个:一是尽可能吸收影响结果变量的可观测混杂因素,二是作为PSM第一阶段模型的核心输入。我整理的控制变量大体分成四组:
| 变量类别 | 具体变量 | 放进模型的理由 |
|---|---|---|
| 城市发展起点 | 基期GDP、人均GDP、第二产业占GDP比重 | 经济基础同时决定设站概率与城镇化速度 |
| 人口与空间 | 常住人口规模、人口密度、行政区域面积 | 人口规模是设站优先序的重要参考 |
| 财政与基础设施 | 财政支出占GDP比重、公路网密度 | 地方投入能力与既有交通条件影响规划决策 |
| 地理与区位 | 到区域中心城市的距离、是否处于交通走廊地带 | 地理禀赋不随时间变化,却显著影响线路走向 |
这里有一条很重要的原则:控制变量必须是前定变量,也就是政策冲击发生之前的取值,或者至少在逻辑上不可能是处理的结果。如果把开通高铁之后的GDP放进去,就等于把高铁对经济的影响部分吸收掉了,剩下估计出来的系数会偏低,而且还引入了"坏控制"的偏误。我在跑数据时专门对比过,用了当期GDP和用基期GDP,核心系数差别很明显,后者明显更符合研究直觉。
2.4 数据清洗中最容易忽略的细节
清洗步骤看起来很琐碎,但它决定了后面所有检验的可靠性,我甚至认为清洗花的时间应该占整个项目的一半。我的操作顺序如下:
- 剔除行政区划发生重大调整、导致数据前后不可比的样本。
- 检查城镇化率是否出现小于10%或大于100%的异常值,查找原始来源确认是否为录入错误。
- 对缺失值做线性插补,但设定上限:某个变量连续缺失超过三年就直接剔除该城市。
- 对连续变量做1%和99%分位的缩尾处理,防止个别极端城市拉动匹配结果。
- 生成处理组虚拟变量、时间虚拟变量和交互项,逐一核对状态切换是否与高铁开通时间表一致。
第5步最容易被忽略,也最容易出错。我出现过一次把"通过站"和"始发站"混为一谈的情况,导致一批城市提前进入处理状态。高铁线路经过但只设通过站的城市,与拥有始发终到功能的高铁枢纽城市,对城镇化格局的影响差别非常大。如果你研究的是广义的"开通高铁效应",可以先把两种都算作开通;但如果要研究高铁枢纽对城镇化中心的强化作用,就必须明确区分处理强度,而不是单纯用0和1表示。
3. 倾向得分匹配:从配对到平衡性验证
3.1 第一阶段logit模型的变量选择
倾向得分不是一个算出来的数字,而是通过模型估计出来的概率。第一阶段模型的因变量就是城市是否开通高铁,我用了logit模型。建立这个模型时遇到一个选择:因变量是取"城市在样本期内是否曾开通高铁"这样的一个静态状态,还是取"在某年是否开通"这样的动态状态。两者对应不同的研究假设。
如果研究采用多期处理的逻辑,更严谨的做法是针对不同开通年份分别估计匹配,例如把2010年前开通的城市单独匹配一轮,把2015年前开通的城市再单独匹配一轮。这样能避免用"早开通城市"去匹配"晚开通城市"产生的时距误差。我在主分析中采用了分层匹配的思路,把处理组按开通时间区间分成两类,分别和对照组匹配,最后再合并样本做DID检验。
第一阶段模型包括的变量,我精选了基期人均GDP、人均财政收入、常住人口规模、人口密度、第二产业占比、到区域中心城市的距离、是否处在两条干线铁路交会地带的虚拟变量。这里的关键是宁多勿漏,把所有可能同时影响设站决策和城镇化速度的可观测变量尽可能放进来。但同时也要警惕变量过多导致的共线性问题,后面我会专门说这个坑。
3.2 匹配方法选型与参数设置
匹配方法的操作思路很简单:给每个处理组城市找到倾向得分最接近的对照组城市。但实际操作里有几个参数需要反复试验。
最近邻匹配可以选择1:1或1:4。1:1配对直白、容易解释,但样本利用率低,估计方差偏大;1:4配对保留了更多对照组信息,减少方差,但可能引入离得较远的邻居。卡尺匹配则设置一个最大距离阈值,最常见的经验值是倾向得分标准差的四分之一倍。我在中等样本量下试过0.25倍标准差和0.1倍标准差,前者明显更稳定,如果卡尺太小,很多处理组样本根本找不到邻居,共同支撑域会变得很窄。核匹配相当于用倾向得分做权重,不丢弃任何样本,但容易让倾向得分差异较大的样本也进入估计,必须通过平衡表来判断值不值得。
没有绝对最优的匹配方法。正确做法是把几种方案全跑一遍,对比各自在第一阶段效果和平衡性上的表现,再决定哪组作为主结果,其余全部作为稳健性检验内容。我在最终正文里用的主方法解释了选择它的理由:共同支撑域覆盖完整,平衡性表干净,且在后续DID回归中系数最稳定。
3.3 共同支撑与平衡性检验
匹配做完,第一件事是看共同支撑。把处理组和对照组的倾向得分核密度图画出来,重叠区域越大说明两端城市越可比。我见过一种糟糕情况:处理组的倾向得分集中在0.8以上,对照组的倾向得分集中在0.2以下,两组分布几乎不相交。这种数据即使强行匹配,也只剩少数样本留在分析里,结论根本没代表性。遇到这种情况,应该回头审视第一阶段模型和样本划分,而不是硬着头皮往下跑。
平衡性检验用来量化匹配质量。它会报告每个变量在匹配前后的标准化偏差,一般标准是匹配后的标准化偏差绝对值小于10%,t检验不能拒绝"两组均值相等"的原假设。我每次都会把平衡性表完整打印出来,变量逐个看。如果有个别变量匹配后标准化偏差仍然超过10%,我会回到第一阶段模型调整设定,比如加入平方项或交互项,重新估计倾向得分再匹配。
提醒一句:平衡性检验只能证明可观测变量在两组间平衡了,无法证明不可观测变量也平衡。但是它决定了读者对你的第一印象,这张表做不干净,后面的结果再漂亮也容易被动。
4. 双重差分模型设定与基准回归
4.1 双向固定效应DID的模型形式与识别假设
在匹配样本上,我的基准模型用双向固定效应估计:
城镇化率[i,t] = α + β × (处理组[i] × 开通后[t]) + γ × X[i,t] + μ[i] + λ[t] + ε[i,t]
其中μ是城市固定效应,λ是年份固定效应,核心系数β度量的是高铁开通对城镇化率的平均处理效应,X是控制变量集合。用大白话解释:城市固定效应比较的是同一座城市开通前后的变化,年份固定效应剔除掉所有城市每年共同面对的经济环境变化。交互项系数β就是在同一座城市前后对比与同一时期城市间对比的叠加中,真正归属于高铁开通的那部分变化。
这个模型要成立,最核心的前提是平行趋势假设。理想状态下,如果没有高铁开通,处理组城市的城镇化率应该沿着对照组城市的轨迹演变。这个假设本身无法直接观测,只能通过开通前若干期的表现来间接验证。如果开通前两组城市就已经出现分化,那么这个估计量就完全不可信了。
4.2 平行趋势检验:事件研究法的具体操作
检验平行趋势我习惯用事件研究法展开。模型变成:
城镇化率[i,t] = α + Σ_k β_k × D[i,t,k] + γ × X[i,t] + μ[i] + λ[t] + ε[i,t]
D[i,t,k]表示城市i在开通第k期的虚拟变量,k取负数表示开通前k年,0表示开通当年,正数表示之后若干年。我重点关注k小于0时的系数β_k是否都不显著,并且它们的数值是否在零附近波动。如果开通前几期的系数就开始显著为正,说明两组城市在真正开通之前就已经走在不同的道路上,平行趋势假设就危险了。
有两个操作细节特别容易出错。第一,事件研究方程里需要选择一个基期,通常取开通前一期,也就是k等于负1作为参照组,所有系数都是相对这个基期来解读的。第二,标准误必须往城市层级聚类。同一个城市的城镇化率在不同年份之间存在高度相关,如果不聚类,标准误会严重偏小,显著性检验的假阳性率会被放大。我曾经不做聚类时一大堆系数显著,聚类之后安静了一大半,这才是正常状态。
4.3 基准回归结果的解读姿势
模型跑出来之后,我首先看核心系数的符号、量级和显著性。在我的数据里,β一般显著为正,数值落在1到3个百分点之间,这个区间对我熟悉的地级市样本来说是合理的。如果某一次回归β超过10个百分点,我不会高兴,反而会立刻回去检查数据,因为这种量级往往意味着样本选择或者口径出了问题,而不是高铁真的有这么神奇。
其次我会看经济显著性,而不只是统计显著性。高铁开通让城镇化率提高了2个百分点,这个发现本身意味着什么?如果某地基期城镇化率50%,那么高铁开通八年后,它可能提升到接近53%。放在百万级常住人口的城市里,这就意味着多吸纳了数十万城镇人口,这个数量级才值得写进政策含义里。
最后我会顺手检查控制变量的表现。如果有人口密度的系数异常为负,或者财政收入占比的系数大得离谱,我都会追回去排查共线性或者因果反向问题。控制变量不是陪衬,它们正常与否往往比核心系数更能暴露模型设定的隐患。
5. 异质性与机制检验
5.1 城市规模与地理区位的异质性
汇报完平均效应,读者一定会追问:到底是所有城市都因为高铁而加速城镇化,还是只有部分城市享受到了红利?我按基期城市人口规模的中位数把样本分成大城市组和小城市组,分别回归之后,发现差异很明显。大城市的城镇化率提升效应更显著,这和高铁对资源要素的向心力有关。小城市反而可能因为高铁压缩了时空距离,加速了本地劳动力向更大的区域中心流动,表现出极化效应大于扩散效应。
地理区位的分组同样有故事。东部地区由于市场机制更成熟、高铁网络更密集,效应的释放更充分;中部地区处在中间状态;西部地区基数低,单看系数会很亮眼,但很大部分是基数效应的体现,不能直接解读成高铁的绝对贡献。
做异质性分析不是把样本切碎了挨个跑一遍就完事,而是要讲一个机制故事。我当时的叙事角度是:高铁对城镇化的边际贡献,取决于城市能否把时空压缩带来的红利转化成产业布局和就业吸引力。核心枢纽城市明显占优,普通站点城市如果产业结构单一,短期内甚至可能面临资源被周边大城市吸走的压力。
5.2 三条影响机制:人口、产业与土地
城镇化是一个综合性过程,高铁不会凭空把城镇化率改高,它通过改变人的流动成本、企业的选址成本和土地的价值预期来发挥作用。机制检验上我跑了三条路。
第一条是人口集聚机制。我以市辖区人口增长率作为因变量,看高铁开通后城区人口是否显著增加。高铁强化了城市中心的通勤和商务功能,促使就业和居住空间向城市核心集中,这应该会带动人口城镇化。第二条是产业升级机制。以非农产业增加值占GDP比重或第三产业占比作为因变量,观察高铁是否推动了经济结构向城市型经济转变。高铁降低商务旅行和知识流动成本,对服务业和总部经济的促进作用最直接。第三条是土地扩张机制。以建成区面积增长率作为因变量,看土地城镇化是否快于人口城镇化,以便识别出"土地快、人慢"的失衡风险。
三条机制里最有意思的发现是土地城镇化对高铁的反应明显快于人口城镇化。站点周边的土地增值是预期驱动的,市场价格和建设规划会迅速反应,但人的实质性集聚往往滞后两到三年。如果你只用政策后一两年的截面数据来判断高铁效果,很容易把土地城镇化误当成城镇化的全部,得出过度乐观的结论。
5.3 溢出效应与对照组污染问题
高铁研究里有一个隐藏很深的陷阱:溢出效应。一座城市虽然没有开通高铁,但如果它紧邻或者处于一条高铁经济带上,也会因为区域联动、产业转移或者通勤便利而受益。这样的城市作为对照组出现时,它的城镇化走势里已经掺杂了高铁的间接效应,DID会在无形中低估真实影响。
我的处理方式是做两个额外检验:一是剔除主要处理城市周边一定半径内的对照组样本,重新估计核心系数;二是把"是否位于高铁沿线走廊"作为额外解释变量或分组变量纳入分析。如果剔除邻近样本后,主结果的变化幅度不大,说明基准结论对溢出污染的敏感性不高,我也就可以在论文里比较坦然地汇报基准结果了。如果变化很大,那说明这个研究单元的边界本身就有问题,建议把分析单元从地级市升级到都市圈层次去重新设计。
6. 稳健性检验与安慰剂检验的完整拼图
6.1 更换匹配方法与替换被解释变量
稳健性检验的第一层是方法敏感性。我在正文中以1:4最近邻匹配作为主结果,稳健性检验里则报告1:1最近邻、卡尺匹配和核匹配的结果。几种方法得到的核心系数如果落在相近区间,说明结论不是某个特定参数的偶然产物。
第二层是变量敏感性。我把主指标换成非农产业从业人员占比、再换成建成区面积占比,重新跑完整流程。如果换口径之后结论方向改变或者显著性消失,说明基准结果很可能被特殊指标驱动,而不是一个稳定的政策效应。幸运的是,在人口城镇化和土地城镇化两个口径下,我的核心结论方向一致,只是土地城镇化的响应幅度更大、时序更靠前。
6.2 剔除特殊样本与时窗敏感性
特殊样本的剔除不能闭着眼睛来,每一步都要有逻辑。我通常从这几个维度入手:研究期内行政级别发生重大调整的城市、基期城镇化率极端高或极端低的城市、距离区域中心城市过近的城市、以及数据口径发生过重大跳变的城市。每次剔除后重新跑完整模型,记录核心系数的变化轨迹。
时窗敏感性也值得做。高铁开通是一个长期过程,效应可能出现滞后。我把时间窗口从开通后三年拉长到开通后七年,观察系数是否随窗口拉长而增大。如果系数在短窗口内不显著而长窗口内显著,说明高铁对城镇化的影响更像一条缓慢累积的曲线,而不是一个立刻兑现的脉冲。这个信息对政策评估非常重要,直接决定了"高铁是否值得修"的答案时点。
6.3 安慰剂检验:随机化处理时点的蒙特卡洛模拟
安慰剂检验的逻辑很简单:把高铁开通时间随机提前若干年,或者把处理组随机换成那些从未开通高铁的城市,再重新跑DID。如果高铁效应是真实的,那么这些"伪造的处理"应该不会产生显著的系数;如果大量随机模拟得到的系数分布明显偏离零,说明基准结果可能来自某种系统性的共同趋势,而不是真正的处理效应。
我在实际操作中做了几百次蒙特卡洛模拟,每次随机变更处理时点,记录β估计和对应的t统计量。之后把所有模拟得到的系数画成直方图,把基准回归得到的真实估计值用一条竖线标注在图上。如果真实值落在随机分布的极右端之外,这张图本身就很有说服力。这是我在整个实证流程中最喜欢的诊断工具,因为它以一种非常直观的方式回应了"结果会不会是碰巧"这个质疑。
7. 实测中的坑与经验
7.1 第一阶段模型贪多导致匹配瘫痪
第一阶段模型并不是变量放得越多越好。我第一次跑的时候把能想到的几十个变量全塞进logit模型,结果倾向得分普遍趋向0或1,共同支撑域几乎消失。原因很直接:样本量有限,而变量过多会过度压缩概率的变异性。最后剩下能匹配上的样本寥寥无几,之前的努力全部白费。
正确的做法是精选与设站决策强相关的变量,如果样本量不够大,宁可放弃一部分控制变量,也要保住共同支撑区间。还有一个小技巧:第一阶段模型使用基期变量而不是全时期动态变量来预测,既避免重复度量,也防止未来信息的泄露。基期的设定通常取高铁大规模建设开始之前的那一年。
7.2 匹配后的回归到底带不带权重
这是实操中同行问得最多的问题。如果你的匹配是1:1最近邻,匹配后样本天然等权,直接回归没什么问题。如果用的是核匹配或者倾向得分加权,就必须考虑权重取值对结果的影响。我的经验是先跑一次不加权的DID,再用倾向得分倒数的权重跑一次加权DID,两个结果放在一起对比。如果核心系数差异不大,说明结果对权重设定不敏感,主结果就稳了。反过来,如果系数差异明显,那就要回去检查匹配质量和样本构成,而不是简单靠加权重来"修正"。
权重不是用得越多越好。加权同样会引入新的方差,而且会放大那些倾向得分极低的对照城市的异常信息。我见过有人用复杂加权方案跑出来一个漂亮结果,换一套权重就崩掉,这种结果非常脆弱,不值得写进论文。
7.3 多期DID的归并黑洞
高铁开通不是在某一年统一发生的,不同城市的处理时点差了好几年。这种交错处理放进双向固定效应模型,β估计量实际上是由不同组间比较加权组合而成。近些年计量学界对这个现象已经有充分讨论:处理组之间互为对照、处理效应随时间变化时,可能出现负权重,导致估计量偏误甚至符号翻转。
我没有回避这个问题的办法,而是分三步应对。第一步先用事件研究图检查动态效应形态,看系数是否随时间呈现单调变化。第二步如果存在明显的时间变动趋势,就考虑用更新的异质性稳健估计量做补充检验。第三步在论文里如实报告交错处理带来的复杂性,不隐藏任何模型设定上的瑕疵。学术写作的关键从来不是把结果做漂亮,而是让读者能判断结果可不可信。多期DID这个问题上,坦诚本身就是一种稳健性。
7.4 汇报结果时的人设与底线
写论文和写报告时的态度不同。在正式学术汇报里,我把PSMDID定位成"缓解可观测选择偏差的一种识别策略",而不是宣称自己获得了完美的因果识别。因为高铁选址涉及大量不可观测的政治、历史和地缘因素,单靠匹配加双重差分无法斩钉截铁地证明因果。把方法的局限写清楚,反而能让核心结果显得更客观。
还有一条经验特别想说:不要只放一张基准回归表就下结论。高铁对城镇化的影响至少应该分成短期冲击和长期累积两个阶段来看。开通当年系数通常很小甚至不显著,开通五年后才逐步显现。如果研究窗口太短,很容易得出"高铁无显著影响"的错误结论。反过来,如果只看超长期,又会把很多并发政策的效果混入其中。一个合理的窗口选择,加上对窗口敏感性的检验,才是这项研究真正的说服力所在。
最后再分享一点个人体会。做这类基础设施政策评估,最容易犯的错是过度依赖模型而忽略了对数据本身的拆解。在写任何一行回归命令之前,我会先把城市分年份的属性数据画成轨迹图,把开通和未开通城市的城镇化进程放在一起看。这一步看起来朴素至极,但比任何高端计量方法都更能帮助我判断平行趋势是否可信、样本划分是否合理。PSMDID说到底只是工具,真正决定研究质量的,是你对数据背后那个社会过程的把握程度。