包含特殊类变量的PSM序列匹配

这篇博客介绍了在大规模数据下如何使用Python进行PSM(Propensity Score Matching)序列匹配。首先逐期计算倾向性得分,然后计算每个对照组与处理组倾向性得分的平方差,并结合特殊类变量进行匹配。通过选取平方差之和最小的对照组作为最匹配的组,最终获得匹配后的完整对照组面板数据。内容参考了连玉君老师和谢申祥老师的理论,并应用于1-8周的面板数据,其中1-4周为政策实施前,5-8周为政策实施后。
摘要由CSDN通过智能技术生成

此帖仅作自我回顾用,如有错误,欢迎批评指正。

       最近在做关于psm-did的数据处理,但一直苦于不知道如何处理而搜索了大量的帖子。最终发现不管是混合匹配还是逐期匹配都会存在一定的问题,所以参照了连玉君老师的帖子及统计研究中谢申祥老师在2021年发表的《传统PSM-DID模型的改进与应用》对数据做了序列匹配。但由于本人并没有搜索到相关的stata命令和操作,所以自己用python写了一套代码,按照我自己的逻辑来说应该是可用的,当然不保证一定对,仅作参考。

       初始数据是包含处理组和用作匹配的所有对照组的面板数据,时间周期为1-8周,其中1-4周为政策实行前,5-8周为政策实行后。所包含的特殊类变量命名为code,时间变量命名为time。

第一步,由于我的数据量比较大,所以这里选择逐期计算倾向性得分后再合并

import csv
import random
import psmatching.match as psm
import pytest
import pandas as pd
import numpy as np
from psmatching.utilities import *
import scipy
import statsmodels.api as sm

path = "D:\论文和数据\正常vs恶意\正常加恶意.csv"
#model由干预项和其他类别标签组成,形式为"干预项~类别特征+列别特征。。
model = "treat ~  sex + type + city + regdays + quantity + marea + mprice + distance + scall + circlehot + pric
PSM是处理因果推断中经常使用的一种方法,它能够通过匹配处理组和对照组来控制影响因素,从而降低因素混淆的影响,从而更准确地评估处理变量对结果变量的影响。 常见的PSM匹配方式有以下几种: 一、基于距离或分数匹配(Distance-based matching或Score matching) 这是常见的一种PSM方法,通过计算处理组和对照组的距离或分数差异,并选取最相近的一组对照组作为处理组的匹配组,从而实现匹配。Stata代码如下: psmatch2 var1 var2 var3, outcome(outcome_name) logit trate(treatment_variable) kernel kwidth(bandwidth) caliper(caliper_threshold) mm 其中,var1、var2、var3为可能影响结果变量的协变量(Covariate);outcome_name为结果变量的名称;treatment_variable为处理变量的名称;kernel和kwidth描述匹配方法的核函数型和参数;caliper_threshold用来设定匹配组距离的最大阈值,即离群值筛选。 二、邻居匹配(Nearest Neighbor Matching) 该方法通常是选取每个处理组的最近邻对照组作为其匹配组,但有时为了确保完全匹配,需要使用多个对照组,这种情况下称作Coarsened Exact Matching(CEM)。Stata代码如下: teffects nnmatch (outcome_name) (treatment_variable) (covariate_list), neighbor(number_of_neighbors) coarsened(0/1) 其中,covariate_list为候选匹配变量的名称列表;neighor用于设定每个处理组的最近邻个数;coarsened用来决定是否允许使用多个对照组实现完全匹配。 三、倾向得分匹配(Propensity Score Matching) 该方法通过将倾向得分相近的个体作为匹配组,从而实现处理组和对照组之间的匹配。Stata代码如下: psmatch2 var1 var2 var3, outcome(outcome_name) logit trate(treatment_variable) pscore(pscore_variable) caliper(caliper_threshold) mm 其中,pscore_variable为倾向得分变量的名称,caliper_threshold和mm的含义同距离匹配方法。 综上所述,不同的匹配方法适用于不同的实验设计和研究领域,但PSM方法作为一种处理混杂因素的有效方法,能够在许多情况下提高因果推断的准确度和可信度。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值