会计实证步骤

1.数据处理

  • 连续变量:缩尾处理(1%,99%) 
    from scipy.stats.mstats import winsorize
    win_ESG = winsorize(ESG, limits=[0.01, 0.01])
  • 虚拟变量:如处理年份2012-2020
    nominal_year = pd.get_dummies(year)
    nominal_year.drop(columns=[2020], axis=1, inplace=True)
    nominal_year.columns = ['2012', '2013', '2014', '2015', '2016', '2017', '2018', '2019']
  • 描述性统计
    # 打乱顺序
    shuffle_data = data.sample(frac=1)
    print(shuffle_data.describe())
  • 相关性分析
    # 皮尔逊相关性分析
    data_corr = data.corr(method='pearson')
    print(data_corr)
    
    # 显著性检验
    for i in range(0, len(data)):
        for j in range(0, i + 1):
            print('{}和{}的pearson系数和p值为:{}'.format(data.columns[i], data.columns[j], scipy.stats.pearsonr(data.iloc[:, i], data.iloc[:, j])))
            j += 1
        i += 1

2.多元回归分析

  • 定义OLS模型
    import statsmodels.formula.api as sm
    
    # 因变量 ~ 自变量 + 控制变量
    formulation = 'ESG_R ~ INS+Size+Age+Lev+Growth+ROA+PE+Radio+Balance+DR+MKTB+SGROW'
    
    # 控制年份   
    for i in range(len(list(nominal_year.columns))):
        formulation += '+Q("{}")'.format(nominal_year.columns[i])
    # 控制行业
    nominal_industry = pd.get_dummies(industry)
    nominal_industry.drop(columns=[nominal_industry.columns[-1]], axis=1, inplace=True)
    for i in range(len(list(nominal_industry.columns))):
        formulation += '+Q("{}")'.format(nominal_industry.columns[i])
    
    # OLS
    lm = sm.ols(formulation, data=data)
    model = lm.fit()
    print(model.summary())

3.稳健性检验

  • 替换因变量
  • 固定效应模型
  • 内生性检验:滞后因变量/PSM/Heckman两阶段法/工具变量法
    # PSM
    待补充
    
    # Heckman两阶段法
    model = ‘自变量 ~ 工具变量 + 控制变量’
    # 第一步
    probit_model = sm.probit(model, data)
    print(result.summary())
    result = probit_model.fit()
    coef = result.params
    # coef 为按照model中工具变量-控制变量的顺序对应的系数
    # 计算imr=coef[0]+coef[1]*工具变量+coef[2]*控制变量+...
    略
    imr = pd.Dataframe(imr)
    imr.columns = ['IMR']
    data = pd.concat(objs=[data, imr], axis='columns')
    # 第二步
    model = ‘因变量 ~ 自变量+ IMR + 控制变量’
    

需要注意的是,在Heckman中,如果自变量是连续变量而非0-1变量,在进行第一步probit模型时,需要额外进行转换,例如可以根据中位数以上/以下转换为1/0。

4.中介机制研究

第一步:中介机制 ~ 自变量 + 控制变量

第二步:因变量 ~ 中介机制 + 自变量 + 控制变量

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值