负责任的银行贷款与上市公司企业ESG表现验证数据2013-2021

        
    global controls Size Leverage CashFlow Growth Age ROA BookToMarketRatio Top Boardsize IndDirectorRatio ISHoldBankShares LnLoanValue SOE
    global controls2 Size Leverage CashFlow Growth Age ROA BookToMarketRatio Top Boardsize IndDirectorRatio ISHoldBankShares SOE
    
    
    
        
*---附录附表1
    use Main1.dta,replace
    sum ESGrate ESG_adj BankESGrate $controls

*---附录附图1
    use Main1.dta,replace
     *Panel A
    binscatter ESGrate BankESGrate, absorb(BankFirm) msymbols(O T) ///
               title("Panel A: ESG") ///
               xtitle(上市银行ESG评分) ytitle(上市公司ESG评分) ///
               fxsize(60) ///
               xscale(range (4  7)) xlabel(4 (1) 7) ///
               legend(lab(1 ESG评分) lab(2 拟合线))
     *Panel B
    binscatter ESG_adj BankESGrate, absorb(BankFirm) msymbols(O T) ///
               title("Panel B: ESG_adj") ///
               xtitle(上市银行ESG评分) ytitle(上市公司ESG评分(经行业中位数调整)) ///
               fxsize(60) ///
               xscale(range (4  7)) xlabel(4 (1) 7) ///
               legend(lab(1 ESG评分) lab(2 拟合线))
    
*---附录附表2
    use Main1.dta,replace
    *Column 1
    reghdfe ESGrate2 BankESGrate2 $controls,absorb(BankFirm year) cluster(stkcd)
    *Column 2
    reghdfe ESG_adj2 BankESGrate2 $controls,absorb(BankFirm year) cluster(stkcd)
    *Column 3
    reghdfe ESG_c BankESG_c $controls,absorb(BankFirm year) cluster(stkcd)
    *Column 4
    reghdfe ESGc_adj BankESG_c $controls,absorb(BankFirm year) cluster(stkcd)
    *Column 5
    reghdfe ESGrate BloombergBankESG $controls,absorb(BankFirm year) cluster(stkcd)
    *Column 6
    reghdfe ESG_adj BloombergBankESG $controls,absorb(BankFirm year) cluster(stkcd)
    *Column 7
    xtset BankFirm year
    xtpoisson ESGrate BankESGrate $controls i.year,fe r

*---附录附表3
    use Main1.dta,replace
    *Column 1
    reghdfe ESGrate BankESGrate $controls,absorb(BankFirm CityYear) cluster(stkcd)
    *Column 2
    reghdfe ESG_adj BankESGrate $controls,absorb(BankFirm CityYear) cluster(stkcd)
    *Column 3
    reghdfe ESGrate BankESGrate $controls,absorb(BankFirm IndYear) cluster(stkcd)
    *Column 4
    reghdfe ESG_adj BankESGrate $controls,absorb(BankFirm IndYear) cluster(stkcd)
    *Column 5
    reghdfe ESGrate BankESGrate $controls,absorb(BankFirm CityInd year) cluster(stkcd)
    *Column 6
    reghdfe ESG_adj BankESGrate $controls,absorb(BankFirm CityInd year) cluster(stkcd)

*---附录附表4
    use Main1.dta,replace
    *Column 1
    reghdfe ESGrate_1 BankESGrate $controls,absorb(BankFirm year) cluster(stkcd)
    *Column 2
    reghdfe ESG_adj_1 BankESGrate $controls,absorb(BankFirm year) cluster(stkcd)

*---附录附表5
    use Main1.dta,replace
    *Column 1
    reghdfe ESGrate BankESGrate LogESGrate $controls,absorb(BankFirm year) cluster(stkcd)
    *Column 2
    reghdfe ESG_adj BankESGrate LogESG_adj $controls,absorb(BankFirm year) cluster(stkcd)
    *Column 3
    reghdfe ESG_grth BankESGrate LogESGrate $controls,absorb(BankFirm year) cluster(stkcd)
    *Column 4
    reghdfe ESGadj_grth BankESGrate LogESG_adj $controls,absorb(BankFirm year) cluster(stkcd)
    
 

负责任的银行贷款与上市公司企业ESG表现验证数据2013-2021


提供验证数据、计算代码、参考文献
数据来源:基于上市公司公告、年报数据整理计算
数据期间:2010-2020
数据范围:沪深上市公司A股
主要指标:

 

稳健性检验

1. 替换变量的度量方式

