楼主: nothing`more
863 0

[经管数据集] 1991-2022年上市公司年度股价崩盘风险 [推广有奖]

  • 2关注
  • 46粉丝

已卖:745份资源

副教授

20%

还不是VIP/贵宾

-

威望
0
论坛币
11766 个
通用积分
57.9189
学术水平
5 点
热心指数
5 点
信用等级
5 点
经验
8090 点
帖子
231
精华
0
在线时间
1225 小时
注册时间
2016-2-15
最后登录
2025-11-23

楼主
nothing`more 学生认证  发表于 2023-11-25 18:26:21 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
股价崩盘风险是近年来公司金融领域的明星指标。知网上以股价崩盘风险为主题的论文,已有 8 篇文章的引用量超过 1000 次,18 篇文章的引用量超过 500 次。 image-20231125153915435.png

po 主最近刚好要用到这个指标,在计算过程中发现一些很好玩的细节,不同的处理方式,得到的结果可能会存在系统性的差异。为避免大家踩坑,还是觉得有必要写出来,聊以记录。


股价崩盘风险的原理其实很简单。在有效市场下,股票价格上涨和下跌的概率是相等的,上涨和下降的幅度也是相似的,此时股价收益率成对称分布。但在现实情况下,管理层出于自利考虑,往往会隐藏坏消息,释放好消息,此时股价处于上涨的概率会高于下跌的概率,其分布会呈现左偏。


因此,我们通过数学公式计算出收益率分布的负偏度,即可测度其股价崩盘风险。


具体地,我们可以分三步走:


首先,利用股票的周收益率数据,根据如下模型计算经过市场调整后的收益率:


\[r_{i,t} = \alpha + \beta_{1, i} r_{m,t-2} + \beta_{2, i} r_{m,t-1} + \beta_{3, i} r_{m,t} + \beta_{4, i} r_{m,t+1} + \beta_{5, i} r_{m,t+2} + \varepsilon_{i,t}\]


其中,r_{i,t} 为股票的周收益率,r_{m,t} 为经流通市值加权的平均收益率。


这一步有两个要点需要注意,一是部分学者会对收益率取百分数,即乘以 100;二是会选择逐年计算,而非 pool

到一起。这两种做法都会对我们的结果产生实质性影响。后文我们再做详细对比。

第二步,提取上一步计算所得的残差,加 1 后取对数:


\[W_{i,t} = \ln(1+\varepsilon_{i,t})\]

第三步,计算股价崩盘风险指标

第一个指标是收益率的负偏度  (NCSKEW) ,计算公式为:


\[NCSKEW_{i,t} = -\frac{n(n-1)^{3/2}\sum W_{i,t}^3}{(n-1)(n-2)(\sum W_{i,t}^2)^{3/2}}\]

其中 n 为交易周数。

第二个指标是股价上升和下降阶段波动性的差异 (DUVOL),公式如下:

[LaTex]DUVOL_{i,t} = \ln [\frac{(n_u-1)\sum_{down}W_{i,t}^2}{(n_d-1)\sum_{up} W_{i,t}^2 }][/LaTex]

其中,n_u 为周收益率 W_{i,t} 大于年平均 W_{i,t} 的周数,n_d 为周收益率 W_{i,t} 小于年平均 W_{i,t} 的周数。

首先从股票市场交易→个股交易数据→周个股回报率文件中下载 **考虑现金红利再投资的周个股回报率** 和 **市场类型** 这两个变量,前者作为股票周收益率,后者用于后续的跨表合并。

从股票市场交易→分市场交易数据→周市场回报率文件中下载 **考虑现金红利再投资的周市场回报率 (流通市值加权平均法)** 这一变量,用于衡量平均收益率。

1. 导入数据

先导入周收益率数据


  1. cap erase "TRD_Week.dta"
  2. foreach file in TRD_Week TRD_Week1 TRD_Week2 TRD_Week3 {
  3.     import excel using "`file'.xlsx", firstrow clear
  4.     labone, nrow(1 2)
  5.     drop in 1/2
  6.     destring, replace
  7.     keep if inlist(Markettype, 1, 4)
  8.     cap append using "TRD_Week.dta"
  9.     save "TRD_Week.dta", replace
  10. }
复制代码
导入市场收益率数据

  1. import excel using "TRD_Weekm.xlsx", firstrow clear
  2. labone, nrow(1 2)
  3. drop in 1/2
  4. destring, replace
  5. keep if inlist(Markettype, 1, 4)
  6. save "TRD_Weekm.dta", replace
复制代码
合并两者,提取年份。由于 1990 年非全年数据,2023 年尚未结束,我们将样本区间限定在 1991-2022 年。

  1. use "TRD_Week.dta", clear
  2. merge m:1 Markettype Trdwnt using "TRD_Weekm.dta", keep(1 3) nogen
  3. drop Markettype
  4. gen year = real(substr(Trdwnt, 1, 4))
  5. keep if inrange(year, 1991, 2022)
  6. save "raw.dta", replace
