기업의 ESG 요소와 수익률 간의 상관관계 분석(1) - Data Prep & Exploration
nuxhrr2021. 6. 2. 19:31
Data Preparation
!pip install yfinance
from google.colab import drive
drive.mount('/gdrive')
먼저, 한국기업지배구조원에서 공개한 각 기업들의 ESG의 평가등급과 각 기업들의 수익률, 시가총액, 산업군을 column으로 한 데이터를 불러온다. ESG의 평가등급이 기업의 규모에 따라 상이할 수 있다는 가능성을 배제하지 못하기 때문에 독립변수로 로그화된 시가총액을 고려할 예정이다. 또한, ESG와 무관하게 특정 섹터의 수익률이 다른 산업군에 비해 상대적으로 높거나 낮을 수 있으므로 섹터의 영향 유무에 대한 분석을 함께 실시하고자 한다. 기업의 수는 약 560개이며, Data Preparation & Exploration 단계에서 변수들의 값을 분석에 맞게 조정하고 outlier 및 데이터 분포를 살펴볼 것이다.
sectors = np.unique(esg_revise.sector_class)
sector_mapper = {}
for i in range(len(sectors)):
sector_mapper[sectors[i]] = i
esg_revise['sector_num'] = esg_revise['sector_class'].map(sector_mapper)
esg_revise
company
code
esg
e
s
g
AV
ret
sector
sector_class
AV_log
ret_group
sector_num
0
BNK금융지주
138930
6
4
6
6
1.851312e+12
-0.000826
기타 금융업
금융 및 보험업
28.246916
1
2
1
DGB금융지주
139130
6
5
6
6
1.148500e+12
0.000187
기타 금융업
금융 및 보험업
27.769478
2
2
2
JB금융지주
175330
6
5
5
6
1.110984e+12
0.000460
기타 금융업
금융 및 보험업
27.736267
2
2
3
KB금융
105560
6
6
6
6
1.804606e+13
0.000152
기타 금융업
금융 및 보험업
30.523949
2
2
4
S-Oil
10950
6
5
6
6
7.790729e+12
-0.000677
석유 정제품 제조업
제조업
29.683956
1
13
...
...
...
...
...
...
...
...
...
...
...
...
...
...
569
화인베스틸
133820
3
3
2
3
8.141025e+10
0.001232
1차 철강 제조업
제조업
25.122767
4
13
570
환인제약
16580
3
1
4
4
3.106212e+11
0.000549
의약품 제조업
제조업
26.461840
3
13
571
휴온스
243070
3
1
4
3
6.106300e+11
0.001476
의약품 제조업
제조업
27.137757
4
13
572
휴온스글로벌
84110
3
1
4
3
3.353257e+11
-0.000060
의약품 제조업
제조업
26.538368
2
13
573
흥국화재
540
3
1
5
3
1.818067e+11
0.000371
보험업
금융 및 보험업
25.926210
2
2
574 rows × 13 columns
Drop na's
esg_revise = esg_revise.dropna()
len(esg_revise)
572
Statistics
시가총액 기초통계량(로그화된 AV)
#시가총액 기초통계량
esg.AV_log.describe()
count 572.000000
mean 27.071791
std 1.564104
min 23.962985
25% 25.928549
50% 26.829813
75% 28.012719
max 33.812181
Name: AV_log, dtype: float64
ret 기초통계량
# ret 기초통계량
esg.ret.describe()
count 574.000000
mean 0.001233
std 0.001782
min -0.002681
25% 0.000029
50% 0.000838
75% 0.002070
max 0.015405
Name: ret, dtype: float64
array(['1차 비철금속 제조업', '1차 철강 제조업', '가구 제조업', '가정용 기기 제조업',
'가죽, 가방 및 유사제품 제조업', '고무제품 제조업', '곡물가공품, 전분 및 전분제품 제조업',
'골판지, 종이 상자 및 종이용기 제조업', '구조용 금속제품, 탱크 및 증기발생기 제조업', '금속 주조업',
'기초 의약물질 및 생물학적 제제 제조업', '기초 화학물질 제조업', '기타 금속 가공제품 제조업',
'기타 비금속 광물제품 제조업', '기타 식품 제조업', '기타 전기장비 제조업', '기타 종이 및 판지 제품 제조업',
'기타 화학제품 제조업', '나무제품 제조업', '낙농제품 및 식용빙과류 제조업', '내화, 비내화 요업제품 제조업',
'담배 제조업', '도축, 육류 가공 및 저장 처리업', '동물용 사료 및 조제식품 제조업',
'무기 및 총포탄 제조업', '반도체 제조업', '방적 및 가공사 제조업', '봉제의복 제조업',
'비료, 농약 및 살균, 살충제 제조업', '비알코올음료 및 얼음 제조업', '석유 정제품 제조업',
'선박 및 보트 건조업', '시멘트, 석회, 플라스터 및 그 제품 제조업', '신발 및 신발 부분품 제조업',
'알코올음료 제조업', '영상 및 음향기기 제조업', '의약품 제조업', '일반 목적용 기계 제조업',
'일차전지 및 축전지 제조업', '자동차 신품 부품 제조업', '자동차용 엔진 및 자동차 제조업',
'전구 및 조명장치 제조업', '전동기, 발전기 및 전기 변환 · 공급 · 제어 장치 제조업', '전자부품 제조업',
'절연선 및 케이블 제조업', '제재 및 목재 가공업', '직물직조 및 직물제품 제조업', '철도장비 제조업',
'측정, 시험, 항해, 제어 및 기타 정밀기기 제조업; 광학기기 제외', '컴퓨터 및 주변장치 제조업',
'통신 및 방송 장비 제조업', '특수 목적용 기계 제조업', '펄프, 종이 및 판지 제조업', '플라스틱제품 제조업',
'합성고무 및 플라스틱 물질 제조업', '항공기,우주선 및 부품 제조업', '화학섬유 제조업'], dtype=object)
# 한글깨짐 해결을 위한 패키지 설치
!sudo apt-get install -y fonts-nanum
!sudo fc-cache -fv
!rm ~/.cache/matplotlib -rf
Reading package lists... Done
Building dependency tree
Reading state information... Done
fonts-nanum is already the newest version (20170925-1).
The following package was automatically installed and is no longer required:
libnvidia-common-460
Use 'sudo apt autoremove' to remove it.
0 upgraded, 0 newly installed, 0 to remove and 34 not upgraded.
/usr/share/fonts: caching, new cache contents: 0 fonts, 1 dirs
/usr/share/fonts/truetype: caching, new cache contents: 0 fonts, 3 dirs
/usr/share/fonts/truetype/humor-sans: caching, new cache contents: 1 fonts, 0 dirs
/usr/share/fonts/truetype/liberation: caching, new cache contents: 16 fonts, 0 dirs
/usr/share/fonts/truetype/nanum: caching, new cache contents: 10 fonts, 0 dirs
/usr/local/share/fonts: caching, new cache contents: 0 fonts, 0 dirs
/root/.local/share/fonts: skipping, no such directory
/root/.fonts: skipping, no such directory
/var/cache/fontconfig: cleaning cache directory
/root/.cache/fontconfig: not cleaning non-existent cache directory
/root/.fontconfig: not cleaning non-existent cache directory
fc-cache: succeeded
#한글폰트 설정
import matplotlib.pyplot as plt
plt.rc('font', family='NanumBarunGothic')
x = 'ret'
y = 'sector_class'
hue = 'e'
scatter_df = esg_revise.groupby([y, hue]).agg({x : np.mean}).reset_index()
sns.scatterplot(data = scatter_df, x = x, y = y, hue = hue)
<matplotlib.axes._subplots.AxesSubplot at 0x7f4117f23490>
/usr/local/lib/python3.7/dist-packages/matplotlib/backends/backend_agg.py:214: RuntimeWarning: Glyph 8722 missing from current font.
font.set_text(s, 0.0, flags=flags)
/usr/local/lib/python3.7/dist-packages/matplotlib/backends/backend_agg.py:183: RuntimeWarning: Glyph 8722 missing from current font.
font.set_text(s, 0, flags=flags)
금융 및 보험업 >> ret 값 낮은 편, e값 대체로 높음
제조업 >> ret 값 모두 높은 편, e값 대체로 높음
나머지는 대체로 퍼져있음
정보통신업, 건설업 >> ret 값이 상대적으로 낮은 기업들이 오히려 높은 e값을 가지고 있음