本文检验在不同的ESG测度方法和评价体系下,基本结果是否依然保持稳健。首先,本文在基准回归中使用年末数值衡量上市公司和上市银行的ESG表现,而华证ESG指标采用季度定期评价的方式进行数据调整,仅使用年末数值可能会忽略上市公司ESG评分的年内变化。因此,在附表2中第(1)至(2)列中,本文使用当年ESG的季度均值衡量上市公司与上市银行的ESG表现。其次,本文考察对ESG评分不同的赋值方法是否会改变基准结果的稳健性。在附表2中第(3)至(4)列中,借鉴谢红军和吕雪(2022),本文改变ESG评级的赋值方式,将等级C-CCC、B-BBB和A-AAA分别赋值为1、2、3。最后,考虑到ESG建设有助于构建负责任的社会形象,上市公司有夸大ESG表现以赢得社会公众信任的动机,其可能会误导评级机构给出不同评级(方明月和胡丁,2023)。为避免ESG披露质量而导致评级机构对上市公司ESG表现的误判,本文在附表2中第(6)至(7)列使用Bloomberg的ESG评级数据衡量上市银行的ESG水平。附表2的回归结果显示,在不同赋值方法和不同测度下,本文关注的核心解释变量的回归系数依然显著为正。

    2. 替换回归方法

考虑回归方法的敏感性。本文在基准回归中,使用控制住年份和个体固定效应的简单最小二乘法进行回归。考虑到上市公司ESG评分为取值为1~9的离散非负整数,属于计数变量,为避免其分布右偏可能带来的估计偏误,本文进一步使用计数模型进行稳健性检验。附表2第(7)列中使用Poisson回归的结果表明将OLS回归方法替换成计数模型并不会改变本文的基本结论。

3. 遗漏变量检验

在基准回归结果中,本文控制了年度和企业固定效应,这有助于解决银企层面不随时间变化的因素以及年度不变的遗漏变量问题,但随着时间的推移,不同城市、不同行业在时间序列上的发展可能会产生差异,例如碳排放权交易制度和排污权交易制度在一些地区的试点可能导致这些城市中的上市公司面临的环保压力提高、2018年推出的环境保护税导致重污染行业承受更大的环境规制成本、以及针对部分地区部分行业的政策冲击[1],从而产生遗漏变量问题。因此,本文在附表3第(12)列中控制了上市公司所在城市-年度联合固定效应,以此解决城市层面随时间变化的遗漏变量问题;在附表3第(34)列控制了行业-年度联合固定效应,以此解决行业层面随时间变化的遗漏变量问题[2];在附表3第(56)列控制了城市-行业固定效应,以此解决城市-行业层面不随时间变化的遗漏变量问题。回归结果显示,纳入更多交互项固定效应后,的回归系数的依然显著为正,这说明在控制了地区、行业层面的时变因素后,本文的基本结论依然稳健。

4. 更长期的上市公司ESG表现

    考虑到上市公司ESG评分的改善作用可能存在较长的滞后性,本文进一步考察更长期的上市公司ESG表现。具体而言,本文将下一期的上市公司ESG表现作为被解释变量,其中,为下一期上市公司的ESG评分,则为下一期经行业中位数调整的上市公司ESG评分。4的回归结果显示,在考虑了上市公司ESG表现可能的滞后性后,回归系数依然显著为正,本文的基本结果依然稳健。

 

负责任的银行贷款与上市公司企业ESG表现验证数据2013-2021_第1张图片



 

负责任的银行贷款与上市公司企业ESG表现验证数据2013-2021_第2张图片



 

负责任的银行贷款与上市公司企业ESG表现验证数据2013-2021_第3张图片

程序代码:

    
    
    global controls Size Leverage CashFlow Growth Age ROA BookToMarketRatio Top Boardsize IndDirectorRatio ISHoldBankShares LnLoanValue SOE
    global controls2 Size Leverage CashFlow Growth Age ROA BookToMarketRatio Top Boardsize IndDirectorRatio ISHoldBankShares SOE

        
*---正文表1
    use Main1.dta,replace
    *Column 1
    reghdfe ESGrate BankESGrate,absorb(BankFirm year) cluster(stkcd)
    *Column 2
    reghdfe ESG_adj BankESGrate,absorb(BankFirm year) cluster(stkcd)
    *Column 3
    reghdfe ESGrate BankESGrate $controls,absorb(BankFirm year) cluster(stkcd)
    *Column 4
    reghdfe ESG_adj BankESGrate $controls,absorb(BankFirm year) cluster(stkcd)
    
