请选择 进入手机版 | 继续访问电脑版

草莓科研服务网——中国专业社科交流平台

 找回密码
 立即注册

快捷登录

查看: 1420|回复: 6

制造业上市公司机器人渗透度 (2011-2019)

[复制链接]
发表于 2022-8-4 08:24:40 | 显示全部楼层 |阅读模式
& L- m2 C3 }1 `7 J) E
3 {  G! A5 |+ S* T/ f$ ^2 c
人工智能与机器人的兴起重塑了全球劳动力市场,也引起了学术界极大的研究热情。其中,经济学界最具代表性的人物无疑是 Daron Acemoglu,其撰写的几篇关于机器人的文章,基本都发表在诸如 AER,JPE,RES 等经济学顶刊上,尤其是 2020 年发表于 JPE 的 《Robots and jobs: Evidence from US labor markets》,短短两年间,引用量就超过了 2400 次。
: c7 U; F' j4 {9 R) ^  ?, O9 p2 [6 @+ Q( Z/ F# u! [" M( Q" a
! g1 \" o! Z. E* Y
* ^2 `* g* C+ _
中文期刊中,也有多篇关于机器人的文章见诸于《管理世界》、《经济研究》等顶级期刊,关于各种话题的研究纷纷涌现。( d( i  y  `9 r0 Y
1 F; i3 [* B: L- |7 d  T/ F% f/ @9 |
看到这个领域日趋火热,我们参考了王永钦、董雯 2020 年发表于《经济研究》一文的方法,计算了 2011-2019 年中国制造业上市公司的机器人渗透度,以飨读者。该数据为公司层面数据,并保留了公司和年份信息,可与上市公司的其他财务信息匹配,展开自己感兴趣的研究。
0 D" Z4 C7 a. b1 N* D/ J
) Z1 g- l5 `" ^
# d, Z* u4 o( `' H) c7 O  N$ H
我们参考 Acemoglu and Restrepo (2020) 和 王永钦、董雯 (2010) 的做法,构造中国制造业企业层面的机器人渗透度指标。具体测算方法如下:
0 Z7 J( s7 z6 S! n9 h6 c+ O
草莓科研服务网——中国专业社科交流平台:制造业上市公司机器人渗透度 (2011-2019)
/ M  b% I/ T7 R& h0 _* ^2 d& T# V
其大致思路是,先计算出行业层面的单位从业人员的机器人数量 (机器人渗透度),随后再使用标准化的企业生产部门人数占比乘以行业机器人渗透度,两者的乘积即为该企业的机器人渗透度。
" y5 w* ^" a, _4 [' D4 d  ]% z) S% y- o
在计算过程中,我们需要解决几个核心问题,下面我们具体展开分析。! C+ ?' i1 @( {4 |! V! a7 t

8 B8 L" T- Q5 h. t; H2 C7 ?
: }1 t4 }  U* ]  V. v首先,我们要完成不同版本行业分类代码的衔接。这其中由分为两个部分,分别是《2002 版国民经济行业分类与代码》和《2011 版国民经济行业分类与代码》的衔接,以及中国的行业分类代码与 IFR 行业分类代码的衔接。参考王永钦、董雯 (2020) 的做法,我们先将中国的二位数制造业行业分类码统一至 2011 年,随后再与 IFR 进行匹配。
8 O4 J6 k" U5 H6 `
3 N$ W; Y$ v& n2 _7 h调整后的行业分类为:) B9 Z9 {/ i. W( j% p# y' g/ M
草莓科研服务网——中国专业社科交流平台:制造业上市公司机器人渗透度 (2011-2019)
0 K/ u5 h5 H; \5 P/ c: [
  ?6 S6 M9 D) K6 m* T随后我们开始用Stata实现具体计算:
7 r* S+ Z: w( ^9 ^+ k" J
2 N- D3 P% V& F7 A4 K7 P先确定工作路径:
3 S# T. L/ q# T8 W; N/ G
  1. cd "~/Desktop/IFR to firm"; N, t3 j4 p4 ~9 s
  2. global path "~/Desktop/IFR to firm"3 `$ B! G, E* ~; {5 Y" a
  3. global raw_data "$path/raw_data"
      q8 I; f8 |% y8 x9 h9 i1 }+ H
  4. global result_data "$path/result_data"
复制代码
: {* K) o7 k9 S9 c
) a# h0 f. N/ P+ t
参考王永钦、董雯 (2020) 的测算方法,我们先计算出 2010 年中国各行业的从业人数。该数据来自于 CSMAR。
' X# E* l+ U' H* d1 K* P! e, o) ~9 h; g! T3 r
  1. import excel using "$raw_data/IND_Indstsvy.xlsx", firstrow clear" o- ?; l! d+ ~1 ~& }5 n
  2. labone, nrow(1 2)
    ) R5 E( P" A7 _- @
  3. drop in 1/2
    ( E: z! w+ Y/ f" Z
  4. keep Yeasgn Indcd Indnme Noemploy, U' d% I. p1 g! Y0 M0 B% Z; z6 Q
  5. destring Yeasgn Indcd Noemploy, replace force: B( R- ]- C5 h7 U7 i
  6. keep if Yeasgn == 2010
    0 W; U3 M1 I7 T+ Y
  7. keep if inrange(Indcd, 13, 43), A% [  ], u# v6 y
  8. 2 S( w) C9 g( s8 p1 ^1 S& y) }
  9. #delimit ;
    : w6 h+ Q' l% ?0 G1 S9 V
  10. recode Indcd (13 14 15 16  = 1 "食品与饮料")" z1 _( b4 H- b
  11.              (17 18 19     = 2 "纺织与服装")0 ]5 m  N  N, W$ S8 I( l9 s
  12.              (20 21        = 3 "木材家具")0 p; t. K+ b- a0 O- y! ~" D
  13.              (22 23        = 4 "造纸印刷")
    8 g% V5 e: p! M
  14.              (24 42 43     = 5 "其他制造业")
    3 e5 B3 D6 M0 y( E
  15.              (25/30        = 6 "塑料和化学制品")4 m& U5 J( J0 _7 F3 U& D6 w
  16.              (31           = 7 "玻璃、陶瓷、矿石制品")
    8 f/ F+ p0 |# C- {# k0 u% q
  17.              (32 33        = 8 "基本金属"), Y7 E; @( x+ A- |4 y4 H5 x
  18.              (34           = 9 "金属制品")
    # k# x5 ]9 K  u5 d3 h$ |5 k
  19.              (35 36        = 10 "机械设备制造")! @8 }- Q# V5 t( k2 O9 g
  20.              (37           = 11 "汽车制造业和其他交通设备制造业")
    % @/ w5 E' }# M$ v
  21.              (39/41        = 12 "电力设备与计算机、电子产品、光学产品制造"),
    + |3 D" C- [! J5 B2 X) @
  22.              gen(industrycode);$ E/ n8 ]$ Z* s/ j6 L8 u8 Z+ ?
  23. #delimit cr+ L! H9 t. C, s- i: r7 h
  24. collapse (sum)labor = Noemploy, by(industrycode)
    5 x% O; V7 C7 z" R: F8 l. j
  25. save "$result_data/labor.dta", replace
复制代码
随后,我们导入 IFR 的机器人数据,并统一行业编码。7 J+ ^) x" ?# {2 i" L9 I
  1. use "$raw_data/IFR.dta", clear' t% a- V& |0 v  i& V
  2. keep if country == "CN"
      W/ P* {/ R  X% L
  3. keep if inrange(year, 2011, .)7 h  n, O/ C5 y6 P% d
  4. drop country Country installations
    ) J+ y% p/ @( I; x- e1 n' s
  5. gen industrycode = .
    - K3 ~% F/ R0 J, v1 `1 X6 S
  6. replace industrycode = 1  if industry == "10-12"
    . i" I6 r: Q7 g2 S) M# Z
  7. replace industrycode = 2  if industry == "13-15"( H3 s$ y. F/ x8 r5 p
  8. replace industrycode = 3  if industry == "16"
    9 `  c% A2 h; R/ A$ G$ V/ O
  9. replace industrycode = 4  if industry == "17-18"; @9 |$ k: r% P& b9 C! J
  10. replace industrycode = 5  if industry == "91"
    - p) l% {: W+ H
  11. replace industrycode = 6  if industry == "19-22"
    ( y- I" n, R$ _( L$ y
  12. replace industrycode = 7  if industry == "23"
    $ B1 o% }% I: _$ G# c& B+ g* z* ^
  13. replace industrycode = 8  if industry == "24"
    , i" B, d$ r7 s( D0 C2 J$ U
  14. replace industrycode = 9  if industry == "25"
    3 u8 \8 V2 F* j$ N5 m! m* o: b& j
  15. replace industrycode = 10 if industry == "28"- a" v* b, z( K3 P8 d
  16. replace industrycode = 11 if industry == "29" | industry == "30"1 v& N! K9 X7 o
  17. replace industrycode = 12 if industry == "26-27"
    4 R0 F% s7 f  s7 ~& i5 P
  18. keep if !mi(industrycode)9 b8 \( [) A; q( w
  19. collapse (sum)stock = operation, by(industrycode year)0 L6 }' L4 S. d1 o$ K
  20. save "$result_data/robot.dta", replace
复制代码
合并上述两份数据,计算行业层面的机器人渗透度:1 @# C* h* n/ ^6 f
  1. use "$result_data/robot.dta", clear+ U3 D, b2 i7 h" L$ f: x
  2. merge m:1 industrycode using "$result_data/labor.dta", ///
    . ^) H0 w2 j/ \$ E, ~8 o& }$ Q
  3.     keep(1 3) nogen( o, F6 v; q/ j) l! M8 C, p
  4. gen density = stock / labor * 10000
    ; V9 j' P! `2 J
  5. xtset industrycode year* o0 C# n8 J' y6 V; w3 j  Y& y
  6. save "$result_data/robot_density.dta", replace
复制代码
我们导入 2011 年各制造业企业的生产部门员工占比,该数据来源于 Wind。: }- m! r% i! i' z1 Z* `
  1. import excel using "$raw_data/员工构成-2011年.xlsx", clear
    $ `( z1 r0 [5 w( n, u
  2. labone, nrow(1/2)# f. G8 F2 e- |' x5 m% o8 Q: X4 ?
  3. drop in 1/2
    2 R5 P% K( V- T9 \3 b
  4. keep A B C R+ T$ n- `5 S. u6 C! |
  5. replace A = subinstr(A, ".SZ", "", .)
    . ?4 ~- t# X) Y6 N4 ]  L
  6. replace A = subinstr(A, ".SH", "", .); p. K9 W: ?; J) _
  7. destring A R, replace force
      w* h4 Z; r  r  T# I7 u* Q& M) Y$ _. m
  8. gen year = real(substr(C, -4, .))2 p( b. ^( b6 P# a0 r
  9. drop C. g5 w7 Z4 z: g/ ]$ C6 e4 N
  10. xtset A year( j5 p  q( F* R7 l' \. R
  11. rename (_all)(Stkcd ShortName product_share year)
    + ^/ a0 M+ f6 H9 n) M7 @! i
  12. order Stkcd year
    8 a8 S0 q: H: j( D- s/ I2 G/ Z
  13. drop if mi(Stkcd)
    1 ]) ~$ C* d# A" u: `
  14. format Stkcd %06.0f
    6 L+ v' p$ p% v5 d
  15. save "$result_data/employee_structure.dta", replace
复制代码
由于 Wind 并不提供上市公司的行业代码,我们从 CSMAR 下载了各企业的股票代码与行业分类码,并按照本文第二章所属的编码规则,对行业分类 recode
0 p* L5 r8 y: u' Y" j% q4 e' \1 c
  1. import excel using "$raw_data/STK_LISTEDCOINFOANL.xlsx", firstrow clear: f! ?9 E; _( o
  2. labone, nrow(1 2)8 Z/ c, G  z0 z9 [0 Q, n' T
  3. drop in 1/25 _: \" g! ]' u! H
  4. gen year = real(substr(EndDate, 1, 4))* M! X5 t! |% |1 z* C+ I# d+ V
  5. gen listyear = real(substr(LIST, 1, 4))/ v1 t8 \4 `* @) ^% x2 ~% }' g
  6. keep if ustrregexm(IndustryCode, "C")5 Y- U% e4 ?2 ?1 x
  7. keep if inrange(year, 2011, 2019)
    % \# ^$ e2 Q% w1 K. T
  8. clonevar Industrycode = IndustryCode
    6 [& F' d8 t3 w2 \
  9. replace Industrycode = subinstr(Industrycode, "C", "", .)  J6 R7 y& z* V9 Y
  10. destring Symbol Industrycode, replace force* W0 r: F" c  S+ W; h1 B
  11. & |4 ?" `4 ], s' J% X) u9 ?
  12. #delimit ;
    ( C6 r+ A( R% H( R; y3 O  L
  13. recode Industrycode
    * x- |7 d5 ?* H+ S+ K
  14.     (13 14 15 16  = 1 "食品与饮料")3 p3 R( C- b4 a- E% g& o8 A
  15.     (17 18 19     = 2 "纺织与服装")
    9 d9 Z9 t/ n2 t8 ~/ c
  16.     (20 21        = 3 "木材家具")
    / q! g( x3 i# c' q
  17.     (22 23        = 4 "造纸印刷")$ T0 }$ ?& ~) o' g1 u" _
  18.     (24 41 42     = 5 "其他制造业")
    / x) O' u5 e6 k2 D' \
  19.     (25/29        = 6 "塑料和化学制品")) g* [1 a1 Y% [
  20.     (30           = 7 "玻璃、陶瓷、矿石制品")) ]9 M; K/ m( ^( z( M6 ?# O
  21.     (31 32        = 8 "基本金属")) \- a2 L4 o$ E1 j3 x
  22.     (33           = 9 "金属制品")
    * h4 H# f, p" p! `+ _; g
  23.     (34 35        = 10 "机械设备制造")8 Y$ r6 _& Q. e0 f! i
  24.     (36 37 43     = 11 "汽车制造业和其他交通设备制造业")
    / C6 X* |% f# r8 o( G3 p$ p2 x
  25.     (38/40        = 12 "电力设备与计算机、电子产品、光学产品制造"),
    5 x9 ]/ S: t8 a( L- Z2 G6 S; I
  26.     gen(industrycode);/ t5 x3 V- T4 R$ A' b) I
  27. #delimit cr# b- C* w. Q$ h/ c9 K( g: Y
  28. ; s, o; y: w8 f2 h
  29. drop ListedCoID EndDate LISTINGDATE IndustryName
    $ \% J* [- }4 |1 M
  30. rename Symbol Stkcd
    . {5 |. C+ r) S( j/ {/ B) V
  31. format Stkcd %06.0f
    6 b% q+ n9 C2 |4 D5 r1 V
  32. order Stkcd year listyear3 p) t3 N( b0 S7 u$ o
  33. save "$result_data/industrycode.dta", replace
复制代码
7 L. g0 U6 a) E' T' g
$ A- M8 X" I7 s8 r+ F5 \
接下来,就是最终的计算结果了。我们先把前述所有数据 merge 到一起,包括 2011 年企业生产部门员工占比,和各行业的机器人渗透度。$ c& W8 {4 ?0 `7 n( E8 x  J1 f
+ H+ a1 c8 j$ k8 I
随后,我们使用 egen 中的 mediam 计算出生产部门员工占比的中位数。
/ C9 {0 ?; A. z0 E* M, E& y; T
- K) ^2 T9 {8 H8 l% J5 T- H最后,将企业生产部门员工占比除以中位数,再乘以行业机器人渗透度 density,所得的 exposure 就是企业的机器人渗透度了。
2 g- q) n5 c* }8 B6 N* p. h
( z1 M- x4 }' d4 g0 B
  1. use "$result_data/industrycode.dta", clear7 u4 U+ Y& y& b) B- H& K& Z8 C) [, ~
  2. merge m:1 Stkcd using "$result_data/employee_structure.dta", ///8 N1 G% n0 r( ^" R7 N6 O  e) v
  3.     keepusing(product_share) keep(1 3) nogen
      ?* s$ E8 f  P6 Q- x3 Z3 z
  4. merge m:1 industrycode year using "$result_data/robot_density.dta", ///
    5 l7 E; R: w' ^  l$ x$ H
  5.     keepusing(density) keep(1 3) nogen' j8 W: M$ h, z8 W' h" D4 V7 J
  6. format %20.0g industrycode
    9 p/ B% ^# a; ~/ l' {, @" K
  7. egen share_median = median(product_share)% y; S$ `; v  k3 q
  8. gen exposure = (product_share / share_median) * density" J+ n3 G# M7 |9 J

  9.   |* ~, ~3 ^6 N9 S# P  \
  10. label var density       "行业层面机器人渗透度(每万人)"9 C4 T' f2 s" z
  11. label var product_share "生产部门员工占比", e; g3 b% X' K; K. }1 c
  12. label var share_median  "生产部门员工占比中位数") Q/ l- E0 K$ j$ y+ k9 A6 ~
  13. label var exposure      "企业机器人渗透度"# i8 z, R2 C+ V
  14. order Stkcd year
    , N+ A9 m6 s: p/ `
  15. xtset Stkcd year: K2 `( z% f$ g6 Q
  16. save "$result_data/exposure.dta", replace
复制代码

9 N6 i( G; }2 f
! t1 y8 C5 v: j; k- l( B$ `# H. f5 T, D1 h! Q4 S3 G

8 r: k. ^8 p: Y/ g! u. R/ r( Z+ A- P$ h9 ]8 k
发表于 2022-8-9 08:35:35 | 显示全部楼层
好人一生平安,感谢楼主
回复

使用道具 举报

发表于 2023-5-15 13:34:14 | 显示全部楼层
可以分享一下最终数据吗?4 e. k$ P( \& j  x2 @
回复

使用道具 举报

发表于 2023-5-24 15:21:47 | 显示全部楼层
感谢分享,好人一生平安!
回复

使用道具 举报

发表于 2023-6-20 12:52:10 | 显示全部楼层
分享的内容太棒了,感谢楼主
回复

使用道具 举报

发表于 2023-6-27 16:24:58 | 显示全部楼层
太棒了感谢楼主的慷慨解答
回复

使用道具 举报

发表于 2023-7-8 10:16:13 | 显示全部楼层
写的太好了!5 q# q' k$ {3 B: S1 T% Y
回复

使用道具 举报

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

本版积分规则

回帖奖励

[详情]

  • * 每天自己主题被回复3次可获得额外5论坛币奖励。
  • * 每天回复他人主题5次可获得额外8论坛币的奖励。
  • * 奖励每天都可领取,一定要多参与论坛讨论哦。
  • * 同一主题的重复回复不计。
  • 草莓科研服务网——中国专业社科交流平台 ( 津ICP备2023000499号 )|网站地图

    GMT+8, 2024-7-18 09:20 , Processed in 0.126240 second(s), 58 queries .

    Copyright © caomeikeyan

    快速回复 返回顶部 返回列表