- 친환경 관련 기업주와 유류 관련 기업주, 유가에 대해 탐색적 데이터 분석을 진행한다.
- 날짜를 기준으로 현재가, 종가의 상관관계를 분석하여 주식투자 시 의사결정과 종목 분석 등에 활용할 수 있다.
- [서기현]: 데이터 가공, 상관관계 및 시각화, PPT 작성, 발표, Readme 작성
- [이재석]: 데이터 제공, 상관관계 분석, 자료 조사
코로나 19의 전 세계 확산으로 인해 주가들이 한 달 사이에 크게 폭락했고, 이에 따라 몇몇 대기업들과 중견 중소기업들이 크게 휘청거리거나 부도가 났다. 이러한 위기 상황에서 20~30대들은 주식투자를 하나의 기회로 보고 마치 모두 약속이라도 한 듯 투자계좌를 개설하여 삼성전자를 비롯해 국내외 다양한 기업들의 주식을 사기 시작했다. 많은 투자 종목 중 친환경 관련주와 유류 관련 주로 선정한 이유는 코로나 19로 인해 친환경에 많은 관심을 가지게 되었고, 이와 정반대인 종목과 유의미한 관계가 있는지 비교해보고 싶어 유류 관련주로 선정했다. 친환경 기업에 투자를 한다는 가정하에 투자 전 먼저 데이터를 탐색해 봄으로써 투자의사 결정에 유의미한 인사이트를 얻고자 하며, 통상적으로 알려진 상식으로 판단하여 투자해도 괜찮은지 살펴본다.
You will require Python 3 and the following libraries
- numpy - Used for fast matrix operations.
- pandas - Used for performing Data Analysis.
- matplotlib - Used to create plots.
- preprocessing - Used for making a comparison easier to see
- 2015년 1월 ~ 2019년 12월 풍국주정, 한온시스템, 에코바이오, 세종공업, 유니슨, 동국S&C, 금호페트롤, 한화솔루션, 포스코케미칼, SK케미칼, 롯데케미칼, S-OIL, Dubai, WTI, Brent 데이터
- 대신증권 HTS 프로그램 (.xlsx)
-
- 데이터를 읽어온다 (친환경 기업, 유류 관련 기업, 유가)
-
- 데이터 프레임을 만들고, 비교할 데이터만 불러온다
- 기업 : 날짜, 현재가
- 유가 : 날짜, 종가
- 데이터 프레임을 만들고, 비교할 데이터만 불러온다
-
- 기업 데이터와 유가 데이터 가공 : merge 사용
- 데이터 개수 통일
- 기업 데이터와 유가 데이터 가공 : merge 사용
-
- 친환경 기업, 유류 관련 기업, 유가 간의 상관관계 분석 : preprocessing.minmax_scale 사용 => 모든 데이터를 0~1 사이값으로 변경
- z = (x - min(x)) / (max(x) - min(x))
- np.corrcoef 사용 => 상관계수 도출
- 친환경 기업, 유류 관련 기업, 유가 간의 상관관계 분석 : preprocessing.minmax_scale 사용 => 모든 데이터를 0~1 사이값으로 변경
-
- 상관계수가 높은 순으로 전체 데이터 정렬
-
- 양의 상관관계, 음의 상관관계 선그래프로 시각화
-
- 인사이트 도출
- Q1) 친환경 관련주랑 친환경과 정반대인 유류 관련 기업주는 주가도 서로 정반대일까?
- Q2) 친환경 관련 기업주와 유가는 음의 상관관계일까?
- Q3) 그럼 유류 관련 기업주와 유가는 당연히 양의 상관관계?
corr_result.sort_values(by=['상관계수'], axis=0, ascending=False)
corr_result["상관계수"] = round(corr_result["상관계수"],2)
corr_result.rename(columns={"상관계수" : "상관계수(%)"}, inplace=True)
corr_result.sort_values(by=['상관계수(%)'], axis=0, ascending=False)
corr_result.sort_values(by=['상관계수(%)'], axis=0, ascending=False).head(5)
plt.figure(figsize=(20,5))
plt.plot(merge_df[::-1]["날짜"],preprocessing.minmax_scale(merge_df[::-1]["금호페트롤_현재가"]), label="geumhopetrol_minmax")
plt.plot(merge_df[::-1]["날짜"], preprocessing.minmax_scale(merge_df[::-1]["Brent_종가"]), label="brent_minmax")
plt.legend(loc=0);
plt.figure(figsize=(20,5))
plt.plot(merge_df[::-1]["날짜"],preprocessing.minmax_scale(merge_df[::-1]["금호페트롤_현재가"]), label="geumhopetrol_minmax")
plt.plot(merge_df[::-1]["날짜"], preprocessing.minmax_scale(merge_df[::-1]["두바이_종가"]), label="dubai_minmax")
plt.legend(loc=0);
plt.figure(figsize=(20,5))
plt.plot(merge_df[::-1]["날짜"],preprocessing.minmax_scale(merge_df[::-1]["금호페트롤_현재가"]), label="geumhopetrol_minmax")
plt.plot(merge_df[::-1]["날짜"], preprocessing.minmax_scale(merge_df[::-1]["WTI_종가"]), label="wti_minmax")
plt.legend(loc=0);
plt.figure(figsize=(20,5))
plt.plot(merge_df[::-1]["날짜"],preprocessing.minmax_scale(merge_df[::-1]["풍국주정_현재가"]), label="poonggook_minmax")
plt.plot(merge_df[::-1]["날짜"], preprocessing.minmax_scale(merge_df[::-1]["포스코케미칼_현재가"]), label="poscochemical_minmax")
plt.legend(loc=0);
plt.figure(figsize=(20,5))
plt.plot(merge_df[::-1]["날짜"],preprocessing.minmax_scale(merge_df[::-1]["포스코케미칼_현재가"]), label="poscochemical_minmax")
plt.plot(merge_df[::-1]["날짜"], preprocessing.minmax_scale(merge_df[::-1]["두바이_종가"]), label="dubai_minmax")
plt.legend(loc=0);
-
- 대부분 예측했던 대로 유류 관련 기업주와 유가는 높은 양의 상관관계를 보였다.
-
- 친환경 기업인 풍국주정과 유류 관련 기업인 포스코케미칼이 높은 양의 상관관계를 가진다는 것은 특이한 점이다.
corr_result.sort_values(by=['상관계수(%)'], axis=0, ascending=False).tail(5)
plt.figure(figsize=(20,5))
plt.plot(merge_df[::-1]["날짜"],preprocessing.minmax_scale(merge_df[::-1]["세종공업_현재가"]), label="sejong_minmax")
plt.plot(merge_df[::-1]["날짜"], preprocessing.minmax_scale(merge_df[::-1]["포스코케미칼_현재가"]), label="poscochemical_minmax")
plt.legend(loc=0);
plt.figure(figsize=(20,5))
plt.plot(merge_df[::-1]["날짜"],preprocessing.minmax_scale(merge_df[::-1]["에코바이오_현재가"]), label="echobio_minmax")
plt.plot(merge_df[::-1]["날짜"], preprocessing.minmax_scale(merge_df[::-1]["포스코케미칼_현재가"]), label="poscochemical_minmax")
plt.legend(loc=0);
plt.figure(figsize=(20,5))
plt.plot(merge_df[::-1]["날짜"],preprocessing.minmax_scale(merge_df[::-1]["에코바이오_현재가"]), label="echobio_minmax")
plt.plot(merge_df[::-1]["날짜"], preprocessing.minmax_scale(merge_df[::-1]["Brent_종가"]), label="brent_minmax")
plt.legend(loc=0);
plt.figure(figsize=(20,5))
plt.plot(merge_df[::-1]["날짜"],preprocessing.minmax_scale(merge_df[::-1]["에코바이오_현재가"]), label="echobio_minmax")
plt.plot(merge_df[::-1]["날짜"], preprocessing.minmax_scale(merge_df[::-1]["두바이_종가"]), label="dubai_minmax")
plt.legend(loc=0);
plt.figure(figsize=(20,5))
plt.plot(merge_df[::-1]["날짜"],preprocessing.minmax_scale(merge_df[::-1]["세종공업_현재가"]), label="sejong_minmax")
plt.plot(merge_df[::-1]["날짜"], preprocessing.minmax_scale(merge_df[::-1]["에스오일_현재가"]), label="soil_minmax")
plt.legend(loc=0);
-
- 대부분 예측했던 대로 친환경 관련 기업주와 유류 관련 기업, 유가는 높은 양의 상관관계를 보였다.