*---正文表2
    use Main1.dta,replace
    *Column 1
    reghdfe ESGrate c.BankESGrate##c.ESGgap $controls,absorb(BankFirm year) cluster(stkcd)
    *Column 2
    reghdfe ESG_adj c.BankESGrate##c.ESGgap $controls,absorb(BankFirm year) cluster(stkcd)
        
*---正文表3
    use Main1.dta,replace
    *Column 1
    reghdfe BankESGrate IV ESGFundNum ESGRatio $controls,absorb(BankFirm year) cluster(stkcd)
    *Column 2
    ivreghdfe ESGrate (BankESGrate = IV) ESGFundNum ESGRatio $controls,absorb(BankFirm year) cluster(stkcd) first
    *Column 3
    ivreghdfe ESG_adj (BankESGrate = IV) ESGFundNum ESGRatio $controls,absorb(BankFirm year) cluster(stkcd) first
      
*---正文表4
    use Main2.dta,replace    
    *Column 1
    xtlogit Continue1 LogESGrate $controls2 i.year,fe 
    *Column 2
    xtlogit Continue2 LogESGrate $controls2 i.year,fe 
    *Column 3
    xtlogit Continue3 LogESGrate $controls2 i.year,fe 
    *Column 4
    xtlogit Continue1 LogESG_adj $controls2 i.year,fe 
    *Column 5
    xtlogit Continue2 LogESG_adj $controls2 i.year,fe 
    *Column 6
    xtlogit Continue3 LogESG_adj $controls2 i.year,fe 
    
*---正文表5
    use Main1.dta,replace    
    *Column 1
    reghdfe ESGrate c.BankESGrate##c.KZ $controls,absorb(BankFirm year) cluster(stkcd)
    *Column 2
    reghdfe ESG_adj c.BankESGrate##c.KZ $controls,absorb(BankFirm year) cluster(stkcd)
    *Column 3
    reghdfe ESGrate c.BankESGrate##c.WW $controls,absorb(BankFirm year) cluster(stkcd)
    *Column 4
    reghdfe ESG_adj c.BankESGrate##c.WW $controls,absorb(BankFirm year) cluster(stkcd)
    *Column 5
    reghdfe ESGrate c.BankESGrate##c.LnDist5km $controls,absorb(BankFirm year) cluster(stkcd)
    *Column 6
    reghdfe ESG_adj c.BankESGrate##c.LnDist5km $controls,absorb(BankFirm year) cluster(stkcd)
    *Column 7
    reghdfe ESGrate c.BankESGrate##c.LnDist10km $controls,absorb(BankFirm year) cluster(stkcd)
    *Column 8
    reghdfe ESG_adj c.BankESGrate##c.LnDist10km $controls,absorb(BankFirm year) cluster(stkcd)

*---正文表6
    use Main1.dta,replace    
    *Column 1
    reghdfe Disclose BankESGrate $controls,absorb(BankFirm year) cluster(stkcd)
    *Column 2
    reghdfe Disclose_adj BankESGrate $controls,absorb(BankFirm year) cluster(stkcd)
    *Column 3
    use Main3.dta,replace    
    reghdfe ESGrate Disclose $controls2,absorb(stkcd year) cluster(stkcd)
    *Column 4
    reghdfe ESG_adj Disclose $controls2,absorb(stkcd year) cluster(stkcd)
    *Column 5
    reghdfe ESGrate Disclose_adj $controls2,absorb(stkcd year) cluster(stkcd)
    *Column 6
    reghdfe ESG_adj Disclose_adj $controls2,absorb(stkcd year) cluster(stkcd)
    
*---正文表7
    use Main1.dta,replace    
    *Column 1
    reghdfe ESGrate c.BankESGrate#c.(State Share Local) $controls,absorb(BankFirm year) cluster(stkcd)
    *Column 2
    reghdfe ESG_adj c.BankESGrate#c.(State Share Local) $controls,absorb(BankFirm year) cluster(stkcd)