复制代码
2. 计算调整收益率

调整收益率有两种计算方式。一种是分年计算,一种是汇总计算。

我们先按最常见的分年计算:


  1. gen l1Wretwdos = l1.Wretwdos
  2. gen l2Wretwdos = l2.Wretwdos
  3. gen f1Wretwdos = f1.Wretwdos
  4. gen f2Wretwdos = f2.Wretwdos
  5. bys Stkcd year: asreg Wretwd l1Wretwdos l2Wretwdos Wretwdos f1Wretwdos f2Wretwdos, fitted
  6. gen W = ln(1 + _residuals)
复制代码
计算负偏度

先分步骤计算出调整收益率的二次方和三次方,以及每年的交易周数。


  1. gen W2 = W^2
  2. gen W3 = W^3
  3.    
  4.     *- 计算交易周数,并对W的二次方与三次方分年求和
  5. bys Stkcd year: gen n = _N
  6. bys Stkcd year: egen sum_W2 = sum(W2)
  7. bys Stkcd year: egen sum_W3 = sum(W3)

  8.     *- 计算负偏度
  9. gen NCSKEW = -[(n*(n-1)^(3/2)*sum_W3)] / [((n-1)*(n-2)*sum_W2^(3/2))]
复制代码
4. 计算收益上下波动率

先计算出收益率的年度均值,以及当年收益率高于年度均值和低于年度均值的周数


  1.     *- 计算周收益率的年度均值
  2. bys Stkcd year: egen W_mean = mean(W)

  3.     *- 计算上涨周数与下跌周数
  4. gen up = W > W_mean
  5. gen dw = W < W_mean

  6. bys Stkcd year: egen nu = sum(up)
  7. bys Stkcd year: egen nd = sum(dw)

  8.     *- 计算 DUVOL
  9. bys Stkcd year: egen sum_W2_dw = sum(W^2 * dw)
  10. bys Stkcd year: egen sum_W2_up = sum(W^2 * up)
  11. gen DUVOL = ln(((nu-1) * sum_W2_dw) / ((nd-1) * sum_W2_up))
复制代码
最后,按照股票代码-年份去重,并做前后 1% 的缩尾,所得即为上市公司每年的股价崩盘风险数据。

  1. duplicates drop Stkcd year, force
  2. winsor2 NCSKEW DUVOL, replace
  3. keep Stkcd year NCSKEW DUVOL
  4. save "Crash.dta", replace
复制代码


我们做一个简单的描述性统计:

  1. . tabstat NCSKEW DUVOL, stats(N mean sd p50 min max) c(s) f(%6.2f)

  2.     Variable |         N      Mean        SD       p50       Min       Max
  3. -------------+------------------------------------------------------------
  4.       NCSKEW |  49700.00     -0.26      0.69     -0.23     -2.28      1.63
  5.        DUVOL |  49686.00     -0.11      0.50     -0.12     -1.29      1.25
  6. --------------------------------------------------------------------------
复制代码
NCSKEW 和 DUVOL 的均值为 -0.26 和 -0.11。

那么,我们该怎么来判断这组数的合理性呢?

首先,理论告诉我们,企业更倾向于报喜不报忧,因此收益率多呈右偏,其偏度为多为正值,这意味着其负偏度多为负值。均值很有可能是负数,结果也确如所料,均值和中位数都是负数。

但是,这只能告诉我们大方向,那么具体情况呢?


image-20231125171834086.png

上图是 po 主自己整理的几篇高引用文献的描述性统计结果,可以发现有两个特点,一是 NCSKEW 的均值大多比 $DUVOL$ 小;二是从数值来看,NCSKEW 的均值基本位于 -0.2 和 -0.3 之间,DUVOL 的均值则稍微离散些,但也多位于 -0.15 到  -0.3 之间。po主的结果也大致符合这一特征。数值绝对值偏小,可能是因为数据较新,且没有剔除金融类上市公司和被 ST 或 PT 标记的企业。

20231125.png

再者,我们也可以通过趋势图来看一下数据的合理性。可以发现,两个指标的趋势是高度重合的。在重大时间节点上,例如 2008 年金融危机,2015 年股灾,2017 年 trade war,以及 2019 年的 xxx,股价崩盘风险都出现了明显的上扬。

数据可从以下链接获取: 上市公司股价崩盘风险 (85 Bytes, 需要: RMB 39 元)

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:上市公司 上市公 duplicates duplicate Residuals 股价崩盘风险 上市公司 面板数据 上市公司数据 崩盘风险

20231125p4.png (178.66 KB)

20231125p4.png

20231125p3.png (209.13 KB)

20231125p3.png

20231125p2.png (165.77 KB)

20231125p2.png

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
扫码
拉您进交流群
GMT+8, 2026-2-8 08:26