*---正文表8
    use Main1.dta,replace    
    *Column 1
    reghdfe ESGrate c.BankESGrate##c.SameCity $controls,absorb(BankFirm year) cluster(stkcd)
    *Column 2
    reghdfe ESG_adj c.BankESGrate##c.SameCity $controls,absorb(BankFirm year) cluster(stkcd)
    *Column 3
    reghdfe ESGrate c.BankESGrate##c.SameProv $controls,absorb(BankFirm year) cluster(stkcd)
    *Column 4
    reghdfe ESG_adj c.BankESGrate##c.SameProv $controls,absorb(BankFirm year) cluster(stkcd)
    *Column 5
    reghdfe ESGrate c.BankESGrate##c.SOE $controls,absorb(BankFirm year) cluster(stkcd)
    *Column 6
    reghdfe ESG_adj c.BankESGrate##c.SOE $controls,absorb(BankFirm year) cluster(stkcd)
    
*---正文表9
    use Main1.dta,replace    
    *Column 1
    reghdfe ESG_E BankESG_E $controls,absorb(BankFirm year) cluster(stkcd)
    *Column 2
    reghdfe ESG_S BankESG_S $controls,absorb(BankFirm year) cluster(stkcd)
    *Column 3
    reghdfe ESG_G BankESG_G $controls,absorb(BankFirm year) cluster(stkcd)
 

        
    global controls Size Leverage CashFlow Growth Age ROA BookToMarketRatio Top Boardsize IndDirectorRatio ISHoldBankShares LnLoanValue SOE
    global controls2 Size Leverage CashFlow Growth Age ROA BookToMarketRatio Top Boardsize IndDirectorRatio ISHoldBankShares SOE
    
    
    
        
*---附录附表1
    use Main1.dta,replace
    sum ESGrate ESG_adj BankESGrate $controls

*---附录附图1
    use Main1.dta,replace
     *Panel A
    binscatter ESGrate BankESGrate, absorb(BankFirm) msymbols(O T) ///
               title("Panel A: ESG") ///
               xtitle(上市银行ESG评分) ytitle(上市公司ESG评分) ///
               fxsize(60) ///
               xscale(range (4  7)) xlabel(4 (1) 7) ///
               legend(lab(1 ESG评分) lab(2 拟合线))
     *Panel B
    binscatter ESG_adj BankESGrate, absorb(BankFirm) msymbols(O T) ///
               title("Panel B: ESG_adj") ///
               xtitle(上市银行ESG评分) ytitle(上市公司ESG评分(经行业中位数调整)) ///
               fxsize(60) ///
               xscale(range (4  7)) xlabel(4 (1) 7) ///
               legend(lab(1 ESG评分) lab(2 拟合线))
    
*---附录附表2
    use Main1.dta,replace
    *Column 1
    reghdfe ESGrate2 BankESGrate2 $controls,absorb(BankFirm year) cluster(stkcd)
    *Column 2
    reghdfe ESG_adj2 BankESGrate2 $controls,absorb(BankFirm year) cluster(stkcd)
    *Column 3
    reghdfe ESG_c BankESG_c $controls,absorb(BankFirm year) cluster(stkcd)
    *Column 4
    reghdfe ESGc_adj BankESG_c $controls,absorb(BankFirm year) cluster(stkcd)
    *Column 5
    reghdfe ESGrate BloombergBankESG $controls,absorb(BankFirm year) cluster(stkcd)
    *Column 6
    reghdfe ESG_adj BloombergBankESG $controls,absorb(BankFirm year) cluster(stkcd)
    *Column 7
    xtset BankFirm year
    xtpoisson ESGrate BankESGrate $controls i.year,fe r

*---附录附表3
    use Main1.dta,replace
    *Column 1
    reghdfe ESGrate BankESGrate $controls,absorb(BankFirm CityYear) cluster(stkcd)
    *Column 2
    reghdfe ESG_adj BankESGrate $controls,absorb(BankFirm CityYear) cluster(stkcd)
    *Column 3
    reghdfe ESGrate BankESGrate $controls,absorb(BankFirm IndYear) cluster(stkcd)
    *Column 4
    reghdfe ESG_adj BankESGrate $controls,absorb(BankFirm IndYear) cluster(stkcd)
    *Column 5
    reghdfe ESGrate BankESGrate $controls,absorb(BankFirm CityInd year) cluster(stkcd)
    *Column 6
    reghdfe ESG_adj BankESGrate $controls,absorb(BankFirm CityInd year) cluster(stkcd)

*---附录附表4
    use Main1.dta,replace
    *Column 1
    reghdfe ESGrate_1 BankESGrate $controls,absorb(BankFirm year) cluster(stkcd)
    *Column 2
    reghdfe ESG_adj_1 BankESGrate $controls,absorb(BankFirm year) cluster(stkcd)

*---附录附表5
    use Main1.dta,replace
    *Column 1
    reghdfe ESGrate BankESGrate LogESGrate $controls,absorb(BankFirm year) cluster(stkcd)
    *Column 2
    reghdfe ESG_adj BankESGrate LogESG_adj $controls,absorb(BankFirm year) cluster(stkcd)
    *Column 3
    reghdfe ESG_grth BankESGrate LogESGrate $controls,absorb(BankFirm year) cluster(stkcd)
    *Column 4
    reghdfe ESGadj_grth BankESGrate LogESG_adj $controls,absorb(BankFirm year) cluster(stkcd)
    
 


提供验证数据、计算代码、参考文献
数据来源:基于上市公司公告、年报数据整理计算
数据期间:2010-2020
数据范围:沪深上市公司A股
主要指标:

稳健性检验

1. 替换变量的度量方式

本文检验在不同的ESG测度方法和评价体系下,基本结果是否依然保持稳健。首先,本文在基准回归中使用年末数值衡量上市公司和上市银行的ESG表现,而华证ESG指标采用季度定期评价的方式进行数据调整,仅使用年末数值可能会忽略上市公司ESG评分的年内变化。因此,在附表2中第(1)至(2)列中,本文使用当年ESG的季度均值衡量上市公司与上市银行的ESG表现。其次,本文考察对ESG评分不同的赋值方法是否会改变基准结果的稳健性。在附表2中第(3)至(4)列中,借鉴谢红军和吕雪(2022),本文改变ESG评级的赋值方式,将等级C-CCC、B-BBB和A-AAA分别赋值为1、2、3。最后,考虑到ESG建设有助于构建负责任的社会形象,上市公司有夸大ESG表现以赢得社会公众信任的动机,其可能会误导评级机构给出不同评级(方明月和胡丁,2023)。为避免ESG披露质量而导致评级机构对上市公司ESG表现的误判,本文在附表2中第(6)至(7)列使用Bloomberg的ESG评级数据衡量上市银行的ESG水平。附表2的回归结果显示,在不同赋值方法和不同测度下,本文关注的核心解释变量的回归系数依然显著为正。

    2. 替换回归方法

考虑回归方法的敏感性。本文在基准回归中,使用控制住年份和个体固定效应的简单最小二乘法进行回归。考虑到上市公司ESG评分为取值为1~9的离散非负整数,属于计数变量,为避免其分布右偏可能带来的估计偏误,本文进一步使用计数模型进行稳健性检验。附表2第(7)列中使用Poisson回归的结果表明将OLS回归方法替换成计数模型并不会改变本文的基本结论。

3. 遗漏变量检验

在基准回归结果中,本文控制了年度和企业固定效应,这有助于解决银企层面不随时间变化的因素以及年度不变的遗漏变量问题,但随着时间的推移,不同城市、不同行业在时间序列上的发展可能会产生差异,例如碳排放权交易制度和排污权交易制度在一些地区的试点可能导致这些城市中的上市公司面临的环保压力提高、2018年推出的环境保护税导致重污染行业承受更大的环境规制成本、以及针对部分地区部分行业的政策冲击[1],从而产生遗漏变量问题。因此,本文在附表3第(12)列中控制了上市公司所在城市-年度联合固定效应,以此解决城市层面随时间变化的遗漏变量问题;在附表3第(34)列控制了行业-年度联合固定效应,以此解决行业层面随时间变化的遗漏变量问题[2];在附表3第(56)列控制了城市-行业固定效应,以此解决城市-行业层面不随时间变化的遗漏变量问题。回归结果显示,纳入更多交互项固定效应后,的回归系数的依然显著为正,这说明在控制了地区、行业层面的时变因素后,本文的基本结论依然稳健。

4. 更长期的上市公司ESG表现

    考虑到上市公司ESG评分的改善作用可能存在较长的滞后性,本文进一步考察更长期的上市公司ESG表现。具体而言,本文将下一期的上市公司ESG表现作为被解释变量,其中,为下一期上市公司的ESG评分,则为下一期经行业中位数调整的上市公司ESG评分。4的回归结果显示,在考虑了上市公司ESG表现可能的滞后性后,回归系数依然显著为正,本文的基本结果依然稳健。


 

负责任的银行贷款与上市公司企业ESG表现验证数据2013-2021_第4张图片




 

负责任的银行贷款与上市公司企业ESG表现验证数据2013-2021_第5张图片



 

负责任的银行贷款与上市公司企业ESG表现验证数据2013-2021_第6张图片

你可能感兴趣的:(课程设计,线性回归,数据结构)